1
0
mirror of https://github.com/ThrowTheSwitch/Unity.git synced 2026-01-24 17:01:35 +01:00

3 Commits

Author SHA1 Message Date
Mark VanderVoord
08d09f5ed6 fail the test for output formatting issues 2026-01-23 16:24:36 -05:00
Mark VanderVoord
b57c7e0b5c Better output validation for catching bug #807 2026-01-23 16:19:24 -05:00
Mark VanderVoord
1be9a7d4f5 cleanup of warnings 2026-01-23 14:07:04 -05:00
6 changed files with 42 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
# Unity Test ![CI][] # Unity Test ![CI][]
__Copyright (c) 2007 - 2024 Unity Project by Mike Karlesky, Mark VanderVoord, and Greg Williams__ __Copyright (c) 2007 - 2026 Unity Project by Mike Karlesky, Mark VanderVoord, and Greg Williams__
Welcome to the Unity Test Project, one of the main projects of ThrowTheSwitch.org. Welcome to the Unity Test Project, one of the main projects of ThrowTheSwitch.org.
Unity Test is a unit testing framework built for C, with a focus on working with embedded toolchains. Unity Test is a unit testing framework built for C, with a focus on working with embedded toolchains.

View File

@@ -239,17 +239,15 @@ class UnityTestRunnerGenerator
if @options[:use_param_tests] if @options[:use_param_tests]
idx = 0 idx = 0
tests.each do |test| tests.each do |test|
if (test[:args].nil? || test[:args].empty?) if test[:args].nil? || test[:args].empty?
idx += 1 idx += 1
else else
test[:args].each do |args| test[:args].each { idx += 1 }
idx += 1
end
end end
end end
return idx idx
else else
return tests.size tests.size
end end
end end

0
auto/unity_test_summary.rb Normal file → Executable file
View File

View File

@@ -868,6 +868,8 @@ void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
const UNITY_DISPLAY_STYLE_T style, const UNITY_DISPLAY_STYLE_T style,
const UNITY_FLAGS_T flags) const UNITY_FLAGS_T flags)
{ {
UNITY_INT expect_val = 0;
UNITY_INT actual_val = 0;
UNITY_UINT32 elements = num_elements; UNITY_UINT32 elements = num_elements;
unsigned int length = style & 0xF; unsigned int length = style & 0xF;
unsigned int increment = 0; unsigned int increment = 0;
@@ -895,9 +897,6 @@ void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
while ((elements > 0) && (elements--)) while ((elements > 0) && (elements--))
{ {
UNITY_INT expect_val;
UNITY_INT actual_val;
switch (length) switch (length)
{ {
case 1: case 1:

View File

@@ -528,6 +528,10 @@ typedef enum
#endif #endif
#endif #endif
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpadded"
#endif
struct UNITY_STORAGE_T struct UNITY_STORAGE_T
{ {
const char* TestFile; const char* TestFile;
@@ -556,6 +560,9 @@ struct UNITY_STORAGE_T
jmp_buf AbortFrame; jmp_buf AbortFrame;
#endif #endif
}; };
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic pop
#endif
extern struct UNITY_STORAGE_T Unity; extern struct UNITY_STORAGE_T Unity;
@@ -857,6 +864,7 @@ extern const char UnityStrErrFloat[];
extern const char UnityStrErrDouble[]; extern const char UnityStrErrDouble[];
extern const char UnityStrErr64[]; extern const char UnityStrErr64[];
extern const char UnityStrErrShorthand[]; extern const char UnityStrErrShorthand[];
extern const char UnityStrErrDetailStack[];
/*------------------------------------------------------- /*-------------------------------------------------------
* Test Running Macros * Test Running Macros

View File

@@ -293,8 +293,34 @@ module RakefileHelpers
# Link the test executable # Link the test executable
link_it(test_base, obj_list) link_it(test_base, obj_list)
# Execute unit test and generate results file # Execute unit test
output = runtest(test_base) output = runtest(test_base)
# Verify outputs seem to have happened
failures = 0
output = output.each_line.map do |line|
if line =~ /Element.*Expected.*Was/ && !(line =~ /Element \d+ Expected \S+ Was \S+/)
failures += 1
line + " [[[[ OUTPUT FAILED TO PRINT CORRECTLY ]]]]"
else
line
end
end.join
# Update the final test summary
if failures > 0
output.sub!(/^(\d+) Tests (\d+) Failures (\d+) Ignored/) do
tests = $1
failures = $2.to_i + failures
ignored = $3
"#{tests} Tests #{failures} Failures #{ignored} Ignored"
end
output.sub!(/OK$/,"FAILED")
report output
raise "Command failed. (#{failures.to_s} Output Formatting Issues)"
end
# Generate results file
save_test_results(test_base, output) save_test_results(test_base, output)
end end
end end