@@ -153,6 +153,11 @@ class TestCmdlineParser : public TestFixture {
153153 TEST_CASE (clang);
154154 TEST_CASE (clang2);
155155 TEST_CASE (clangInvalid);
156+ TEST_CASE (valueFlowMaxIterations);
157+ TEST_CASE (valueFlowMaxIterations2);
158+ TEST_CASE (valueFlowMaxIterationsInvalid);
159+ TEST_CASE (valueFlowMaxIterationsInvalid2);
160+ TEST_CASE (valueFlowMaxIterationsInvalid3);
156161
157162 // TODO
158163 // Disabling these tests since they use relative paths to the
@@ -1278,6 +1283,45 @@ class TestCmdlineParser : public TestFixture {
12781283 ASSERT_EQUALS (" cppcheck: error: unrecognized command line option: \" --clang-foo\" .\n " , GET_REDIRECT_OUTPUT );
12791284 }
12801285
1286+ void valueFlowMaxIterations () {
1287+ REDIRECT ;
1288+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=0" };
1289+ settings.valueFlowMaxIterations = -1 ;
1290+ ASSERT (defParser.parseFromArgs (2 , argv));
1291+ ASSERT_EQUALS (0 , settings.valueFlowMaxIterations );
1292+ ASSERT_EQUALS (" " , GET_REDIRECT_OUTPUT );
1293+ }
1294+
1295+ void valueFlowMaxIterations2 () {
1296+ REDIRECT ;
1297+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=11" };
1298+ settings.valueFlowMaxIterations = -1 ;
1299+ ASSERT (defParser.parseFromArgs (2 , argv));
1300+ ASSERT_EQUALS (11 , settings.valueFlowMaxIterations );
1301+ ASSERT_EQUALS (" " , GET_REDIRECT_OUTPUT );
1302+ }
1303+
1304+ void valueFlowMaxIterationsInvalid () {
1305+ REDIRECT ;
1306+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations" };
1307+ ASSERT (!defParser.parseFromArgs (2 , argv));
1308+ ASSERT_EQUALS (" cppcheck: error: unrecognized command line option: \" --valueflow-max-iterations\" .\n " , GET_REDIRECT_OUTPUT );
1309+ }
1310+
1311+ void valueFlowMaxIterationsInvalid2 () {
1312+ REDIRECT ;
1313+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=seven" };
1314+ ASSERT (!defParser.parseFromArgs (2 , argv));
1315+ ASSERT_EQUALS (" cppcheck: error: argument to '--valueflow-max-iteration' is invalid.\n " , GET_REDIRECT_OUTPUT );
1316+ }
1317+
1318+ void valueFlowMaxIterationsInvalid3 () {
1319+ REDIRECT ;
1320+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=-1" };
1321+ ASSERT (!defParser.parseFromArgs (2 , argv));
1322+ ASSERT_EQUALS (" cppcheck: error: argument to '--valueflow-max-iteration' needs to be at least 0.\n " , GET_REDIRECT_OUTPUT );
1323+ }
1324+
12811325 /*
12821326 void ignorepaths1() {
12831327 REDIRECT;
0 commit comments