aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
diff options
context:
space:
mode:
authorGravatar nharmata <nharmata@google.com>2018-03-15 09:35:48 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-15 09:37:05 -0700
commit90750e66344819a9fef4f0f0a633bc85e4d5d72d (patch)
tree285f942373d74e20ee76043e9a5799251599db4c /src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
parent2267e2a783231d02822d182012b8047f4694be5a (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.java20
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"));