bool pathStartsWith(PathRef Ancestor, PathRef Path,
llvm::sys::path::Style Style) {
- assert(llvm::sys::path::is_absolute(Ancestor, Style) &&
- llvm::sys::path::is_absolute(Path, Style));
+ assert(llvm::sys::path::is_absolute(Ancestor) &&
+ llvm::sys::path::is_absolute(Path));
// If ancestor ends with a separator drop that, so that we can match /foo/ as
// a parent of /foo.
if (llvm::sys::path::is_separator(Ancestor.back(), Style))
//
//===----------------------------------------------------------------------===//
+#include "TestFS.h"
#include "support/Path.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
namespace clangd {
namespace {
TEST(PathTests, IsAncestor) {
- EXPECT_TRUE(pathStartsWith("/foo", "/foo"));
- EXPECT_TRUE(pathStartsWith("/foo/", "/foo"));
+ EXPECT_TRUE(pathStartsWith(testPath("foo"), testPath("foo")));
+ EXPECT_TRUE(pathStartsWith(testPath("foo/"), testPath("foo")));
- EXPECT_FALSE(pathStartsWith("/foo", "/fooz"));
- EXPECT_FALSE(pathStartsWith("/foo/", "/fooz"));
+ EXPECT_FALSE(pathStartsWith(testPath("foo"), testPath("fooz")));
+ EXPECT_FALSE(pathStartsWith(testPath("foo/"), testPath("fooz")));
- EXPECT_TRUE(pathStartsWith("/foo", "/foo/bar"));
- EXPECT_TRUE(pathStartsWith("/foo/", "/foo/bar"));
+ EXPECT_TRUE(pathStartsWith(testPath("foo"), testPath("foo/bar")));
+ EXPECT_TRUE(pathStartsWith(testPath("foo/"), testPath("foo/bar")));
#ifdef CLANGD_PATH_CASE_INSENSITIVE
- EXPECT_TRUE(pathStartsWith("/fOo", "/foo/bar"));
- EXPECT_TRUE(pathStartsWith("/foo", "/fOo/bar"));
+ EXPECT_TRUE(pathStartsWith(testPath("fOo"), testPath("foo/bar")));
+ EXPECT_TRUE(pathStartsWith(testPath("foo"), testPath("fOo/bar")));
#else
- EXPECT_FALSE(pathStartsWith("/fOo", "/foo/bar"));
- EXPECT_FALSE(pathStartsWith("/foo", "/fOo/bar"));
+ EXPECT_FALSE(pathStartsWith(testPath("fOo"), testPath("foo/bar")));
+ EXPECT_FALSE(pathStartsWith(testPath("foo"), testPath("fOo/bar")));
#endif
}
} // namespace