diff options
author | 2017-05-20 04:07:15 +0200 | |
---|---|---|
committer | 2017-05-22 14:40:06 +0200 | |
commit | c4a8e91b9079933b242a492372ce59b0342a41c5 (patch) | |
tree | 45456400a0a2009c79c68086b8b58cc519525a98 /src/test/java/com/google/devtools/build/lib | |
parent | 68f1fe008d6d99d518921d12c39494a055c769ea (diff) |
Create a loadPackages() method that loads multiple packages simultaneously, using multiple threads.
The immediate upside is that if multiple packages load the same bzl file, that file will only be read once when using loadPackages().
RELNOTES: None
PiperOrigin-RevId: 156621988
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java index 40deb5089d..2d3a2bf2a6 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java @@ -19,6 +19,8 @@ import static com.google.devtools.build.lib.testutil.MoreAsserts.assertNoEvents; import static org.junit.Assert.fail; import com.google.common.base.Joiner; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.eventbus.EventBus; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.Reporter; @@ -89,6 +91,25 @@ public abstract class AbstractPackageLoaderTest { } @Test + public void simpleMultipleGoodPackage() throws Exception { + file("good1/BUILD", "sh_library(name = 'good1')"); + file("good2/BUILD", "sh_library(name = 'good2')"); + PackageIdentifier pkgId1 = PackageIdentifier.createInMainRepo(PathFragment.create("good1")); + PackageIdentifier pkgId2 = PackageIdentifier.createInMainRepo(PathFragment.create("good2")); + ImmutableMap<PackageIdentifier, PackageLoader.PackageOrException> pkgs = + pkgLoader.loadPackages(ImmutableList.of(pkgId1, pkgId2)); + assertThat(pkgs.get(pkgId1).get().containsErrors()).isFalse(); + assertThat(pkgs.get(pkgId2).get().containsErrors()).isFalse(); + assertThat(pkgs.get(pkgId1).get().getTarget("good1").getAssociatedRule().getRuleClass()) + .isEqualTo("sh_library"); + assertThat(pkgs.get(pkgId2).get().getTarget("good2").getAssociatedRule().getRuleClass()) + .isEqualTo("sh_library"); + assertNoEvents(pkgs.get(pkgId1).get().getEvents()); + assertNoEvents(pkgs.get(pkgId2).get().getEvents()); + assertNoEvents(handler.getEvents()); + } + + @Test public void simpleGoodPackage_Skylark() throws Exception { file("good/good.bzl", "def f(x):", |