aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java26
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java28
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java26
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java29
-rwxr-xr-xsrc/test/shell/bazel/external_integration_test.sh68
5 files changed, 109 insertions, 68 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index 94975bb5fe..7c2351aa2b 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -50,6 +50,7 @@ import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.DiffAwareness;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor;
+import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.skyframe.util.SkyframeExecutorTestUtils;
import com.google.devtools.build.lib.syntax.Label;
@@ -161,16 +162,21 @@ public abstract class AnalysisTestCase extends FoundationTestCase {
throws Exception {
this.ruleClassProvider = ruleClassProvider;
PackageFactory pkgFactory = new PackageFactory(ruleClassProvider);
- skyframeExecutor = SequencedSkyframeExecutor.create(reporter, pkgFactory,
- new TimestampGranularityMonitor(BlazeClock.instance()), directories,
- workspaceStatusActionFactory,
- ruleClassProvider.getBuildInfoFactories(), ImmutableSet.<Path>of(),
- ImmutableList.<DiffAwareness.Factory>of(),
- Predicates.<PathFragment>alwaysFalse(),
- Preprocessor.Factory.Supplier.NullSupplier.INSTANCE,
- ImmutableMap.<SkyFunctionName, SkyFunction>of(),
- getPrecomputedValues()
- );
+ skyframeExecutor =
+ SequencedSkyframeExecutor.create(
+ reporter,
+ pkgFactory,
+ new TimestampGranularityMonitor(BlazeClock.instance()),
+ directories,
+ workspaceStatusActionFactory,
+ ruleClassProvider.getBuildInfoFactories(),
+ ImmutableSet.<Path>of(),
+ ImmutableList.<DiffAwareness.Factory>of(),
+ Predicates.<PathFragment>alwaysFalse(),
+ Preprocessor.Factory.Supplier.NullSupplier.INSTANCE,
+ ImmutableMap.<SkyFunctionName, SkyFunction>of(),
+ getPrecomputedValues(),
+ ImmutableList.<SkyValueDirtinessChecker>of());
skyframeExecutor.preparePackageLoading(pkgLocator,
Options.getDefaults(PackageCacheOptions.class).defaultVisibility, true,
3, ruleClassProvider.getDefaultsPackageContent(), UUID.randomUUID());
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index 453815fd63..ab6f345d1d 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -107,6 +107,7 @@ import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.DiffAwareness;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor;
+import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker;
import com.google.devtools.build.lib.syntax.Label;
import com.google.devtools.build.lib.syntax.Label.SyntaxException;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
@@ -186,18 +187,21 @@ public abstract class BuildViewTestCase extends FoundationTestCase {
new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(directories);
mutableActionGraph = new MapBasedActionGraph();
ruleClassProvider = getRuleClassProvider();
- skyframeExecutor = SequencedSkyframeExecutor.create(reporter,
- new PackageFactory(ruleClassProvider, getEnvironmentExtensions()),
- new TimestampGranularityMonitor(BlazeClock.instance()), directories,
- workspaceStatusActionFactory,
- ruleClassProvider.getBuildInfoFactories(),
- ImmutableSet.<Path>of(),
- ImmutableList.<DiffAwareness.Factory>of(),
- Predicates.<PathFragment>alwaysFalse(),
- getPreprocessorFactorySupplier(),
- ImmutableMap.<SkyFunctionName, SkyFunction>of(),
- getPrecomputedValues()
- );
+ skyframeExecutor =
+ SequencedSkyframeExecutor.create(
+ reporter,
+ new PackageFactory(ruleClassProvider, getEnvironmentExtensions()),
+ new TimestampGranularityMonitor(BlazeClock.instance()),
+ directories,
+ workspaceStatusActionFactory,
+ ruleClassProvider.getBuildInfoFactories(),
+ ImmutableSet.<Path>of(),
+ ImmutableList.<DiffAwareness.Factory>of(),
+ Predicates.<PathFragment>alwaysFalse(),
+ getPreprocessorFactorySupplier(),
+ ImmutableMap.<SkyFunctionName, SkyFunction>of(),
+ getPrecomputedValues(),
+ ImmutableList.<SkyValueDirtinessChecker>of());
skyframeExecutor.preparePackageLoading(
new PathPackageLocator(rootDirectory), ConstantRuleVisibility.PUBLIC, true, 7, "",
UUID.randomUUID());
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
index 4222a911f3..34b967ef86 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
@@ -37,6 +37,7 @@ import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.skyframe.DiffAwareness;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor;
+import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
import com.google.devtools.build.lib.testutil.TestConstants;
@@ -92,16 +93,21 @@ public abstract class ConfigurationTestCase extends FoundationTestCase {
pkgFactory = new PackageFactory(ruleClassProvider);
AnalysisTestUtil.DummyWorkspaceStatusActionFactory workspaceStatusActionFactory =
new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(directories);
- skyframeExecutor = SequencedSkyframeExecutor.create(reporter, pkgFactory,
- new TimestampGranularityMonitor(BlazeClock.instance()), directories,
- workspaceStatusActionFactory,
- ruleClassProvider.getBuildInfoFactories(), ImmutableSet.<Path>of(),
- ImmutableList.<DiffAwareness.Factory>of(),
- Predicates.<PathFragment>alwaysFalse(),
- Preprocessor.Factory.Supplier.NullSupplier.INSTANCE,
- ImmutableMap.<SkyFunctionName, SkyFunction>of(),
- ImmutableList.<PrecomputedValue.Injected>of()
- );
+ skyframeExecutor =
+ SequencedSkyframeExecutor.create(
+ reporter,
+ pkgFactory,
+ new TimestampGranularityMonitor(BlazeClock.instance()),
+ directories,
+ workspaceStatusActionFactory,
+ ruleClassProvider.getBuildInfoFactories(),
+ ImmutableSet.<Path>of(),
+ ImmutableList.<DiffAwareness.Factory>of(),
+ Predicates.<PathFragment>alwaysFalse(),
+ Preprocessor.Factory.Supplier.NullSupplier.INSTANCE,
+ ImmutableMap.<SkyFunctionName, SkyFunction>of(),
+ ImmutableList.<PrecomputedValue.Injected>of(),
+ ImmutableList.<SkyValueDirtinessChecker>of());
skyframeExecutor.preparePackageLoading(pkgLocator,
Options.getDefaults(PackageCacheOptions.class).defaultVisibility, true,
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java
index 133e76dc87..dd44efc42e 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java
@@ -35,6 +35,7 @@ import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.skyframe.DiffAwareness;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SequencedSkyframeExecutor;
+import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.syntax.Label;
import com.google.devtools.build.lib.syntax.Label.SyntaxException;
@@ -69,19 +70,21 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase {
super.setUp();
ruleClassProvider = TestRuleClassProvider.getRuleClassProvider();
- skyframeExecutor = SequencedSkyframeExecutor.create(reporter,
- new PackageFactory(ruleClassProvider, getEnvironmentExtensions()),
- new TimestampGranularityMonitor(BlazeClock.instance()),
- new BlazeDirectories(outputBase, outputBase, rootDirectory),
- null, /* workspaceStatusActionFactory */
- ruleClassProvider.getBuildInfoFactories(),
- ImmutableSet.<Path>of(),
- ImmutableList.<DiffAwareness.Factory>of(),
- Predicates.<PathFragment>alwaysFalse(),
- Preprocessor.Factory.Supplier.NullSupplier.INSTANCE,
- ImmutableMap.<SkyFunctionName, SkyFunction>of(),
- ImmutableList.<PrecomputedValue.Injected>of()
- );
+ skyframeExecutor =
+ SequencedSkyframeExecutor.create(
+ reporter,
+ new PackageFactory(ruleClassProvider, getEnvironmentExtensions()),
+ new TimestampGranularityMonitor(BlazeClock.instance()),
+ new BlazeDirectories(outputBase, outputBase, rootDirectory),
+ null, /* workspaceStatusActionFactory */
+ ruleClassProvider.getBuildInfoFactories(),
+ ImmutableSet.<Path>of(),
+ ImmutableList.<DiffAwareness.Factory>of(),
+ Predicates.<PathFragment>alwaysFalse(),
+ Preprocessor.Factory.Supplier.NullSupplier.INSTANCE,
+ ImmutableMap.<SkyFunctionName, SkyFunction>of(),
+ ImmutableList.<PrecomputedValue.Injected>of(),
+ ImmutableList.<SkyValueDirtinessChecker>of());
skyframeExecutor.preparePackageLoading(
new PathPackageLocator(rootDirectory), ConstantRuleVisibility.PUBLIC, true, 7, "",
UUID.randomUUID());
diff --git a/src/test/shell/bazel/external_integration_test.sh b/src/test/shell/bazel/external_integration_test.sh
index ecae37cea0..e799302e9b 100755
--- a/src/test/shell/bazel/external_integration_test.sh
+++ b/src/test/shell/bazel/external_integration_test.sh
@@ -70,7 +70,8 @@ HTTP/1.0 200 OK
EOF
cat $1 >> $http_response
- nc_port=$(pick_random_unused_tcp_port) || exit 1
+ # Assign random_port to nc_port if not already set.
+ echo ${nc_port:=$(pick_random_unused_tcp_port)} > /dev/null
nc_log=$TEST_TMPDIR/nc.log
nc_l $nc_port < $http_response >& $nc_log &
nc_pid=$!
@@ -138,36 +139,41 @@ function tar_gz_up() {
# male
function http_archive_helper() {
zipper=$1
-
- # Create a zipped-up repository HTTP response.
- repo2=$TEST_TMPDIR/repo2
- rm -rf $repo2
- mkdir -p $repo2/fox
- cd $repo2
- touch WORKSPACE
- cat > fox/BUILD <<EOF
+ local write_workspace
+ [[ $# -gt 1 ]] && [[ "$2" = "nowrite" ]] && write_workspace=1 || write_workspace=0
+
+ if [[ $write_workspace = 0 ]]; then
+ # Create a zipped-up repository HTTP response.
+ repo2=$TEST_TMPDIR/repo2
+ rm -rf $repo2
+ mkdir -p $repo2/fox
+ cd $repo2
+ touch WORKSPACE
+ cat > fox/BUILD <<EOF
filegroup(
name = "fox",
srcs = ["male"],
visibility = ["//visibility:public"],
)
EOF
- what_does_the_fox_say="Fraka-kaka-kaka-kaka-kow"
- cat > fox/male <<EOF
+ what_does_the_fox_say="Fraka-kaka-kaka-kaka-kow"
+ cat > fox/male <<EOF
#!/bin/bash
echo $what_does_the_fox_say
EOF
- chmod +x fox/male
- # Add some padding to the .zip to test that Bazel's download logic can
- # handle breaking a response into chunks.
- dd if=/dev/zero of=fox/padding bs=1024 count=10240
- $zipper
- repo2_name=$(basename $repo2_zip)
- sha256=$(sha256sum $repo2_zip | cut -f 1 -d ' ')
+ chmod +x fox/male
+ # Add some padding to the .zip to test that Bazel's download logic can
+ # handle breaking a response into chunks.
+ dd if=/dev/zero of=fox/padding bs=1024 count=10240 >& $TEST_log
+ $zipper >& $TEST_log
+ repo2_name=$(basename $repo2_zip)
+ sha256=$(sha256sum $repo2_zip | cut -f 1 -d ' ')
+ fi
serve_file $repo2_zip
cd ${WORKSPACE_DIR}
- cat > WORKSPACE <<EOF
+ if [[ $write_workspace = 0 ]]; then
+ cat > WORKSPACE <<EOF
http_archive(
name = 'endangered',
url = 'http://localhost:$nc_port/$repo2_name',
@@ -175,7 +181,7 @@ http_archive(
)
EOF
- cat > zoo/BUILD <<EOF
+ cat > zoo/BUILD <<EOF
sh_binary(
name = "breeding-program",
srcs = ["female.sh"],
@@ -183,13 +189,14 @@ sh_binary(
)
EOF
- cat > zoo/female.sh <<EOF
+ cat > zoo/female.sh <<EOF
#!/bin/bash
./external/endangered/fox/male
EOF
- chmod +x zoo/female.sh
+ chmod +x zoo/female.sh
+fi
- bazel run //zoo:breeding-program >& $TEST_log \
+ bazel run //zoo:breeding-program >& $TEST_log --show_progress_rate_limit=0 \
|| echo "Expected build/run to succeed"
kill_nc
expect_log $what_does_the_fox_say
@@ -311,6 +318,21 @@ EOF
expect_log $what_does_the_fox_say
}
+function test_changed_zip() {
+ nc_port=$(pick_random_unused_tcp_port) || fail "Couldn't get TCP port"
+ http_archive_helper zip_up
+ http_archive_helper zip_up "nowrite"
+ expect_not_log "Downloading from"
+ local readonly output_base=$(bazel info output_base)
+ local readonly repo_zip=$output_base/external/endangered/fox.zip
+ rm $repo_zip || fail "Couldn't delete $repo_zip"
+ touch $repo_zip || fail "Couldn't touch $repo_zip"
+ [[ -s $repo_zip ]] && fail "File size not 0"
+ http_archive_helper zip_up "nowrite"
+ expect_log "Downloading from"
+ [[ -s $repo_zip ]] || fail "File size was 0"
+}
+
# Tests downloading a jar and using it as a Java dependency.
function test_jar_download() {
serve_jar