@@ -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
@@ -1260,6 +1265,45 @@ class TestCmdlineParser : public TestFixture {
12601265 ASSERT_EQUALS (" cppcheck: error: unrecognized command line option: \" --clang-foo\" .\n " , GET_REDIRECT_OUTPUT);
12611266 }
12621267
1268+ void valueFlowMaxIterations () {
1269+ REDIRECT;
1270+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=0" };
1271+ settings.valueFlowMaxIterations = -1 ;
1272+ ASSERT (defParser.parseFromArgs (2 , argv));
1273+ ASSERT_EQUALS (0 , settings.valueFlowMaxIterations );
1274+ ASSERT_EQUALS (" " , GET_REDIRECT_OUTPUT);
1275+ }
1276+
1277+ void valueFlowMaxIterations2 () {
1278+ REDIRECT;
1279+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=11" };
1280+ settings.valueFlowMaxIterations = -1 ;
1281+ ASSERT (defParser.parseFromArgs (2 , argv));
1282+ ASSERT_EQUALS (11 , settings.valueFlowMaxIterations );
1283+ ASSERT_EQUALS (" " , GET_REDIRECT_OUTPUT);
1284+ }
1285+
1286+ void valueFlowMaxIterationsInvalid () {
1287+ REDIRECT;
1288+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations" };
1289+ ASSERT (!defParser.parseFromArgs (2 , argv));
1290+ ASSERT_EQUALS (" cppcheck: error: unrecognized command line option: \" --valueflow-max-iterations\" .\n " , GET_REDIRECT_OUTPUT);
1291+ }
1292+
1293+ void valueFlowMaxIterationsInvalid2 () {
1294+ REDIRECT;
1295+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=seven" };
1296+ ASSERT (!defParser.parseFromArgs (2 , argv));
1297+ ASSERT_EQUALS (" cppcheck: error: argument to '--valueflow-max-iteration' is invalid.\n " , GET_REDIRECT_OUTPUT);
1298+ }
1299+
1300+ void valueFlowMaxIterationsInvalid3 () {
1301+ REDIRECT;
1302+ const char * const argv[] = {" cppcheck" , " --valueflow-max-iterations=-1" };
1303+ ASSERT (!defParser.parseFromArgs (2 , argv));
1304+ ASSERT_EQUALS (" cppcheck: error: argument to '--valueflow-max-iteration' needs to be at least 0.\n " , GET_REDIRECT_OUTPUT);
1305+ }
1306+
12631307 /*
12641308 void ignorepaths1() {
12651309 REDIRECT;
0 commit comments