diff options
| author | Hans Wennborg <hans@hanshq.net> | 2016-04-15 00:23:30 +0000 |
|---|---|---|
| committer | Hans Wennborg <hans@hanshq.net> | 2016-04-15 00:23:30 +0000 |
| commit | 40cfde3cb8f9fd5afe50396487b45b9b5f40a567 (patch) | |
| tree | 0ab892cc2a798d05411e9318c94556af033b6c2f /llvm/unittests/Option/OptionParsingTest.cpp | |
| parent | c940f097f414204c49afc901d39b463e23e29d09 (diff) | |
| download | llvm-40cfde3cb8f9fd5afe50396487b45b9b5f40a567.zip llvm-40cfde3cb8f9fd5afe50396487b45b9b5f40a567.tar.gz llvm-40cfde3cb8f9fd5afe50396487b45b9b5f40a567.tar.bz2 | |
Option parser: class for consuming a joined arg in addition to all remaining args
llvm-svn: 266394
Diffstat (limited to 'llvm/unittests/Option/OptionParsingTest.cpp')
| -rw-r--r-- | llvm/unittests/Option/OptionParsingTest.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/unittests/Option/OptionParsingTest.cpp b/llvm/unittests/Option/OptionParsingTest.cpp index 9c136e2..b0418a7 100644 --- a/llvm/unittests/Option/OptionParsingTest.cpp +++ b/llvm/unittests/Option/OptionParsingTest.cpp @@ -202,6 +202,57 @@ TEST(Option, Slurp) { EXPECT_EQ("foo", AL.getAllArgValues(OPT_Slurp)[2]); } +TEST(Option, SlurpJoinedEmpty) { + TestOptTable T; + unsigned MAI, MAC; + + const char *MyArgs[] = { "-A", "-slurpjoined" }; + InputArgList AL = T.ParseArgs(MyArgs, MAI, MAC); + EXPECT_TRUE(AL.hasArg(OPT_A)); + EXPECT_TRUE(AL.hasArg(OPT_SlurpJoined)); + EXPECT_EQ(AL.getAllArgValues(OPT_SlurpJoined).size(), 0U); +} + +TEST(Option, SlurpJoinedOneJoined) { + TestOptTable T; + unsigned MAI, MAC; + + const char *MyArgs[] = { "-A", "-slurpjoinedfoo" }; + InputArgList AL = T.ParseArgs(MyArgs, MAI, MAC); + EXPECT_TRUE(AL.hasArg(OPT_A)); + EXPECT_TRUE(AL.hasArg(OPT_SlurpJoined)); + EXPECT_EQ(AL.getAllArgValues(OPT_SlurpJoined).size(), 1U); + EXPECT_EQ(AL.getAllArgValues(OPT_SlurpJoined)[0], "foo"); +} + +TEST(Option, SlurpJoinedAndSeparate) { + TestOptTable T; + unsigned MAI, MAC; + + const char *MyArgs[] = { "-A", "-slurpjoinedfoo", "bar", "baz" }; + InputArgList AL = T.ParseArgs(MyArgs, MAI, MAC); + EXPECT_TRUE(AL.hasArg(OPT_A)); + EXPECT_TRUE(AL.hasArg(OPT_SlurpJoined)); + EXPECT_EQ(3U, AL.getAllArgValues(OPT_SlurpJoined).size()); + EXPECT_EQ("foo", AL.getAllArgValues(OPT_SlurpJoined)[0]); + EXPECT_EQ("bar", AL.getAllArgValues(OPT_SlurpJoined)[1]); + EXPECT_EQ("baz", AL.getAllArgValues(OPT_SlurpJoined)[2]); +} + +TEST(Option, SlurpJoinedButSeparate) { + TestOptTable T; + unsigned MAI, MAC; + + const char *MyArgs[] = { "-A", "-slurpjoined", "foo", "bar", "baz" }; + InputArgList AL = T.ParseArgs(MyArgs, MAI, MAC); + EXPECT_TRUE(AL.hasArg(OPT_A)); + EXPECT_TRUE(AL.hasArg(OPT_SlurpJoined)); + EXPECT_EQ(3U, AL.getAllArgValues(OPT_SlurpJoined).size()); + EXPECT_EQ("foo", AL.getAllArgValues(OPT_SlurpJoined)[0]); + EXPECT_EQ("bar", AL.getAllArgValues(OPT_SlurpJoined)[1]); + EXPECT_EQ("baz", AL.getAllArgValues(OPT_SlurpJoined)[2]); +} + TEST(Option, FlagAliasToJoined) { TestOptTable T; unsigned MAI, MAC; |
