Author: teemperor Date: Fri Sep 6 01:39:53 2019 New Revision: 371180 URL: http://llvm.org/viewvc/llvm-project?rev=371180&view=rev Log: [lldb][NFC] Extend ArgsTest
Modified: lldb/trunk/unittests/Utility/ArgsTest.cpp Modified: lldb/trunk/unittests/Utility/ArgsTest.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Utility/ArgsTest.cpp?rev=371180&r1=371179&r2=371180&view=diff ============================================================================== --- lldb/trunk/unittests/Utility/ArgsTest.cpp (original) +++ lldb/trunk/unittests/Utility/ArgsTest.cpp Fri Sep 6 01:39:53 2019 @@ -37,6 +37,34 @@ TEST(ArgsTest, TestSingleArgWithQuotedSp 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"); +} _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits