@@ -35,16 +35,16 @@ class TestOptions : public TestFixture {
3535 TEST_CASE (which_test);
3636 TEST_CASE (which_test_method);
3737 TEST_CASE (no_test_method);
38- TEST_CASE (not_quiet );
38+ TEST_CASE (defaults );
3939 TEST_CASE (quiet);
40- TEST_CASE (not_help);
4140 TEST_CASE (help);
4241 TEST_CASE (help_long);
4342 TEST_CASE (multiple_testcases);
4443 TEST_CASE (multiple_testcases_ignore_duplicates);
4544 TEST_CASE (invalid_switches);
4645 TEST_CASE (summary);
4746 TEST_CASE (dry_run);
47+ TEST_CASE (exclude_tests);
4848 }
4949
5050
@@ -55,6 +55,7 @@ class TestOptions : public TestFixture {
5555 { " TestClass" , {} }
5656 };
5757 ASSERT (expected == args.which_tests ());
58+ ASSERT (args.errors ().empty ());
5859 }
5960
6061
@@ -65,6 +66,7 @@ class TestOptions : public TestFixture {
6566 { " TestClass" , {" TestMethod" } }
6667 };
6768 ASSERT (expected == args.which_tests ());
69+ ASSERT (args.errors ().empty ());
6870 }
6971
7072
@@ -73,40 +75,41 @@ class TestOptions : public TestFixture {
7375 options args (getArrayLength (argv), argv);
7476 const std::map<std::string, std::set<std::string>> expected{};
7577 ASSERT (expected == args.which_tests ());
78+ ASSERT (args.errors ().empty ());
7679 }
7780
7881
79- void not_quiet () const {
80- const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -v " };
82+ void defaults () const {
83+ const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" };
8184 options args (getArrayLength (argv), argv);
8285 ASSERT_EQUALS (false , args.quiet ());
86+ ASSERT_EQUALS (false , args.help ());
87+ ASSERT_EQUALS (true , args.summary ());
88+ ASSERT_EQUALS (false , args.dry_run ());
89+ ASSERT_EQUALS (false , args.exclude_tests ());
90+ ASSERT (args.errors ().empty ());
8391 }
8492
85-
8693 void quiet () const {
8794 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -q" };
8895 options args (getArrayLength (argv), argv);
8996 ASSERT_EQUALS (true , args.quiet ());
97+ ASSERT (args.errors ().empty ());
9098 }
9199
92- void not_help () const {
93- const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -v" };
94- options args (getArrayLength (argv), argv);
95- ASSERT_EQUALS (false , args.help ());
96- }
97-
98-
99100 void help () const {
100101 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -h" };
101102 options args (getArrayLength (argv), argv);
102103 ASSERT_EQUALS (true , args.help ());
104+ ASSERT (args.errors ().empty ());
103105 }
104106
105107
106108 void help_long () const {
107109 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " --help" };
108110 options args (getArrayLength (argv), argv);
109111 ASSERT_EQUALS (true , args.help ());
112+ ASSERT (args.errors ().empty ());
110113 }
111114
112115 void multiple_testcases () const {
@@ -116,6 +119,7 @@ class TestOptions : public TestFixture {
116119 { " TestClass" , { " TestMethod" , " AnotherTestMethod" } }
117120 };
118121 ASSERT (expected == args.which_tests ());
122+ ASSERT (args.errors ().empty ());
119123 }
120124
121125 void multiple_testcases_ignore_duplicates () const {
@@ -125,6 +129,7 @@ class TestOptions : public TestFixture {
125129 { " TestClass" , {} }
126130 };
127131 ASSERT (expected == args.which_tests ());
132+ ASSERT (args.errors ().empty ());
128133 }
129134
130135 void invalid_switches () const {
@@ -135,18 +140,32 @@ class TestOptions : public TestFixture {
135140 };
136141 ASSERT (expected == args.which_tests ());
137142 ASSERT_EQUALS (true , args.quiet ());
143+ ASSERT_EQUALS (2 , args.errors ().size ());
144+ auto it = args.errors ().cbegin ();
145+ ASSERT_EQUALS (" unknown option '-a'" , *it);
146+ ++it;
147+ ASSERT_EQUALS (" unknown option '-v'" , *it);
138148 }
139149
140150 void summary () const {
141151 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -n" };
142152 options args (getArrayLength (argv), argv);
143153 ASSERT_EQUALS (false , args.summary ());
154+ ASSERT (args.errors ().empty ());
144155 }
145156
146157 void dry_run () const {
147158 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -d" };
148159 options args (getArrayLength (argv), argv);
149160 ASSERT_EQUALS (true , args.dry_run ());
161+ ASSERT (args.errors ().empty ());
162+ }
163+
164+ void exclude_tests () const {
165+ const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -x" };
166+ options args (getArrayLength (argv), argv);
167+ ASSERT_EQUALS (true , args.exclude_tests ());
168+ ASSERT (args.errors ().empty ());
150169 }
151170};
152171
0 commit comments