From 5e401afa833750fdda23070e552c4a224db9de6c Mon Sep 17 00:00:00 2001 From: James Hood Date: Mon, 4 Mar 2013 14:35:18 -0600 Subject: [PATCH] updating CLI for unity_fixture.h to handle unknown command line arguments (instead of entering an infinite loop) --- extras/fixture/src/unity_fixture.c | 3 +++ extras/fixture/test/unity_fixture_Test.c | 17 +++++++++++++++++ extras/fixture/test/unity_fixture_TestRunner.c | 1 + 3 files changed, 21 insertions(+) diff --git a/extras/fixture/src/unity_fixture.c b/extras/fixture/src/unity_fixture.c index 5dc099c..74269fb 100644 --- a/extras/fixture/src/unity_fixture.c +++ b/extras/fixture/src/unity_fixture.c @@ -351,6 +351,9 @@ int UnityGetCommandLineOptions(int argc, char* argv[]) i++; } } + } else { + // ignore unknown parameter + i++; } } return 0; diff --git a/extras/fixture/test/unity_fixture_Test.c b/extras/fixture/test/unity_fixture_Test.c index f5803b8..12f3947 100644 --- a/extras/fixture/test/unity_fixture_Test.c +++ b/extras/fixture/test/unity_fixture_Test.c @@ -255,6 +255,23 @@ TEST(UnityCommandOptions, MultipleOptionsDashRNotLastAndNoValueSpecified) TEST_ASSERT_EQUAL(2, UnityFixture.RepeatCount); } +static char* unknownCommand[] = { + "testrunner.exe", + "-v", + "-g", "groupname", + "-n", "testname", + "-r", "98", + "-z" +}; +TEST(UnityCommandOptions, UnknownCommandIsIgnored) +{ + TEST_ASSERT_EQUAL(0, UnityGetCommandLineOptions(9, unknownCommand)); + TEST_ASSERT_EQUAL(1, UnityFixture.Verbose); + STRCMP_EQUAL("groupname", UnityFixture.GroupFilter); + STRCMP_EQUAL("testname", UnityFixture.NameFilter); + TEST_ASSERT_EQUAL(98, UnityFixture.RepeatCount); +} + //------------------------------------------------------------ diff --git a/extras/fixture/test/unity_fixture_TestRunner.c b/extras/fixture/test/unity_fixture_TestRunner.c index 80fec09..6fb0602 100644 --- a/extras/fixture/test/unity_fixture_TestRunner.c +++ b/extras/fixture/test/unity_fixture_TestRunner.c @@ -30,6 +30,7 @@ TEST_GROUP_RUNNER(UnityCommandOptions) RUN_TEST_CASE(UnityCommandOptions, OptionSelectRepeatTestsSpecificCount); RUN_TEST_CASE(UnityCommandOptions, MultipleOptions); RUN_TEST_CASE(UnityCommandOptions, MultipleOptionsDashRNotLastAndNoValueSpecified); + RUN_TEST_CASE(UnityCommandOptions, UnknownCommandIsIgnored); } TEST_GROUP_RUNNER(LeakDetection)