@@ -35,16 +35,15 @@ 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);
3938 TEST_CASE (quiet);
40- TEST_CASE (not_help);
4139 TEST_CASE (help);
4240 TEST_CASE (help_long);
4341 TEST_CASE (multiple_testcases);
4442 TEST_CASE (multiple_testcases_ignore_duplicates);
4543 TEST_CASE (invalid_switches);
4644 TEST_CASE (summary);
4745 TEST_CASE (dry_run);
46+ TEST_CASE (exclude_tests);
4847 }
4948
5049
@@ -55,6 +54,7 @@ class TestOptions : public TestFixture {
5554 { " TestClass" , {} }
5655 };
5756 ASSERT (expected == args.which_tests ());
57+ ASSERT (args.errors ().empty ());
5858 }
5959
6060
@@ -65,6 +65,7 @@ class TestOptions : public TestFixture {
6565 { " TestClass" , {" TestMethod" } }
6666 };
6767 ASSERT (expected == args.which_tests ());
68+ ASSERT (args.errors ().empty ());
6869 }
6970
7071
@@ -73,40 +74,41 @@ class TestOptions : public TestFixture {
7374 options args (getArrayLength (argv), argv);
7475 const std::map<std::string, std::set<std::string>> expected{};
7576 ASSERT (expected == args.which_tests ());
77+ ASSERT (args.errors ().empty ());
7678 }
7779
7880
79- void not_quiet () const {
80- const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -v " };
81+ void defaults () const {
82+ const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" };
8183 options args (getArrayLength (argv), argv);
8284 ASSERT_EQUALS (false , args.quiet ());
85+ ASSERT_EQUALS (false , args.help ());
86+ ASSERT_EQUALS (false , args.summary ());
87+ ASSERT_EQUALS (false , args.dry_run ());
88+ ASSERT_EQUALS (false , args.exclude_tests ());
89+ ASSERT (args.errors ().empty ());
8390 }
8491
85-
8692 void quiet () const {
8793 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -q" };
8894 options args (getArrayLength (argv), argv);
8995 ASSERT_EQUALS (true , args.quiet ());
96+ ASSERT (args.errors ().empty ());
9097 }
9198
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-
9999 void help () const {
100100 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -h" };
101101 options args (getArrayLength (argv), argv);
102102 ASSERT_EQUALS (true , args.help ());
103+ ASSERT (args.errors ().empty ());
103104 }
104105
105106
106107 void help_long () const {
107108 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " --help" };
108109 options args (getArrayLength (argv), argv);
109110 ASSERT_EQUALS (true , args.help ());
111+ ASSERT (args.errors ().empty ());
110112 }
111113
112114 void multiple_testcases () const {
@@ -116,6 +118,7 @@ class TestOptions : public TestFixture {
116118 { " TestClass" , { " TestMethod" , " AnotherTestMethod" } }
117119 };
118120 ASSERT (expected == args.which_tests ());
121+ ASSERT (args.errors ().empty ());
119122 }
120123
121124 void multiple_testcases_ignore_duplicates () const {
@@ -125,6 +128,7 @@ class TestOptions : public TestFixture {
125128 { " TestClass" , {} }
126129 };
127130 ASSERT (expected == args.which_tests ());
131+ ASSERT (args.errors ().empty ());
128132 }
129133
130134 void invalid_switches () const {
@@ -135,18 +139,32 @@ class TestOptions : public TestFixture {
135139 };
136140 ASSERT (expected == args.which_tests ());
137141 ASSERT_EQUALS (true , args.quiet ());
142+ ASSERT_EQUALS (2 , args.errors ().size ());
143+ auto it = args.errors ().cbegin ();
144+ ASSERT_EQUALS (" unknown option '-a'" , *it);
145+ ++it;
146+ ASSERT_EQUALS (" unknown option '-v'" , *it);
138147 }
139148
140149 void summary () const {
141150 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -n" };
142151 options args (getArrayLength (argv), argv);
143152 ASSERT_EQUALS (false , args.summary ());
153+ ASSERT (args.errors ().empty ());
144154 }
145155
146156 void dry_run () const {
147157 const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -d" };
148158 options args (getArrayLength (argv), argv);
149159 ASSERT_EQUALS (true , args.dry_run ());
160+ ASSERT (args.errors ().empty ());
161+ }
162+
163+ void exclude_tests () const {
164+ const char * argv[] = {" ./test_runner" , " TestClass::TestMethod" , " -x" };
165+ options args (getArrayLength (argv), argv);
166+ ASSERT_EQUALS (true , args.exclude_tests ());
167+ ASSERT (args.errors ().empty ());
150168 }
151169};
152170
0 commit comments