summaryrefslogtreecommitdiffstats
path: root/lldb/unittests/Utility/ArgsTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/unittests/Utility/ArgsTest.cpp')
-rw-r--r--lldb/unittests/Utility/ArgsTest.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/lldb/unittests/Utility/ArgsTest.cpp b/lldb/unittests/Utility/ArgsTest.cpp
index ef63ab3f3df..b4bb9ca3cb0 100644
--- a/lldb/unittests/Utility/ArgsTest.cpp
+++ b/lldb/unittests/Utility/ArgsTest.cpp
@@ -188,3 +188,29 @@ TEST(ArgsTest, GetArgumentArrayRef) {
EXPECT_STREQ("foo", ref[0]);
EXPECT_STREQ("bar", ref[1]);
}
+
+TEST(ArgsTest, EscapeLLDBCommandArgument) {
+ const std::string foo = "foo'";
+ EXPECT_EQ("foo\\'", Args::EscapeLLDBCommandArgument(foo, '\0'));
+ EXPECT_EQ("foo'", Args::EscapeLLDBCommandArgument(foo, '\''));
+ EXPECT_EQ("foo'", Args::EscapeLLDBCommandArgument(foo, '`'));
+ EXPECT_EQ("foo'", Args::EscapeLLDBCommandArgument(foo, '"'));
+
+ const std::string bar = "bar\"";
+ EXPECT_EQ("bar\\\"", Args::EscapeLLDBCommandArgument(bar, '\0'));
+ EXPECT_EQ("bar\"", Args::EscapeLLDBCommandArgument(bar, '\''));
+ EXPECT_EQ("bar\"", Args::EscapeLLDBCommandArgument(bar, '`'));
+ EXPECT_EQ("bar\\\"", Args::EscapeLLDBCommandArgument(bar, '"'));
+
+ const std::string baz = "baz`";
+ EXPECT_EQ("baz\\`", Args::EscapeLLDBCommandArgument(baz, '\0'));
+ EXPECT_EQ("baz`", Args::EscapeLLDBCommandArgument(baz, '\''));
+ EXPECT_EQ("baz`", Args::EscapeLLDBCommandArgument(baz, '`'));
+ EXPECT_EQ("baz\\`", Args::EscapeLLDBCommandArgument(baz, '"'));
+
+ const std::string quux = "quux\t";
+ EXPECT_EQ("quux\\\t", Args::EscapeLLDBCommandArgument(quux, '\0'));
+ EXPECT_EQ("quux\t", Args::EscapeLLDBCommandArgument(quux, '\''));
+ EXPECT_EQ("quux\t", Args::EscapeLLDBCommandArgument(quux, '`'));
+ EXPECT_EQ("quux\t", Args::EscapeLLDBCommandArgument(quux, '"'));
+}
OpenPOWER on IntegriCloud