diff options
author | Laurent Le Brun <laurentlb@google.com> | 2016-06-17 13:36:24 +0000 |
---|---|---|
committer | Philipp Wollermann <philwo@google.com> | 2016-06-20 09:34:06 +0000 |
commit | f3cf98faa44f3b647956868422a11074aff0e9ee (patch) | |
tree | 93a361a853b3ebccd0af7074c993c29618ddf0e4 /src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java | |
parent | 48f2470b3cc60c11e46a95872a409341c4224096 (diff) |
Rollback of commit bdfd58a8ca2ed5735d6aaa5b238fb0f689515724.
--
MOS_MIGRATED_REVID=125160288
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java b/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java index 317051b9d4..f9c31ca044 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/ArtifactFactoryTest.java @@ -150,26 +150,25 @@ public class ArtifactFactoryTest { } @Test - public void testResolveArtifactWithUpLevel() throws Exception { + public void testResolveArtifactWithUpLevelFailsCleanly() throws Exception { // We need a package in the root directory to make every exec path (even one with up-level // references) be in a package. Map<PackageIdentifier, Root> packageRoots = ImmutableMap.of( - PackageIdentifier.create("@workspace", new PathFragment("")), clientRoot, - PackageIdentifier.create("@repo", new PathFragment("dir")), clientRoot); + PackageIdentifier.createInMainRepo(new PathFragment("")), clientRoot); artifactFactory.setPackageRoots(packageRoots); - PathFragment topLevel = new PathFragment("../workspace/foo"); - PathFragment subdir = new PathFragment("../repo/dir/foo"); - Artifact topLevelArtifact = artifactFactory.resolveSourceArtifact(topLevel); - assertThat(topLevelArtifact).isNotNull(); - Artifact subdirArtifact = artifactFactory.resolveSourceArtifact(subdir); - assertThat(subdirArtifact).isNotNull(); + PathFragment outsideWorkspace = new PathFragment("../foo"); + PathFragment insideWorkspace = + new PathFragment("../" + clientRoot.getPath().getBaseName() + "/foo"); + assertNull(artifactFactory.resolveSourceArtifact(outsideWorkspace)); + assertNull("Up-level-containing paths that descend into the right workspace aren't allowed", + artifactFactory.resolveSourceArtifact(insideWorkspace)); MockPackageRootResolver packageRootResolver = new MockPackageRootResolver(); packageRootResolver.setPackageRoots(packageRoots); Map<PathFragment, Artifact> result = new HashMap<>(); - result.put(topLevel, topLevelArtifact); - result.put(subdir, subdirArtifact); + result.put(insideWorkspace, null); + result.put(outsideWorkspace, null); assertThat( - artifactFactory.resolveSourceArtifacts(ImmutableList.of(topLevel, subdir), + artifactFactory.resolveSourceArtifacts(ImmutableList.of(insideWorkspace, outsideWorkspace), packageRootResolver).entrySet()).containsExactlyElementsIn(result.entrySet()); } |