diff options
Diffstat (limited to 'strutil_test.cc')
-rw-r--r-- | strutil_test.cc | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/strutil_test.cc b/strutil_test.cc index eb1e195..a89786f 100644 --- a/strutil_test.cc +++ b/strutil_test.cc @@ -30,13 +30,14 @@ namespace { void TestWordScanner() { vector<StringPiece> ss; - for (StringPiece tok : WordScanner("foo bar baz")) { + for (StringPiece tok : WordScanner("foo bar baz hogeeeeeeeeeeeeeeee")) { ss.push_back(tok); } - assert(ss.size() == 3LU); + assert(ss.size() == 4LU); ASSERT_EQ(ss[0], "foo"); ASSERT_EQ(ss[1], "bar"); ASSERT_EQ(ss[2], "baz"); + ASSERT_EQ(ss[3], "hogeeeeeeeeeeeeeeee"); } void TestHasPrefix() { @@ -115,6 +116,28 @@ void TestNormalizePath() { ASSERT_EQ(NormalizePath("./../../a/b"), "../../a/b"); } +string EscapeShell(string s) { + ::EscapeShell(&s); + return s; +} + +void TestEscapeShell() { + ASSERT_EQ(EscapeShell(""), ""); + ASSERT_EQ(EscapeShell("foo"), "foo"); + ASSERT_EQ(EscapeShell("foo$`\\baz\"bar"), "foo\\$\\`\\\\baz\\\"bar"); + ASSERT_EQ(EscapeShell("$$"), "\\$$"); + ASSERT_EQ(EscapeShell("$$$"), "\\$$\\$"); + ASSERT_EQ(EscapeShell("\\\n"), "\\\\\n"); +} + +void TestFindEndOfLine() { + size_t lf_cnt = 0; + ASSERT_EQ(FindEndOfLine("foo", 0, &lf_cnt), 3); + char buf[10] = {'f', 'o', '\\', '\0', 'x', 'y'}; + ASSERT_EQ(FindEndOfLine(StringPiece(buf, 6), 0, &lf_cnt), 3); + ASSERT_EQ(FindEndOfLine(StringPiece(buf, 2), 0, &lf_cnt), 2); +} + } // namespace int main() { @@ -125,5 +148,7 @@ int main() { TestNoLineBreak(); TestHasWord(); TestNormalizePath(); + TestEscapeShell(); + TestFindEndOfLine(); assert(!g_failed); } |