summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-09-06 08:39:53 +0000
committerRaphael Isemann <teemperor@gmail.com>2019-09-06 08:39:53 +0000
commit0d50c4e060ffea2edcb08b94a6ff7694275e112b (patch)
treede6bb971f758421f33b04c70ff28ab1ab12b6d1c
parent312409e464cd0e959e8ef8061144b2e8a4f02ab2 (diff)
downloadbcm5719-llvm-0d50c4e060ffea2edcb08b94a6ff7694275e112b.tar.gz
bcm5719-llvm-0d50c4e060ffea2edcb08b94a6ff7694275e112b.zip
[lldb][NFC] Extend ArgsTest
llvm-svn: 371180
-rw-r--r--lldb/unittests/Utility/ArgsTest.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/lldb/unittests/Utility/ArgsTest.cpp b/lldb/unittests/Utility/ArgsTest.cpp
index b4bb9ca3cb0..bb01b434dc7 100644
--- a/lldb/unittests/Utility/ArgsTest.cpp
+++ b/lldb/unittests/Utility/ArgsTest.cpp
@@ -37,6 +37,34 @@ TEST(ArgsTest, TestSingleArgWithQuotedSpace) {
EXPECT_STREQ(args.GetArgumentAtIndex(0), "arg with space");
}
+TEST(ArgsTest, TestTrailingBackslash) {
+ Args args;
+ args.SetCommandString("arg\\");
+ EXPECT_EQ(1u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(0), "arg\\");
+}
+
+TEST(ArgsTest, TestQuotedTrailingBackslash) {
+ Args args;
+ args.SetCommandString("\"arg\\");
+ EXPECT_EQ(1u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(0), "arg\\");
+}
+
+TEST(ArgsTest, TestUnknownEscape) {
+ Args args;
+ args.SetCommandString("arg\\y");
+ EXPECT_EQ(1u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(0), "arg\\y");
+}
+
+TEST(ArgsTest, TestQuotedUnknownEscape) {
+ Args args;
+ args.SetCommandString("\"arg\\y");
+ EXPECT_EQ(1u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(0), "arg\\y");
+}
+
TEST(ArgsTest, TestMultipleArgs) {
Args args;
args.SetCommandString("this has multiple args");
@@ -214,3 +242,43 @@ TEST(ArgsTest, EscapeLLDBCommandArgument) {
EXPECT_EQ("quux\t", Args::EscapeLLDBCommandArgument(quux, '`'));
EXPECT_EQ("quux\t", Args::EscapeLLDBCommandArgument(quux, '"'));
}
+
+TEST(ArgsTest, ReplaceArgumentAtIndexShort) {
+ Args args;
+ args.SetCommandString("foo ba b");
+ args.ReplaceArgumentAtIndex(0, "f");
+ EXPECT_EQ(3u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(0), "f");
+}
+
+TEST(ArgsTest, ReplaceArgumentAtIndexEqual) {
+ Args args;
+ args.SetCommandString("foo ba b");
+ args.ReplaceArgumentAtIndex(0, "bar");
+ EXPECT_EQ(3u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(0), "bar");
+}
+
+TEST(ArgsTest, ReplaceArgumentAtIndexLonger) {
+ Args args;
+ args.SetCommandString("foo ba b");
+ args.ReplaceArgumentAtIndex(0, "baar");
+ EXPECT_EQ(3u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(0), "baar");
+}
+
+TEST(ArgsTest, ReplaceArgumentAtIndexOutOfRange) {
+ Args args;
+ args.SetCommandString("foo ba b");
+ args.ReplaceArgumentAtIndex(3, "baar");
+ EXPECT_EQ(3u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(2), "b");
+}
+
+TEST(ArgsTest, ReplaceArgumentAtIndexFarOutOfRange) {
+ Args args;
+ args.SetCommandString("foo ba b");
+ args.ReplaceArgumentAtIndex(4, "baar");
+ EXPECT_EQ(3u, args.GetArgumentCount());
+ EXPECT_STREQ(args.GetArgumentAtIndex(2), "b");
+}
OpenPOWER on IntegriCloud