diff options
Diffstat (limited to 'src/test')
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 |