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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
486
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- main test file for OptionParser
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2015 David Demelier <markand@malikania.fr>
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <gtest/gtest.h>
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <options.h>
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 /* --------------------------------------------------------
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 * Short options
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 * -------------------------------------------------------- */
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 TEST(Short, simpleNoArg)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 TEST(Short, simpleArg)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 TEST(Short, spacedArg)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
80
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 TEST(Short, compacted)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
100
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 TEST(Short, compactedArg)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
120
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 /* --------------------------------------------------------
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 * Long options
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 * -------------------------------------------------------- */
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
124
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 TEST(Long, simple)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 TEST(Long, simpleArg)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
159
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 /* --------------------------------------------------------
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 * Errors
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 * -------------------------------------------------------- */
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
163
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 TEST(Errors, stop)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
181
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 TEST(Errors, missingShortArg)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
197
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 TEST(Errors, missingShortArg2)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
214
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 TEST(Errors, missingLongArg)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
230
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 TEST(Errors, invalidOption)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
245 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
246
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 TEST(Errors, invalidOption2)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
261 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
262
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 TEST(Errors, invalidOption3)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
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
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
277 }
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
278
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 int main(int argc, char **argv)
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 {
548
f48bb09bccc7 Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
281 testing::InitGoogleTest(&argc, argv);
486
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
282
548
f48bb09bccc7 Misc: huge cleanup, switch to spaces
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
283 return RUN_ALL_TESTS();
486
7ee8da32da98 Unify all in modules/
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 }