Mercurial > code
annotate modules/options/test/main.cpp @ 548:f48bb09bccc7
Misc: huge cleanup, switch to spaces
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 15 Jun 2016 13:13:26 +0200 |
parents | 7ee8da32da98 |
children | 2d1a04e8240a |
rev | line source |
---|---|
486 | 1 /* |
2 * main.cpp -- main test file for OptionParser | |
3 * | |
4 * Copyright (c) 2013-2015 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
19 #include <gtest/gtest.h> | |
20 | |
21 #include <options.h> | |
22 | |
23 /* -------------------------------------------------------- | |
24 * Short options | |
25 * -------------------------------------------------------- */ | |
26 | |
27 TEST(Short, simpleNoArg) | |
28 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
29 std::vector<std::string> args{"-a", "-b"}; |
486 | 30 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
31 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
32 { "-a", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
33 { "-b", false } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
34 }; |
486 | 35 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
36 option::Result pack = option::read(args, options); |
486 | 37 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
38 ASSERT_EQ(2U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
39 ASSERT_EQ(0U, args.size()); |
486 | 40 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
41 ASSERT_TRUE(pack.count("-a") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
42 ASSERT_TRUE(pack.count("-b") != 0); |
486 | 43 } |
44 | |
45 TEST(Short, simpleArg) | |
46 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
47 std::vector<std::string> args{"-v", "-cfoo.conf"}; |
486 | 48 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
49 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
50 { "-v", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
51 { "-c", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
52 }; |
486 | 53 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
54 option::Result pack = option::read(args, options); |
486 | 55 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
56 ASSERT_EQ(2U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
57 ASSERT_EQ(0U, args.size()); |
486 | 58 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
59 ASSERT_TRUE(pack.count("-v") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
60 ASSERT_EQ("foo.conf", pack.find("-c")->second); |
486 | 61 } |
62 | |
63 TEST(Short, spacedArg) | |
64 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
65 std::vector<std::string> args{"-v", "-c", "foo.conf"}; |
486 | 66 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
67 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
68 { "-v", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
69 { "-c", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
70 }; |
486 | 71 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
72 option::Result pack = option::read(args, options); |
486 | 73 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
74 ASSERT_EQ(2U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
75 ASSERT_EQ(0U, args.size()); |
486 | 76 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
77 ASSERT_TRUE(pack.count("-v") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
78 ASSERT_EQ("foo.conf", pack.find("-c")->second); |
486 | 79 } |
80 | |
81 TEST(Short, compacted) | |
82 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
83 std::vector<std::string> args{"-abc"}; |
486 | 84 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
85 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
86 { "-a", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
87 { "-b", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
88 { "-c", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
89 }; |
486 | 90 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
91 option::Result pack = option::read(args, options); |
486 | 92 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
93 ASSERT_EQ(3U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
94 ASSERT_EQ(0U, args.size()); |
486 | 95 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
96 ASSERT_TRUE(pack.count("-a") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
97 ASSERT_TRUE(pack.count("-b") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
98 ASSERT_TRUE(pack.count("-c") != 0); |
486 | 99 } |
100 | |
101 TEST(Short, compactedArg) | |
102 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
103 std::vector<std::string> args{"-vdcfoo.conf"}; |
486 | 104 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
105 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
106 { "-v", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
107 { "-d", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
108 { "-c", true }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
109 }; |
486 | 110 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
111 option::Result pack = option::read(args, options); |
486 | 112 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
113 ASSERT_EQ(3U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
114 ASSERT_EQ(0U, args.size()); |
486 | 115 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
116 ASSERT_TRUE(pack.count("-v") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
117 ASSERT_TRUE(pack.count("-d") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
118 ASSERT_EQ("foo.conf", pack.find("-c")->second); |
486 | 119 } |
120 | |
121 /* -------------------------------------------------------- | |
122 * Long options | |
123 * -------------------------------------------------------- */ | |
124 | |
125 TEST(Long, simple) | |
126 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
127 std::vector<std::string> args{"--fullscreen"}; |
486 | 128 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
129 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
130 { "--verbose", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
131 { "--fullscreen", false } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
132 }; |
486 | 133 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
134 option::Result pack = option::read(args, options); |
486 | 135 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
136 ASSERT_EQ(1U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
137 ASSERT_EQ(0U, args.size()); |
486 | 138 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
139 ASSERT_TRUE(pack.count("--fullscreen") != 0); |
486 | 140 } |
141 | |
142 TEST(Long, simpleArg) | |
143 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
144 std::vector<std::string> args{"--config", "config.conf", "--level", "2"}; |
486 | 145 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
146 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
147 { "--config", true }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
148 { "--level", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
149 }; |
486 | 150 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
151 option::Result pack = option::read(args, options); |
486 | 152 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
153 ASSERT_EQ(2U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
154 ASSERT_EQ(0U, args.size()); |
486 | 155 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
156 ASSERT_EQ("config.conf", pack.find("--config")->second); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
157 ASSERT_EQ("2", pack.find("--level")->second); |
486 | 158 } |
159 | |
160 /* -------------------------------------------------------- | |
161 * Errors | |
162 * -------------------------------------------------------- */ | |
163 | |
164 TEST(Errors, stop) | |
165 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
166 std::vector<std::string> args{"-v", "install", "-y", "irccd"}; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
167 std::vector<std::string> expected{"install", "-y", "irccd"}; |
486 | 168 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
169 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
170 { "-v", false } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
171 }; |
486 | 172 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
173 option::Result pack = option::read(args, options); |
486 | 174 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
175 ASSERT_EQ(1U, pack.size()); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
176 ASSERT_EQ(3U, args.size()); |
486 | 177 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
178 ASSERT_TRUE(pack.count("-v") != 0); |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
179 ASSERT_EQ(expected, args); |
486 | 180 } |
181 | |
182 TEST(Errors, missingShortArg) | |
183 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
184 std::vector<std::string> args{"-c"}; |
486 | 185 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
186 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
187 { "-c", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
188 }; |
486 | 189 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
190 try { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
191 option::Result pack = option::read(args, options); |
486 | 192 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
193 FAIL() << "exception expected"; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
194 } catch (const option::MissingValue &) { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
195 } |
486 | 196 } |
197 | |
198 TEST(Errors, missingShortArg2) | |
199 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
200 std::vector<std::string> args{"-vc"}; |
486 | 201 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
202 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
203 { "-v", false }, |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
204 { "-c", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
205 }; |
486 | 206 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
207 try { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
208 option::Result pack = option::read(args, options); |
486 | 209 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
210 FAIL() << "exception expected"; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
211 } catch (const option::MissingValue &) { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
212 } |
486 | 213 } |
214 | |
215 TEST(Errors, missingLongArg) | |
216 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
217 std::vector<std::string> args{"--config"}; |
486 | 218 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
219 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
220 { "--config", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
221 }; |
486 | 222 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
223 try { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
224 option::Result pack = option::read(args, options); |
486 | 225 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
226 FAIL() << "exception expected"; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
227 } catch (const option::MissingValue &) { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
228 } |
486 | 229 } |
230 | |
231 TEST(Errors, invalidOption) | |
232 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
233 std::vector<std::string> args{"-x"}; |
486 | 234 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
235 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
236 { "-v", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
237 }; |
486 | 238 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
239 try { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
240 option::Result pack = option::read(args, options); |
486 | 241 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
242 FAIL() << "exception expected"; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
243 } catch (const option::InvalidOption &) { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
244 } |
486 | 245 } |
246 | |
247 TEST(Errors, invalidOption2) | |
248 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
249 std::vector<std::string> args{"--destroy"}; |
486 | 250 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
251 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
252 { "--verbose", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
253 }; |
486 | 254 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
255 try { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
256 option::Result pack = option::read(args, options); |
486 | 257 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
258 FAIL() << "exception expected"; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
259 } catch (const option::InvalidOption &) { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
260 } |
486 | 261 } |
262 | |
263 TEST(Errors, invalidOption3) | |
264 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
265 std::vector<std::string> args{"-vx"}; |
486 | 266 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
267 option::Options options{ |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
268 { "-x", true } |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
269 }; |
486 | 270 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
271 try { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
272 option::Result pack = option::read(args, options); |
486 | 273 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
274 FAIL() << "exception expected"; |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
275 } catch (const option::InvalidOption &) { |
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
276 } |
486 | 277 } |
278 | |
279 int main(int argc, char **argv) | |
280 { | |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
281 testing::InitGoogleTest(&argc, argv); |
486 | 282 |
548
f48bb09bccc7
Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents:
486
diff
changeset
|
283 return RUN_ALL_TESTS(); |
486 | 284 } |