annotate C++/Tests/OptionParser/main.cpp @ 236:ff2db0ed78f1

* Import GoogleTest * Start testing of OptionParser
author David Demelier <markand@malikania.fr>
date Fri, 04 Jul 2014 22:16:04 +0200
parents
children 887d43215b90
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #include <gtest/gtest.h>
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
2
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #include <OptionParser.h>
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
4
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #define LENGTH(x) (sizeof (x) / sizeof (x[0]))
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
6
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 /*
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * -a hello -a ok -v -c -p test
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 */
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 TEST(OptionParser, simple)
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 {
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 OptionParser parser;
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 const char *argv[] = { "-a", "hello", "-a", "ok", "-v", "-c", "-p", "test" };
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
14
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 parser.add(Option("a", "attribute", Option::Argument));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 parser.add(Option("v", "verbose"));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 parser.add(Option("c", "check"));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 parser.add(Option("p", "plugin", Option::Argument));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 auto result = parser.parse(LENGTH(argv), argv, OptionParser::Strict);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 auto begin = result.cbegin();
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 ASSERT_EQ(5, result.count());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 ASSERT_EQ(8, result.total());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 // -a hello
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 ASSERT_EQ("a", begin->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 ASSERT_EQ("hello", begin->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 // -a ok
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 std::advance(begin, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 ASSERT_EQ("a", begin->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 ASSERT_EQ("ok", begin->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 // -v
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 std::advance(begin, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 ASSERT_EQ("v", begin->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 ASSERT_EQ("", begin->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 // -c
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 std::advance(begin, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 ASSERT_EQ("c", begin->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 ASSERT_EQ("", begin->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 // -p test
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 std::advance(begin, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 ASSERT_EQ("p", begin->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 ASSERT_EQ("test", begin->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 }
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
50
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 /*
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 * -v install -y -x -p package
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 *
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 * Split as two kind of groups,
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 * -v are general options
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 * -y, -x -p are dedicated to install
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 */
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 TEST(OptionParser, group)
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 {
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 OptionParser parser;
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 const char *argv[] = { "-v", "install", "-y", "-x", "-p", "irccd" };
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 parser.add(Option("v", "verbose"));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 parser.add(Option("y", "auto answer yes"));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 parser.add(Option("x", "use regex"));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 parser.add(Option("p", "package", Option::Argument));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 /*
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 * First part: -v install
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 */
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 auto result = parser.parse(LENGTH(argv), argv, OptionParser::BreakNonOption);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 auto option = result.cbegin();
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 ASSERT_EQ(1, result.count());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 ASSERT_EQ(1, result.total());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 // "-v"
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 ASSERT_EQ("v", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
81
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 /*
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 * Second part: -y -x package
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 */
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
85
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 result = parser.parse(LENGTH(argv) - 2, argv + 2, OptionParser::Strict);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 option = result.cbegin();
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 ASSERT_EQ(3, result.count());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 ASSERT_EQ(4, result.total());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
91
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 // -y
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 ASSERT_EQ("y", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
95
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 // -x
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 ASSERT_EQ("x", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
100
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 // -p irccd
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 ASSERT_EQ("p", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 ASSERT_EQ("irccd", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 }
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
106
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 /*
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 * Compact
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 *
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 * -abc -> -a -b -c
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 */
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 TEST(OptionParser, compact)
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 {
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 OptionParser parser;
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 const char *argv[] = { "-abc" };
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
116
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 parser.add(Option("a", ""));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 parser.add(Option("b", ""));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 parser.add(Option("c", ""));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 auto result = parser.parse(LENGTH(argv), argv);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 auto option = result.cbegin();
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 ASSERT_EQ(3, result.count());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 ASSERT_EQ(3, result.total());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 // -a
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 ASSERT_EQ("a", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
130
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 // -b
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 ASSERT_EQ("b", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
135
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 // -c
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 ASSERT_EQ("c", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 }
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 /*
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 * -o readonly -o loop -v -v -f true -f false
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 */
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 TEST(OptionParser, numbered)
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 {
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 OptionParser parser;
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 const char *argv[] = { "-o", "readonly", "-o", "loop", "-v", "-v", "-f", "true", "-f", "false" };
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
149
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 parser.add(Option("o", "option", Option::Argument));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 parser.add(Option("v", "verbose"));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 parser.add(Option("f", "fullscreen", Option::Argument, Option::Single));
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
153
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 auto result = parser.parse(LENGTH(argv), argv, OptionParser::Silent);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 auto option = result.cbegin();
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
156
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 ASSERT_EQ(6, result.count());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 ASSERT_EQ(10, result.total());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
159
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 // -o readonly
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 ASSERT_EQ("o", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 ASSERT_EQ("readonly", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
163
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 // -o loop
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 ASSERT_EQ("o", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 ASSERT_EQ("loop", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
168
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 // -v
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 ASSERT_EQ("v", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
173
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 // -v
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 ASSERT_EQ("v", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 ASSERT_EQ("", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
178
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 // -f true
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 ASSERT_EQ("f", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 ASSERT_EQ("true", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
183
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 // -f false
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 std::advance(option, 1);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 ASSERT_EQ("f", option->name());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 ASSERT_EQ("false", option->value());
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 }
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
189
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 int main(int argc, char **argv)
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 {
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 testing::InitGoogleTest(&argc, argv);
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
193
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 return RUN_ALL_TESTS();
ff2db0ed78f1 * Import GoogleTest
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 }