From ad14ccf26b083e74790c23ec1f4271daf0272f0c Mon Sep 17 00:00:00 2001 From: jsalling Date: Tue, 9 Feb 2016 14:24:00 -0600 Subject: [PATCH 1/3] Add strict compiler flags to Makefile and a 'clean' target Comment out -Wconversion for now, since the build would fail --- extras/fixture/test/Makefile | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/extras/fixture/test/Makefile b/extras/fixture/test/Makefile index 8f9a324..66fc58b 100644 --- a/extras/fixture/test/Makefile +++ b/extras/fixture/test/Makefile @@ -1,8 +1,11 @@ CC = gcc -CFLAGS += -Werror +#DEBUG = -O0 -g CFLAGS += -std=c99 CFLAGS += -pedantic -CFLAGS += -Wundef +CFLAGS += -Wall +CFLAGS += -Wextra +CFLAGS += -Werror +CFLAGS += $(DEBUG) DEFINES = -D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar SRC = ../src/unity_fixture.c \ ../../../src/unity.c \ @@ -32,7 +35,26 @@ noStdlibMalloc: ../build/ ./$(TARGET) clangEverything: - $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m64 -Weverything # || true #prevents make from failing + clang $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m64 -Weverything ../build : mkdir -p ../build + +clean: + rm -f $(TARGET) + +# These extended flags DO get included before any target build runs +CFLAGS += -Wbad-function-cast +CFLAGS += -Wcast-qual +#CFLAGS += -Wconversion +CFLAGS += -Wformat=2 +CFLAGS += -Wmissing-prototypes +CFLAGS += -Wold-style-definition +CFLAGS += -Wpointer-arith +CFLAGS += -Wshadow +CFLAGS += -Wstrict-overflow=5 +CFLAGS += -Wstrict-prototypes +CFLAGS += -Wswitch-default +CFLAGS += -Wundef +CFLAGS += -Wunused +CFLAGS += -fstrict-aliasing From 7b0f3cf986b6bdaafa456000110e70aca9680f07 Mon Sep 17 00:00:00 2001 From: jsalling Date: Wed, 17 Feb 2016 22:17:05 -0600 Subject: [PATCH 2/3] Clean up conversion warnings in Fixture Turn on -Wconversion in Makefile, fix all warnings --- extras/fixture/src/unity_fixture.c | 8 ++++---- extras/fixture/src/unity_fixture_internals.h | 2 +- extras/fixture/test/Makefile | 2 +- extras/fixture/test/unity_fixture_Test.c | 2 +- extras/fixture/test/unity_output_Spy.c | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/extras/fixture/src/unity_fixture.c b/extras/fixture/src/unity_fixture.c index 67e7b9d..90314af 100644 --- a/extras/fixture/src/unity_fixture.c +++ b/extras/fixture/src/unity_fixture.c @@ -23,9 +23,9 @@ void tearDown(void) { /*does nothing*/ } static void announceTestRun(unsigned int runNumber) { UnityPrint("Unity test run "); - UnityPrintNumber(runNumber+1); + UnityPrintNumberUnsigned(runNumber+1); UnityPrint(" of "); - UnityPrintNumber(UnityFixture.RepeatCount); + UnityPrintNumberUnsigned(UnityFixture.RepeatCount); UNITY_PRINT_EOL(); } @@ -45,7 +45,7 @@ int UnityMain(int argc, const char* argv[], void (*runAllTests)(void)) UnityEnd(); } - return Unity.TestFailures; + return (int)Unity.TestFailures; } static int selected(const char* filter, const char* name) @@ -71,7 +71,7 @@ void UnityTestRunner(unityfunction* setup, const char* printableName, const char* group, const char* name, - const char* file, int line) + const char* file, unsigned int line) { if (testSelected(name) && groupSelected(group)) { diff --git a/extras/fixture/src/unity_fixture_internals.h b/extras/fixture/src/unity_fixture_internals.h index cd27ccf..1fdbb98 100644 --- a/extras/fixture/src/unity_fixture_internals.h +++ b/extras/fixture/src/unity_fixture_internals.h @@ -23,7 +23,7 @@ void UnityTestRunner(unityfunction* setup, const char* printableName, const char* group, const char* name, - const char* file, int line); + const char* file, unsigned int line); void UnityIgnoreTest(const char* printableName, const char* group, const char* name); void UnityMalloc_StartTest(void); diff --git a/extras/fixture/test/Makefile b/extras/fixture/test/Makefile index 66fc58b..f3f7ab1 100644 --- a/extras/fixture/test/Makefile +++ b/extras/fixture/test/Makefile @@ -46,7 +46,7 @@ clean: # These extended flags DO get included before any target build runs CFLAGS += -Wbad-function-cast CFLAGS += -Wcast-qual -#CFLAGS += -Wconversion +CFLAGS += -Wconversion CFLAGS += -Wformat=2 CFLAGS += -Wmissing-prototypes CFLAGS += -Wold-style-definition diff --git a/extras/fixture/test/unity_fixture_Test.c b/extras/fixture/test/unity_fixture_Test.c index 2a16e2d..ffb5c2a 100644 --- a/extras/fixture/test/unity_fixture_Test.c +++ b/extras/fixture/test/unity_fixture_Test.c @@ -144,7 +144,7 @@ TEST(UnityFixture, FreeNULLSafety) TEST_GROUP(UnityCommandOptions); int savedVerbose; -int savedRepeat; +unsigned int savedRepeat; const char* savedName; const char* savedGroup; diff --git a/extras/fixture/test/unity_output_Spy.c b/extras/fixture/test/unity_output_Spy.c index 36bcf37..97c9523 100644 --- a/extras/fixture/test/unity_output_Spy.c +++ b/extras/fixture/test/unity_output_Spy.c @@ -22,7 +22,7 @@ void UnityOutputCharSpy_Create(int s) size = s; count = 0; spy_enable = 0; - buffer = malloc(size); + buffer = malloc((size_t)size); TEST_ASSERT_NOT_NULL_MESSAGE(buffer, "Internal malloc failed in Spy Create():" __FILE__); memset(buffer, 0, size); } @@ -38,7 +38,7 @@ int UnityOutputCharSpy_OutputChar(int c) if (spy_enable) { if (count < (size-1)) - buffer[count++] = c; + buffer[count++] = (char)c; } else { From 2107e7060bc9097c0819514ede1bb6214c39d59d Mon Sep 17 00:00:00 2001 From: jsalling Date: Wed, 17 Feb 2016 22:20:56 -0600 Subject: [PATCH 3/3] Variables used in Fixture tests should be static Gets rid of warnings about extern with clang's -Weverything --- extras/fixture/test/unity_fixture_Test.c | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/extras/fixture/test/unity_fixture_Test.c b/extras/fixture/test/unity_fixture_Test.c index ffb5c2a..f94c0f6 100644 --- a/extras/fixture/test/unity_fixture_Test.c +++ b/extras/fixture/test/unity_fixture_Test.c @@ -22,14 +22,13 @@ TEST_TEAR_DOWN(UnityFixture) { } -int my_int; -int* pointer1 = 0; -int* pointer2 = (int*)2; -int* pointer3 = (int*)3; -int int1; -int int2; -int int3; -int int4; +static int* pointer1 = 0; +static int* pointer2 = (int*)2; +static int* pointer3 = (int*)3; +static int int1; +static int int2; +static int int3; +static int int4; TEST(UnityFixture, PointerSetting) { @@ -112,8 +111,8 @@ TEST(UnityFixture, CallocFillsWithZero) free(m); } -char *p1; -char *p2; +static char *p1; +static char *p2; TEST(UnityFixture, PointerSet) { @@ -143,10 +142,10 @@ TEST(UnityFixture, FreeNULLSafety) TEST_GROUP(UnityCommandOptions); -int savedVerbose; -unsigned int savedRepeat; -const char* savedName; -const char* savedGroup; +static int savedVerbose; +static unsigned int savedRepeat; +static const char* savedName; +static const char* savedGroup; TEST_SETUP(UnityCommandOptions) {