diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb index 0f751cbfba95e097946c2e1a663ecffd1ecf0cea..1901d4f8ab3bf4b9c651d3d151eff2952b32692f 100644 --- a/auto/generate_test_runner.rb +++ b/auto/generate_test_runner.rb @@ -254,6 +254,7 @@ class UnityTestRunnerGenerator output.puts(" Unity.CurrentTestLineNumber = TestLineNum; \\") output.puts(" Unity.NumberOfTests++; \\") output.puts(" CMock_Init(); \\") unless (used_mocks.empty?) + output.puts(" UNITY_CLR_DETAILS(); \\") unless (used_mocks.empty?) output.puts(" if (TEST_PROTECT()) \\") output.puts(" { \\") output.puts(" CEXCEPTION_T e; \\") if cexception diff --git a/src/unity.c b/src/unity.c index 6996b6d057016988b51d6738d826c3dfd3843ae8..08db2a88b99c172c0e8fa492284490ff6d0cc68c 100644 --- a/src/unity.c +++ b/src/unity.c @@ -42,6 +42,8 @@ const char UnityStrBreaker[] = "-----------------------"; const char UnityStrResultsTests[] = " Tests "; const char UnityStrResultsFailures[] = " Failures "; const char UnityStrResultsIgnored[] = " Ignored "; +const char UnityStrDetail1Name[] = UNITY_DETAIL1_NAME " "; +const char UnityStrDetail2Name[] = " " UNITY_DETAIL2_NAME " "; #ifdef UNITY_FLOAT_NEEDS_ZERO // Dividing by these constants produces +/- infinity. @@ -368,13 +370,14 @@ static void UnityAddMsgIfSpecified(const char* msg) #ifndef UNITY_EXCLUDE_DETAILS if (Unity.CurrentDetail1) { + UnityPrint(UnityStrDetail1Name); UnityPrint(Unity.CurrentDetail1); - UnityPrint(UnityStrSpacer); if (Unity.CurrentDetail2) { + UnityPrint(UnityStrDetail2Name); UnityPrint(Unity.CurrentDetail2); - UnityPrint(UnityStrSpacer); } + UnityPrint(UnityStrSpacer); } #endif UnityPrint(msg); diff --git a/src/unity_internals.h b/src/unity_internals.h index 5eb4e1ca01bec84820f57c4ef41b24509dc2634d..eb9ad02b129a2fb9adca43185683106686adda8e 100644 --- a/src/unity_internals.h +++ b/src/unity_internals.h @@ -423,14 +423,26 @@ int UnityEnd(void); void UnityConcludeTest(void); void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum); -#ifndef UNITY_EXCLUDE_DETAILS -#define UNITY_CLR_DETAILS() { Unity.CurrentDetail1 = 0; Unity.CurrentDetail2 = 0; } -#define UNITY_SET_DETAIL(d1) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = 0; } -#define UNITY_SET_DETAILS(d1,d2) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = d2; } -#else +//------------------------------------------------------- +// Details Support +//------------------------------------------------------- + +#ifdef UNITY_EXCLUDE_DETAILS #define UNITY_CLR_DETAILS() #define UNITY_SET_DETAIL(d1) #define UNITY_SET_DETAILS(d1,d2) +#else +#define UNITY_CLR_DETAILS() { Unity.CurrentDetail1 = 0; Unity.CurrentDetail2 = 0; } +#define UNITY_SET_DETAIL(d1) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = 0; } +#define UNITY_SET_DETAILS(d1,d2) { Unity.CurrentDetail1 = d1; Unity.CurrentDetail2 = d2; } + +#ifndef UNITY_DETAIL1_NAME +#define UNITY_DETAIL1_NAME "Function" +#endif + +#ifndef UNITY_DETAIL2_NAME +#define UNITY_DETAIL2_NAME "Argument" +#endif #endif //------------------------------------------------------- @@ -569,9 +581,9 @@ extern const char UnityStrErr64[]; #ifdef __STDC_VERSION__ #if __STDC_VERSION__ >= 199901L #define RUN_TEST(...) UnityDefaultTestRun(RUN_TEST_FIRST(__VA_ARGS__), RUN_TEST_SECOND(__VA_ARGS__)) -#define RUN_TEST_FIRST(...) RUN_TEST_FIRST_HELPER(##__VA_ARGS__, throwaway) +#define RUN_TEST_FIRST(...) RUN_TEST_FIRST_HELPER(__VA_ARGS__, throwaway) #define RUN_TEST_FIRST_HELPER(first, ...) (first), #first -#define RUN_TEST_SECOND(...) RUN_TEST_SECOND_HELPER(##__VA_ARGS__, __LINE__, throwaway) +#define RUN_TEST_SECOND(...) RUN_TEST_SECOND_HELPER(__VA_ARGS__, __LINE__, throwaway) #define RUN_TEST_SECOND_HELPER(first, second, ...) (second) #endif #endif diff --git a/test/expectdata/testsample_mock_cmd.c b/test/expectdata/testsample_mock_cmd.c index d047b2af5c067ccbc7cfbe1c9626bb6d1ccaa8dc..5eaf2facb0558f6e28115601afe1b947e3289f7c 100644 --- a/test/expectdata/testsample_mock_cmd.c +++ b/test/expectdata/testsample_mock_cmd.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ CEXCEPTION_T e; \ diff --git a/test/expectdata/testsample_mock_def.c b/test/expectdata/testsample_mock_def.c index 3a90549040e8e6b08564ef3c5d918ed3908dab2f..b9a6544ec15d5f0bfce4e5c88a912b8af1ba0e36 100644 --- a/test/expectdata/testsample_mock_def.c +++ b/test/expectdata/testsample_mock_def.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ setUp(); \ diff --git a/test/expectdata/testsample_mock_head1.c b/test/expectdata/testsample_mock_head1.c index a3680ec7f1ec4709f4672edd224197aac3e277db..5d7e2b0f0f770096b3bd963a1025a569deb0d930 100644 --- a/test/expectdata/testsample_mock_head1.c +++ b/test/expectdata/testsample_mock_head1.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ setUp(); \ diff --git a/test/expectdata/testsample_mock_new1.c b/test/expectdata/testsample_mock_new1.c index 8dd68475992bd4a5d1929a9bd06696d385df403e..0f1e6d583cd4a62a3af7840055a68a89ecb78b3e 100644 --- a/test/expectdata/testsample_mock_new1.c +++ b/test/expectdata/testsample_mock_new1.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ CEXCEPTION_T e; \ diff --git a/test/expectdata/testsample_mock_new2.c b/test/expectdata/testsample_mock_new2.c index daeb82e4865ea04e841295c8e98c538c45a36bad..5280e6da55c3c21fa262297b95e5240064345669 100644 --- a/test/expectdata/testsample_mock_new2.c +++ b/test/expectdata/testsample_mock_new2.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ setUp(); \ diff --git a/test/expectdata/testsample_mock_param.c b/test/expectdata/testsample_mock_param.c index 0f6b05ad5a3af4101ee584e1231ea3084ee3d43f..b6b6ea81d9be6be55d92cd225bf89538977bb551 100644 --- a/test/expectdata/testsample_mock_param.c +++ b/test/expectdata/testsample_mock_param.c @@ -8,6 +8,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ setUp(); \ diff --git a/test/expectdata/testsample_mock_run1.c b/test/expectdata/testsample_mock_run1.c index 8dd68475992bd4a5d1929a9bd06696d385df403e..0f1e6d583cd4a62a3af7840055a68a89ecb78b3e 100644 --- a/test/expectdata/testsample_mock_run1.c +++ b/test/expectdata/testsample_mock_run1.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ CEXCEPTION_T e; \ diff --git a/test/expectdata/testsample_mock_run2.c b/test/expectdata/testsample_mock_run2.c index daeb82e4865ea04e841295c8e98c538c45a36bad..5280e6da55c3c21fa262297b95e5240064345669 100644 --- a/test/expectdata/testsample_mock_run2.c +++ b/test/expectdata/testsample_mock_run2.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ setUp(); \ diff --git a/test/expectdata/testsample_mock_yaml.c b/test/expectdata/testsample_mock_yaml.c index b28c8f0c8fa2054341dbbc863eaf836c3dae465f..e50f228bf1d5a3cb852fe0a7fade05dfadf54662 100644 --- a/test/expectdata/testsample_mock_yaml.c +++ b/test/expectdata/testsample_mock_yaml.c @@ -7,6 +7,7 @@ Unity.CurrentTestLineNumber = TestLineNum; \ Unity.NumberOfTests++; \ CMock_Init(); \ + UNITY_CLR_DETAILS(); \ if (TEST_PROTECT()) \ { \ CEXCEPTION_T e; \