aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar carmi <carmi@google.com>2017-05-20 04:07:15 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-05-22 14:40:06 +0200
commitc4a8e91b9079933b242a492372ce59b0342a41c5 (patch)
tree45456400a0a2009c79c68086b8b58cc519525a98 /src/test/java/com/google/devtools/build/lib
parent68f1fe008d6d99d518921d12c39494a055c769ea (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.java21
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):",