aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/launcher/util/launcher_util_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/launcher/util/launcher_util_test.cc')
-rw-r--r--src/tools/launcher/util/launcher_util_test.cc62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/tools/launcher/util/launcher_util_test.cc b/src/tools/launcher/util/launcher_util_test.cc
index 9024d1d11e..f8ddf803f3 100644
--- a/src/tools/launcher/util/launcher_util_test.cc
+++ b/src/tools/launcher/util/launcher_util_test.cc
@@ -113,5 +113,67 @@ TEST_F(LaunchUtilTest, SetAndGetEnvTest) {
ASSERT_FALSE(GetEnv("FOO", &value));
}
+TEST_F(LaunchUtilTest, NormalizePathTest) {
+ string value;
+ ASSERT_TRUE(NormalizePath("C:\\foo\\bar\\", &value));
+ ASSERT_EQ("c:\\foo\\bar", value);
+ ASSERT_TRUE(NormalizePath("c:/foo/bar/", &value));
+ ASSERT_EQ("c:\\foo\\bar", value);
+ ASSERT_TRUE(NormalizePath("FoO\\\\bAr\\", &value));
+ ASSERT_EQ("foo\\bar", value);
+ ASSERT_TRUE(NormalizePath("X\\Y/Z\\", &value));
+ ASSERT_EQ("x\\y\\z", value);
+ ASSERT_TRUE(NormalizePath("c://foo//bar", &value));
+ ASSERT_EQ("c:\\foo\\bar", value);
+ ASSERT_FALSE(NormalizePath("c:foo\\bar", &value));
+}
+
+TEST_F(LaunchUtilTest, RelativeToTest) {
+ string value;
+ ASSERT_TRUE(RelativeTo("c:\\foo\\bar1", "c:\\foo\\bar2", &value));
+ ASSERT_EQ("..\\bar1", value);
+ ASSERT_TRUE(RelativeTo("c:\\foo\\bar", "c:\\", &value));
+ ASSERT_EQ("foo\\bar", value);
+ ASSERT_TRUE(RelativeTo("c:\\foo\\bar", "c:\\foo\\bar", &value));
+ ASSERT_EQ("", value);
+ ASSERT_TRUE(RelativeTo("c:\\foo\\bar", "c:\\foo", &value));
+ ASSERT_EQ("bar", value);
+ ASSERT_TRUE(RelativeTo("c:\\foo\\bar", "c:\\foo\\ba", &value));
+ ASSERT_EQ("..\\bar", value);
+ ASSERT_TRUE(RelativeTo("c:\\", "c:\\foo", &value));
+ ASSERT_EQ("..\\", value);
+ ASSERT_TRUE(RelativeTo("c:\\", "c:\\a\\b\\c", &value));
+ ASSERT_EQ("..\\..\\..\\", value);
+ ASSERT_TRUE(RelativeTo("c:\\aa\\bb\\cc", "c:\\a\\b", &value));
+ ASSERT_EQ("..\\..\\aa\\bb\\cc", value);
+
+ ASSERT_TRUE(RelativeTo("foo\\bar", "foo\\bar", &value));
+ ASSERT_EQ("", value);
+ ASSERT_TRUE(RelativeTo("foo\\bar1", "foo\\bar2", &value));
+ ASSERT_EQ("..\\bar1", value);
+ ASSERT_TRUE(RelativeTo("foo\\bar1", "foo\\bar", &value));
+ ASSERT_EQ("..\\bar1", value);
+ ASSERT_TRUE(RelativeTo("foo\\bar1", "foo", &value));
+ ASSERT_EQ("bar1", value);
+ ASSERT_TRUE(RelativeTo("foo\\bar1", "fo", &value));
+ ASSERT_EQ("..\\foo\\bar1", value);
+ ASSERT_TRUE(RelativeTo("foo\\ba", "foo\\bar", &value));
+ ASSERT_EQ("..\\ba", value);
+ ASSERT_TRUE(RelativeTo("foo", "foo\\bar", &value));
+ ASSERT_EQ("..\\", value);
+ ASSERT_TRUE(RelativeTo("fo", "foo\\bar", &value));
+ ASSERT_EQ("..\\..\\fo", value);
+ ASSERT_TRUE(RelativeTo("", "foo\\bar", &value));
+ ASSERT_EQ("..\\..\\", value);
+ ASSERT_TRUE(RelativeTo("foo\\bar", "", &value));
+ ASSERT_EQ("foo\\bar", value);
+ ASSERT_TRUE(RelativeTo("a\\b\\c", "x\\y", &value));
+ ASSERT_EQ("..\\..\\a\\b\\c", value);
+
+ ASSERT_FALSE(RelativeTo("c:\\foo\\bar1", "foo\\bar2", &value));
+ ASSERT_FALSE(RelativeTo("c:foo\\bar1", "c:\\foo\\bar2", &value));
+ ASSERT_FALSE(RelativeTo("c:\\foo\\bar1", "d:\\foo\\bar2", &value));
+}
+
} // namespace launcher
} // namespace bazel