diff options
| author | Raphael Isemann <teemperor@gmail.com> | 2019-09-06 08:39:53 +0000 |
|---|---|---|
| committer | Raphael Isemann <teemperor@gmail.com> | 2019-09-06 08:39:53 +0000 |
| commit | 0d50c4e060ffea2edcb08b94a6ff7694275e112b (patch) | |
| tree | de6bb971f758421f33b04c70ff28ab1ab12b6d1c | |
| parent | 312409e464cd0e959e8ef8061144b2e8a4f02ab2 (diff) | |
| download | bcm5719-llvm-0d50c4e060ffea2edcb08b94a6ff7694275e112b.tar.gz bcm5719-llvm-0d50c4e060ffea2edcb08b94a6ff7694275e112b.zip | |
[lldb][NFC] Extend ArgsTest
llvm-svn: 371180
| -rw-r--r-- | lldb/unittests/Utility/ArgsTest.cpp | 68 |
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"); +} |

