Fix Windows test cases (#1537)

This commit is contained in:
Ben Doherty
2019-08-20 15:36:22 -07:00
committed by GitHub
parent f8aa17c245
commit bd22bed2fb
3 changed files with 12 additions and 7 deletions
+4 -2
View File
@@ -70,7 +70,8 @@ bool Path::isDirectory() const {
Path Path::concat(const Path& path) const {
if (path.isEmpty()) return *this;
if (path.isAbsolute()) return path;
if (m_path.back() != SEPARATOR && !m_path.empty()) {
// std::string::back() is UB if the string is empty, so we rely on short-circuit evaluation
if (!m_path.empty() && m_path.back() != SEPARATOR) {
return Path(m_path + SEPARATOR + path.getPath());
}
return Path(m_path + path.getPath());
@@ -80,7 +81,8 @@ void Path::concatToSelf(const Path& path) {
if (!path.isEmpty()) {
if (path.isAbsolute()) {
m_path = path.getPath();
} else if (m_path.back() != SEPARATOR) {
// std::string::back() is UB if the string is empty, so we rely on short-circuit evaluation
} else if (!m_path.empty() && m_path.back() != SEPARATOR) {
m_path = getCanonicalPath(m_path + SEPARATOR + path.getPath());
} else {
m_path = getCanonicalPath(m_path + path.getPath());
+8
View File
@@ -173,6 +173,14 @@ TEST(WinPathTest, Concatenate) {
// Unix-style separators work too
r = root.concat("out/bin/foo/bar");
EXPECT_EQ("C:\\Volumes\\Replicant\\blue\\out\\bin\\foo\\bar", r.getPath());
r = "";
r = r.concat("foo\\bar");
EXPECT_EQ("foo\\bar", r.getPath());
r = "";
r.concatToSelf("foo\\bar");
EXPECT_EQ("foo\\bar", r.getPath());
}
TEST(PathTest, GetParent) {
-5
View File
@@ -96,11 +96,6 @@ TEST(sstream, Formatting) {
ss << (bool) true;
EXPECT_STREQ("1", ss.c_str());
}
{
sstream ss;
ss << (const void *) 0x12345678;
EXPECT_STREQ("0x12345678", ss.c_str());
}
{
sstream ss;
ss << (const char *) "hello";