From 94fc68942be474d125450f22774e4844260f2382 Mon Sep 17 00:00:00 2001 From: jsalling Date: Mon, 15 Feb 2016 23:58:27 -0600 Subject: [PATCH] 100% code coverage for Unity Fixture Add tests for uncovered lines --- extras/fixture/test/Makefile | 1 + extras/fixture/test/unity_fixture_Test.c | 31 +++++++++++++++++++ .../fixture/test/unity_fixture_TestRunner.c | 3 ++ extras/fixture/test/unity_output_Spy.c | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/extras/fixture/test/Makefile b/extras/fixture/test/Makefile index 14519d8..4a4bbd8 100644 --- a/extras/fixture/test/Makefile +++ b/extras/fixture/test/Makefile @@ -75,5 +75,6 @@ CFLAGS += -Wstrict-prototypes CFLAGS += -Wswitch-default CFLAGS += -Wundef CFLAGS += -Wno-error=undef # Warning only, this should not stop the build +CFLAGS += -Wunreachable-code CFLAGS += -Wunused CFLAGS += -fstrict-aliasing diff --git a/extras/fixture/test/unity_fixture_Test.c b/extras/fixture/test/unity_fixture_Test.c index 2524946..3fee98f 100644 --- a/extras/fixture/test/unity_fixture_Test.c +++ b/extras/fixture/test/unity_fixture_Test.c @@ -136,6 +136,22 @@ TEST(UnityFixture, FreeNULLSafety) free(NULL); } +TEST(UnityFixture, ConcludeTestIncrementsFailCount) +{ + _U_UINT savedFails = Unity.TestFailures; + _U_UINT savedIgnores = Unity.TestIgnores; + UnityOutputCharSpy_Enable(1); + Unity.CurrentTestFailed = 1; + UnityConcludeFixtureTest(); // Resets TestFailed for this test to pass + Unity.CurrentTestIgnored = 1; + UnityConcludeFixtureTest(); // Resets TestIgnored + UnityOutputCharSpy_Enable(0); + TEST_ASSERT_EQUAL(savedFails + 1, Unity.TestFailures); + TEST_ASSERT_EQUAL(savedIgnores + 1, Unity.TestIgnores); + Unity.TestFailures = savedFails; + Unity.TestIgnores = savedIgnores; +} + //------------------------------------------------------------ TEST_GROUP(UnityCommandOptions); @@ -276,6 +292,21 @@ TEST(UnityCommandOptions, UnknownCommandIsIgnored) TEST_ASSERT_EQUAL(98, UnityFixture.RepeatCount); } +TEST(UnityCommandOptions, GroupOrNameFilterWithoutStringFails) +{ + TEST_ASSERT_EQUAL(1, UnityGetCommandLineOptions(3, unknownCommand)); + TEST_ASSERT_EQUAL(1, UnityGetCommandLineOptions(5, unknownCommand)); + TEST_ASSERT_EQUAL(1, UnityMain(3, unknownCommand, NULL)); +} + +TEST(UnityCommandOptions, GroupFilterReallyFilters) +{ + _U_UINT saved = Unity.NumberOfTests; + TEST_ASSERT_EQUAL(0, UnityGetCommandLineOptions(4, unknownCommand)); + UnityIgnoreTest(NULL, "non-matching", NULL); + TEST_ASSERT_EQUAL(saved, Unity.NumberOfTests); +} + IGNORE_TEST(UnityCommandOptions, TestShouldBeIgnored) { TEST_FAIL_MESSAGE("This test should not run!"); diff --git a/extras/fixture/test/unity_fixture_TestRunner.c b/extras/fixture/test/unity_fixture_TestRunner.c index e0b5684..c1a78c1 100644 --- a/extras/fixture/test/unity_fixture_TestRunner.c +++ b/extras/fixture/test/unity_fixture_TestRunner.c @@ -19,6 +19,7 @@ TEST_GROUP_RUNNER(UnityFixture) RUN_TEST_CASE(UnityFixture, CallocFillsWithZero); RUN_TEST_CASE(UnityFixture, PointerSet); RUN_TEST_CASE(UnityFixture, FreeNULLSafety); + RUN_TEST_CASE(UnityFixture, ConcludeTestIncrementsFailCount); } TEST_GROUP_RUNNER(UnityCommandOptions) @@ -32,6 +33,8 @@ TEST_GROUP_RUNNER(UnityCommandOptions) RUN_TEST_CASE(UnityCommandOptions, MultipleOptions); RUN_TEST_CASE(UnityCommandOptions, MultipleOptionsDashRNotLastAndNoValueSpecified); RUN_TEST_CASE(UnityCommandOptions, UnknownCommandIsIgnored); + RUN_TEST_CASE(UnityCommandOptions, GroupOrNameFilterWithoutStringFails); + RUN_TEST_CASE(UnityCommandOptions, GroupFilterReallyFilters); RUN_TEST_CASE(UnityCommandOptions, TestShouldBeIgnored); } diff --git a/extras/fixture/test/unity_output_Spy.c b/extras/fixture/test/unity_output_Spy.c index 86d5a1c..5aa48f1 100644 --- a/extras/fixture/test/unity_output_Spy.c +++ b/extras/fixture/test/unity_output_Spy.c @@ -19,7 +19,7 @@ static int spy_enable; void UnityOutputCharSpy_Create(int s) { - size = s; + size = (s > 0) ? s : 0; count = 0; spy_enable = 0; buffer = malloc((size_t)size); -- GitLab