|
16 | 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | */ |
18 | 18 |
|
19 | | -#include "options.h" |
20 | 19 | #include "fixture.h" |
| 20 | +#include "options.h" |
| 21 | +#include "utils.h" |
21 | 22 |
|
22 | 23 | #include <functional> |
23 | 24 | #include <set> |
@@ -50,89 +51,89 @@ class TestOptions : public TestFixture { |
50 | 51 |
|
51 | 52 | void which_test() const { |
52 | 53 | const char* argv[] = {"./test_runner", "TestClass"}; |
53 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 54 | + options args(getArrayLength(argv), argv); |
54 | 55 | ASSERT(std::set<std::string> {"TestClass"} == args.which_test()); |
55 | 56 | } |
56 | 57 |
|
57 | 58 |
|
58 | 59 | void which_test_method() const { |
59 | 60 | const char* argv[] = {"./test_runner", "TestClass::TestMethod"}; |
60 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 61 | + options args(getArrayLength(argv), argv); |
61 | 62 | ASSERT(std::set<std::string> {"TestClass::TestMethod"} == args.which_test()); |
62 | 63 | } |
63 | 64 |
|
64 | 65 |
|
65 | 66 | void no_test_method() const { |
66 | 67 | const char* argv[] = {"./test_runner"}; |
67 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 68 | + options args(getArrayLength(argv), argv); |
68 | 69 | ASSERT(std::set<std::string> {""} == args.which_test()); |
69 | 70 | } |
70 | 71 |
|
71 | 72 |
|
72 | 73 | void not_quiet() const { |
73 | 74 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "-v"}; |
74 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 75 | + options args(getArrayLength(argv), argv); |
75 | 76 | ASSERT_EQUALS(false, args.quiet()); |
76 | 77 | } |
77 | 78 |
|
78 | 79 |
|
79 | 80 | void quiet() const { |
80 | 81 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "-q"}; |
81 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 82 | + options args(getArrayLength(argv), argv); |
82 | 83 | ASSERT_EQUALS(true, args.quiet()); |
83 | 84 | } |
84 | 85 |
|
85 | 86 | void not_help() const { |
86 | 87 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "-v"}; |
87 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 88 | + options args(getArrayLength(argv), argv); |
88 | 89 | ASSERT_EQUALS(false, args.help()); |
89 | 90 | } |
90 | 91 |
|
91 | 92 |
|
92 | 93 | void help() const { |
93 | 94 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "-h"}; |
94 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 95 | + options args(getArrayLength(argv), argv); |
95 | 96 | ASSERT_EQUALS(true, args.help()); |
96 | 97 | } |
97 | 98 |
|
98 | 99 |
|
99 | 100 | void help_long() const { |
100 | 101 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "--help"}; |
101 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 102 | + options args(getArrayLength(argv), argv); |
102 | 103 | ASSERT_EQUALS(true, args.help()); |
103 | 104 | } |
104 | 105 |
|
105 | 106 | void multiple_testcases() const { |
106 | 107 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "TestClass::AnotherTestMethod"}; |
107 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 108 | + options args(getArrayLength(argv), argv); |
108 | 109 | std::set<std::string> expected {"TestClass::TestMethod", "TestClass::AnotherTestMethod"}; |
109 | 110 | ASSERT(expected == args.which_test()); |
110 | 111 | } |
111 | 112 |
|
112 | 113 | void multiple_testcases_ignore_duplicates() const { |
113 | 114 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "TestClass"}; |
114 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 115 | + options args(getArrayLength(argv), argv); |
115 | 116 | std::set<std::string> expected {"TestClass"}; |
116 | 117 | ASSERT(expected == args.which_test()); |
117 | 118 | } |
118 | 119 |
|
119 | 120 | void invalid_switches() const { |
120 | 121 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "-a", "-v", "-q"}; |
121 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 122 | + options args(getArrayLength(argv), argv); |
122 | 123 | std::set<std::string> expected {"TestClass::TestMethod"}; |
123 | 124 | ASSERT(expected == args.which_test()); |
124 | 125 | ASSERT_EQUALS(true, args.quiet()); |
125 | 126 | } |
126 | 127 |
|
127 | 128 | void summary() const { |
128 | 129 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "-n"}; |
129 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 130 | + options args(getArrayLength(argv), argv); |
130 | 131 | ASSERT_EQUALS(false, args.summary()); |
131 | 132 | } |
132 | 133 |
|
133 | 134 | void dry_run() const { |
134 | 135 | const char* argv[] = {"./test_runner", "TestClass::TestMethod", "-d"}; |
135 | | - options args(sizeof argv / sizeof argv[0], argv); |
| 136 | + options args(getArrayLength(argv), argv); |
136 | 137 | ASSERT_EQUALS(true, args.dry_run()); |
137 | 138 | } |
138 | 139 | }; |
|
0 commit comments