Skip to content

Conversation

@SpacePlushy
Copy link

Summary

Fixes #5183

The print_suite_footer function was hardcoding 'PASSED' for any non-error test suite status, causing SKIPPED test suites to incorrectly display as PASSED in the test footer.

Changes

Modified platformio/test/cli.py to use the actual test_suite.status.name with appropriate color coding via status.to_ansi_color().

Before:

click.style(test_suite.status.name, fg="red", bold=True)
if is_error
else click.style("PASSED", fg="green", bold=True)  # ← Hardcoded!

After:

status_color = "red" if is_error else test_suite.status.to_ansi_color()
click.style(test_suite.status.name, fg=status_color, bold=True)

Testing

Verified the fix correctly displays all status types:

  • ✅ PASSED (green) - when all tests pass
  • ✅ FAILED (red) - when tests fail
  • ✅ ERRORED (red) - when tests error
  • ✅ SKIPPED (yellow) - when tests are skipped

Reproduction

Created test suites with different statuses and verified footer output matches actual test execution results.

Before fix: Empty test suite showed [PASSED] in footer
After fix: Empty test suite correctly shows [SKIPPED] in footer

Fixes platformio#5237

When using '-U MACRO' (with space) in build_flags, SCons' ParseFlags()
splits it into two separate items in CCFLAGS: ['-U', 'MACRO']. The
previous code only captured '-U' and attempted undef[2:] which resulted
in an empty string.

This fix iterates through CCFLAGS with an index to detect standalone
'-U' flags and pairs them with the following macro name. Both formats
are now supported:
- '-UMACRO' (no space) - already working
- '-U MACRO' (with space) - now fixed

The solution is similar to how SCons handles '-D' flags with spaces.
Fixes platformio#5183

The print_suite_footer function was hardcoding 'PASSED' for any
non-error test suite status. This caused SKIPPED test suites to
incorrectly display as PASSED.

Changed to use the actual test_suite.status.name with appropriate
color coding via status.to_ansi_color(). Now correctly displays:
- PASSED (green) when tests pass
- FAILED (red) when tests fail
- ERRORED (red) when tests error
- SKIPPED (yellow) when tests are skipped

This ensures the footer status matches the actual test execution result.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unit test runner shows PASSED in summary when there are failing tests

1 participant