diff options
author | 2018-03-15 09:35:48 -0700 | |
---|---|---|
committer | 2018-03-15 09:37:05 -0700 | |
commit | 90750e66344819a9fef4f0f0a633bc85e4d5d72d (patch) | |
tree | 285f942373d74e20ee76043e9a5799251599db4c /src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java | |
parent | 2267e2a783231d02822d182012b8047f4694be5a (diff) |
Optimize GC churn due to PackageFunction#getContainingDirectory. While I'm here, also slightly restructure the code in #handleLabelsCrossingSubpackagesAndPropagateInconsistentFilesystemExceptions to make it more readable (and defer PackageIdentifier allocations).
Alternatives considered: Add a PathFragment#getParentDirectoryOfRelative(String other) instance method, and use it in PackageFunction#getContainingDirectory. I thought the approach in this CL would be preferable to adding a specialized method like that to PathFragment.
RELNOTES: None
PiperOrigin-RevId: 189197855
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java index 6122aba283..78986e0f5e 100644 --- a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java +++ b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java @@ -146,6 +146,26 @@ public class PathFragmentTest { } @Test + public void testIsNormalizedRelativePath() { + assertThat(PathFragment.isNormalizedRelativePath("/a")).isFalse(); + assertThat(PathFragment.isNormalizedRelativePath("a///b")).isFalse(); + assertThat(PathFragment.isNormalizedRelativePath("../a")).isFalse(); + assertThat(PathFragment.isNormalizedRelativePath("a/../b")).isFalse(); + assertThat(PathFragment.isNormalizedRelativePath("a/b")).isTrue(); + assertThat(PathFragment.isNormalizedRelativePath("ab")).isTrue(); + } + + @Test + public void testContainsSeparator() { + assertThat(PathFragment.containsSeparator("/a")).isTrue(); + assertThat(PathFragment.containsSeparator("a///b")).isTrue(); + assertThat(PathFragment.containsSeparator("../a")).isTrue(); + assertThat(PathFragment.containsSeparator("a/../b")).isTrue(); + assertThat(PathFragment.containsSeparator("a/b")).isTrue(); + assertThat(PathFragment.containsSeparator("ab")).isFalse(); + } + + @Test public void testGetChildWorks() { PathFragment pf = create("../some/path"); assertThat(pf.getChild("hi")).isEqualTo(create("../some/path/hi")); |