summaryrefslogtreecommitdiffstats
path: root/src/util_test.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-10-06 00:51:06 (GMT)
committerEvan Martin <martine@danga.com>2011-10-06 00:51:06 (GMT)
commite54d2b6c8bbb78b238160c7f31ae8515c15183d9 (patch)
tree2566a133dfda2675b55c896dbf22f95a7bbfced5 /src/util_test.cc
parent06ab305be33ff4899016c746ee8a3557291ebe09 (diff)
downloadNinja-e54d2b6c8bbb78b238160c7f31ae8515c15183d9.zip
Ninja-e54d2b6c8bbb78b238160c7f31ae8515c15183d9.tar.gz
Ninja-e54d2b6c8bbb78b238160c7f31ae8515c15183d9.tar.bz2
make CanonicalizePath report an error on empty path
Fixes part of issue 121, but the fix exposed a further issue.
Diffstat (limited to 'src/util_test.cc')
-rw-r--r--src/util_test.cc31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/util_test.cc b/src/util_test.cc
index 97a236f..8c3d023 100644
--- a/src/util_test.cc
+++ b/src/util_test.cc
@@ -17,52 +17,59 @@
#include "test.h"
TEST(CanonicalizePath, PathSamples) {
- std::string path = "foo.h";
- CanonicalizePath(&path);
+ string path;
+ string err;
+
+ EXPECT_FALSE(CanonicalizePath(&path, &err));
+ EXPECT_EQ("empty path", err);
+
+ path = "foo.h"; err = "";
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("foo.h", path);
path = "./foo.h";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("foo.h", path);
path = "./foo/./bar.h";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("foo/bar.h", path);
path = "./x/foo/../bar.h";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("x/bar.h", path);
path = "./x/foo/../../bar.h";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("bar.h", path);
path = "foo//bar";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("foo/bar", path);
path = "foo//.//..///bar";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("bar", path);
path = "./x/../foo/../../bar.h";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("../bar.h", path);
}
TEST(CanonicalizePath, UpDir) {
std::string path, err;
path = "../../foo/bar.h";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("../../foo/bar.h", path);
path = "test/../../foo/bar.h";
- CanonicalizePath(&path);
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("../foo/bar.h", path);
}
TEST(CanonicalizePath, AbsolutePath) {
string path = "/usr/include/stdio.h";
- CanonicalizePath(&path);
+ string err;
+ EXPECT_TRUE(CanonicalizePath(&path, &err));
EXPECT_EQ("/usr/include/stdio.h", path);
}