diff options
Diffstat (limited to 'src/test')
3 files changed, 79 insertions, 57 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java index 10f8779909..85424470f7 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/AbstractTargetPatternEvaluatorTest.java @@ -21,10 +21,12 @@ import com.google.devtools.build.lib.cmdline.ResolvedTargets; import com.google.devtools.build.lib.cmdline.TargetParsingException; import com.google.devtools.build.lib.events.DelegatingEventHandler; import com.google.devtools.build.lib.events.ExtendedEventHandler; +import com.google.devtools.build.lib.events.ExtendedEventHandler.Postable; import com.google.devtools.build.lib.packages.ConstantRuleVisibility; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; import com.google.devtools.build.lib.util.Pair; +import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -49,17 +51,40 @@ public abstract class AbstractTargetPatternEvaluatorTest extends PackageLoadingT boolean keepGoing) throws TargetParsingException, InterruptedException { return parseTargetPatternList( - parser, eventHandler, targetPatterns, FilteringPolicies.NO_FILTER, keepGoing); + PathFragment.EMPTY_FRAGMENT, + parser, + eventHandler, + targetPatterns, + FilteringPolicies.NO_FILTER, + keepGoing); } protected static ResolvedTargets<Target> parseTargetPatternList( + PathFragment relativeWorkingDirectory, + TargetPatternEvaluator parser, + ExtendedEventHandler eventHandler, + List<String> targetPatterns, + boolean keepGoing) + throws TargetParsingException, InterruptedException { + return parseTargetPatternList( + relativeWorkingDirectory, + parser, + eventHandler, + targetPatterns, + FilteringPolicies.NO_FILTER, + keepGoing); + } + + protected static ResolvedTargets<Target> parseTargetPatternList( + PathFragment relativeWorkingDirectory, TargetPatternEvaluator parser, ExtendedEventHandler eventHandler, List<String> targetPatterns, FilteringPolicy policy, boolean keepGoing) throws TargetParsingException, InterruptedException { - return parser.parseTargetPatternList(eventHandler, targetPatterns, policy, keepGoing); + return parser.parseTargetPatternList( + relativeWorkingDirectory, eventHandler, targetPatterns, policy, keepGoing); } /** @@ -77,7 +102,7 @@ public abstract class AbstractTargetPatternEvaluatorTest extends PackageLoadingT @Before public final void initializeParser() throws Exception { setUpSkyframe(ConstantRuleVisibility.PRIVATE, loadingMock.getDefaultsPackageContent()); - parser = skyframeExecutor.getPackageManager().newTargetPatternEvaluator(); + parser = skyframeExecutor.newTargetPatternEvaluator(); parsingListener = new RecordingParsingListener(reporter); } diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java index d421e9229c..3c3a7739a3 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/CompileOneDependencyTransformerTest.java @@ -24,6 +24,7 @@ import com.google.devtools.build.lib.events.Reporter; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.util.PackageLoadingTestCase; import com.google.devtools.build.lib.vfs.Path; +import com.google.devtools.build.lib.vfs.PathFragment; import java.io.IOException; import java.util.Arrays; import java.util.HashSet; @@ -49,7 +50,7 @@ public class CompileOneDependencyTransformerTest extends PackageLoadingTestCase @Before public final void createTransformer() throws Exception { - parser = getPackageManager().newTargetPatternEvaluator(); + parser = skyframeExecutor.newTargetPatternEvaluator(); transformer = new CompileOneDependencyTransformer(getPackageManager()); } @@ -75,7 +76,8 @@ public class CompileOneDependencyTransformerTest extends PackageLoadingTestCase TargetPatternEvaluator parser, Reporter reporter, List<String> targetPatterns, FilteringPolicy policy, boolean keepGoing) throws Exception { - return parser.parseTargetPatternList(reporter, targetPatterns, policy, keepGoing); + return parser.parseTargetPatternList( + PathFragment.EMPTY_FRAGMENT, reporter, targetPatterns, policy, keepGoing); } private ResolvedTargets<Target> parseCompileOneDep(String... patterns) throws Exception { @@ -91,12 +93,14 @@ public class CompileOneDependencyTransformerTest extends PackageLoadingTestCase private Set<Label> parseListCompileOneDepRelative(String... patterns) throws TargetParsingException, IOException, InterruptedException { Path foo = scratch.dir("foo"); - TargetPatternEvaluator fooOffsetParser = getPackageManager().newTargetPatternEvaluator(); - fooOffsetParser.updateOffset(foo.relativeTo(rootDirectory)); + TargetPatternEvaluator fooOffsetParser = skyframeExecutor.newTargetPatternEvaluator(); ResolvedTargets<Target> result; try { result = fooOffsetParser.parseTargetPatternList( - reporter, Arrays.asList(patterns), FilteringPolicies.NO_FILTER, false); + foo.relativeTo(rootDirectory), + reporter, + Arrays.asList(patterns), + FilteringPolicies.NO_FILTER, false); } catch (InterruptedException e) { throw new RuntimeException(e); } diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java index a7f81a23e0..94029ac5c7 100644 --- a/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java +++ b/src/test/java/com/google/devtools/build/lib/pkgcache/TargetPatternEvaluatorTest.java @@ -152,11 +152,6 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe skyframeExecutor.setDeletedPackages(deletedPackages); } - private TargetPatternEvaluator shiftOffset() { - parser.updateOffset(fooOffset); - return parser; - } - private Set<Label> parseList(String... patterns) throws TargetParsingException, InterruptedException { return targetsToLabels( @@ -176,13 +171,25 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe FilteringPolicy policy, String... patterns) throws TargetParsingException, InterruptedException { return targetsToLabels(getFailFast( - parseTargetPatternList(parser, parsingListener, Arrays.asList(patterns), policy, false))); + parseTargetPatternList( + PathFragment.EMPTY_FRAGMENT, + parser, + parsingListener, + Arrays.asList(patterns), + policy, + false))); + } + + private Set<Label> parseListRelative(PathFragment offset, String... patterns) + throws TargetParsingException, InterruptedException { + return targetsToLabels(getFailFast(parseTargetPatternList( + offset, parser, parsingListener, Arrays.asList(patterns), false))); } private Set<Label> parseListRelative(String... patterns) throws TargetParsingException, InterruptedException { return targetsToLabels(getFailFast(parseTargetPatternList( - shiftOffset(), parsingListener, Arrays.asList(patterns), false))); + fooOffset, parser, parsingListener, Arrays.asList(patterns), false))); } private static Set<Target> getFailFast(ResolvedTargets<Target> result) { @@ -190,10 +197,14 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe return result.getTargets(); } - private void expectError(TargetPatternEvaluator parser, String expectedError, - String target) throws InterruptedException { + private void expectError( + PathFragment offset, + TargetPatternEvaluator parser, + String expectedError, + String target) + throws InterruptedException { try { - parser.parseTargetPattern(parsingListener, target, false); + parseTargetPatternList(offset, parser, parsingListener, ImmutableList.of(target), false); fail("target='" + target + "', expected error: " + expectedError); } catch (TargetParsingException e) { assertThat(e).hasMessageThat().contains(expectedError); @@ -201,23 +212,27 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe } private void expectError(String expectedError, String target) throws InterruptedException { - expectError(parser, expectedError, target); + expectError(PathFragment.EMPTY_FRAGMENT, parser, expectedError, target); } private void expectErrorRelative(String expectedError, String target) throws InterruptedException { - expectError(shiftOffset(), expectedError, target); + expectError(fooOffset, parser, expectedError, target); } private Label parseIndividualTarget(String targetLabel) throws Exception { return Iterables.getOnlyElement( - getFailFast(parser.parseTargetPattern(parsingListener, targetLabel, false))).getLabel(); + getFailFast( + parseTargetPatternList(parser, parsingListener, ImmutableList.of(targetLabel), false))) + .getLabel(); } private Label parseIndividualTargetRelative(String targetLabel) throws Exception { return Iterables.getOnlyElement( getFailFast( - shiftOffset().parseTargetPattern(parsingListener, targetLabel, false))).getLabel(); + parseTargetPatternList( + fooOffset, parser, parsingListener, ImmutableList.of(targetLabel), false))) + .getLabel(); } @Test @@ -336,14 +351,10 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe scratch.file("nest/nest/BUILD", "cc_library(name = 'nested2', srcs = [ ])"); - updateOffset(PathFragment.create("nest")); - assertThat(parseList(":all")).containsExactlyElementsIn(labels("//nest:nested1")); - updateOffset(PathFragment.create("nest/nest")); - assertThat(parseList(":all")).containsExactlyElementsIn(labels("//nest/nest:nested2")); - } - - protected void updateOffset(PathFragment rel) { - parser.updateOffset(rel); + assertThat(parseListRelative(PathFragment.create("nest"), ":all")) + .containsExactlyElementsIn(labels("//nest:nested1")); + assertThat(parseListRelative(PathFragment.create("nest/nest"), ":all")) + .containsExactlyElementsIn(labels("//nest/nest:nested2")); } private void runFindTargetsInPackage(String suffix) throws Exception { @@ -517,9 +528,14 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe scratch.file("x/z/BUILD", "cc_library(name='z')"); setDeletedPackages(Sets.newHashSet(PackageIdentifier.createInMainRepo("x/y"))); - parser.updateOffset(PathFragment.create("x")); assertThat( - targetsToLabels(getFailFast(parser.parseTargetPattern(parsingListener, "...", false)))) + targetsToLabels(getFailFast( + parseTargetPatternList( + PathFragment.create("x"), + parser, + parsingListener, + ImmutableList.of("..."), + false)))) .isEqualTo(Sets.newHashSet(Label.parseAbsolute("//x/z"))); } @@ -599,27 +615,6 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe assertThat(parseListRelative("//foo/...:*")).containsExactlyElementsIn(targetsBeneathFoo); } - @Test - public void testFactoryMethod() throws Exception { - Path workspace = scratch.dir("/client/workspace"); - Path underWorkspace = scratch.dir("/client/workspace/foo"); - Path notUnderWorkspace = scratch.dir("/client/otherclient"); - - updateOffset(workspace, underWorkspace); - updateOffset(workspace, workspace); - - // The client must be equal to or underneath the workspace. - try { - updateOffset(workspace, notUnderWorkspace); - fail("Should have failed because client was not underneath the workspace"); - } catch (IllegalArgumentException expected) { - } - } - - private void updateOffset(Path workspace, Path workingDir) { - parser.updateOffset(workingDir.relativeTo(workspace)); - } - private void setupSubDirectoryCircularSymlink() throws Exception { Path parent = scratch.file("parent/BUILD", "sh_library(name = 'parent')").getParentDirectory(); Path child = parent.getRelative("child"); @@ -725,7 +720,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe // Ensure that validateTargetPattern's checking is strictly weaker than // that of parseTargetPattern. try { - parser.parseTargetPattern(parsingListener, target, false); + parseTargetPatternList(parser, parsingListener, ImmutableList.of(target), false); fail("parseTargetPattern(" + target + ") inconsistent with parseTargetPattern!"); } catch (TargetParsingException expected) { /* ignore */ @@ -745,9 +740,7 @@ public class TargetPatternEvaluatorTest extends AbstractTargetPatternEvaluatorTe @Test public void testSetOffset() throws Exception { assertThat(parseIndividualTarget("foo:foo1").toString()).isEqualTo("//foo:foo1"); - - parser.updateOffset(PathFragment.create("foo")); - assertThat(parseIndividualTarget(":foo1").toString()).isEqualTo("//foo:foo1"); + assertThat(parseIndividualTargetRelative(":foo1").toString()).isEqualTo("//foo:foo1"); } @Test |