-
Notifications
You must be signed in to change notification settings - Fork 124
Implement hierarchical console output with comprehensive test result display #1290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ting - Implement Event.AdvancedConsoleOutputRecorder with beautiful tree structure - Add SF symbols support with colors (play.circle, checkmark.circle, x.circle, etc.) - Right-aligned timing display with 80-column fixed width - Unicode box-drawing characters for hierarchical test output - Issues displayed as sub-nodes under failed tests - Enhanced start message with test count and running status - Thread-safe parallel execution support - Color-coded final summary with status icons - Replace basic ConsoleOutputRecorder with enhanced version - Add demo test files for validation Features: ✅ Hierarchical tree structure with proper indentation ✅ SF Symbols on macOS with Unicode fallback ✅ Right-aligned timing information ✅ Color-coded status icons and output ✅ Issues as expandable sub-nodes ✅ Enhanced start/end messages ✅ Thread-safe concurrent test execution
Implementing progress bar with live update
- Add experimental AdvancedConsoleOutputRecorder activated via environment variable - Implement clean skeleton structure for incremental PR development - Fix terminal width hardcoding with 80-char safe fallback - Follow HumanReadableOutputRecorder delegation pattern - Update style guide compliance (80-char comment wrapping) - Re-enable AttachmentTests and disable slow demo test suites - Remove Foundation dependencies and signal handling - Prepare foundation for PR #1 (Skeleton), PR #2 (Hierarchy), PR #3 (Progress)
- Update to latest main branch from upstream/main - Integrate new ABI version handling and entry point improvements - Preserve AdvancedConsoleOutputRecorder skeleton implementation - Ready for first PR submission
Complete skeleton PR #1 preparation: - Clean AdvancedConsoleOutputRecorder framework - Environment variable activation integrated - Latest upstream changes merged - Ready for first PR submission
- Use upstream conditional compilation directives - Match upstream verbosity check (> .min instead of >= 0) - Simplify AdvancedConsoleOutputRecorder options for skeleton - Fix event handler ordering to match upstream pattern - Maintain zero impact on default behavior
The Environment.flag(named:) function returns Bool? but was being used directly in an if statement. Changed to explicit comparison with true to handle the optional properly.
- Change handle() to record() for consistency with other recorders - Update documentation to use proper DocC reference (Event/ConsoleOutputRecorder) - Remove unused configuration options (useHierarchicalOutput, showSuccessfulTests) - Simplify LiveUpdatingLine documentation - Remove future capability descriptions from main documentation
Since we cannot control the output stream, the LiveUpdatingLine functionality is not usable in practice and should be removed from the skeleton implementation.
- Convert from Event to ABI.EncodedEvent for internal processing - Add test storage dictionary keyed by test ID string - Handle test discovery events to populate test storage - Add ABI event processing placeholder for future enhancements - Add missing SendableMetatype protocol definition This refactor follows Stuart's guidance to prepare for future harness process separation by using ABI data types throughout.
- Remove SendableMetatype protocol (not needed, provided by Swift stdlib) - Use ABI.HighestVersion instead of CurrentVersion for forward compatibility - Remove explicit verbosity parameter (uses default from eventContext.configuration) - Fix DocC style for single parameter documentation - Refactor storage into Context struct for extensibility - Use _context.withLock instead of _testStorage for cleaner organization Ready for public PR as requested.
…nsoleOutputRecorder setup) - Resolved conflicts in Event.AdvancedConsoleOutputRecorder.swift (kept full hierarchical implementation)
- Remove ┌─ symbol for single module testing (flush left rendering) - Preserve ┌─ symbol for multiple module testing (full tree structure) - Add isSingleRoot parameter to _renderHierarchyNode
@swift-ci please test |
@swift-ci please test |
Sources/Testing/Events/Recorder/Event.AdvancedConsoleOutputRecorder.swift
Outdated
Show resolved
Hide resolved
Sources/Testing/Events/Recorder/Event.AdvancedConsoleOutputRecorder.swift
Outdated
Show resolved
Hide resolved
stmontgomery
reviewed
Sep 4, 2025
Sources/Testing/Events/Recorder/Event.AdvancedConsoleOutputRecorder.swift
Outdated
Show resolved
Hide resolved
Sources/Testing/Events/Recorder/Event.AdvancedConsoleOutputRecorder.swift
Outdated
Show resolved
Hide resolved
Sources/Testing/Events/Recorder/Event.AdvancedConsoleOutputRecorder.swift
Outdated
Show resolved
Hide resolved
8a6d3d5
to
8df34ba
Compare
grynspan
reviewed
Sep 10, 2025
Sources/Testing/Events/Recorder/Event.AdvancedConsoleOutputRecorder.swift
Outdated
Show resolved
Hide resolved
grynspan
reviewed
Sep 10, 2025
Sources/Testing/Events/Recorder/Event.AdvancedConsoleOutputRecorder.swift
Outdated
Show resolved
Hide resolved
grynspan
reviewed
Sep 10, 2025
…simplify Swift file detection logic
stmontgomery
approved these changes
Sep 19, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
command-line experience
⌨️ enhancements to the command line interface
enhancement
New feature or request
gsoc
☀️ Google Summer of Code contributions
issue-handling
Related to Issue handling within the testing library
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implement hierarchical console output with comprehensive test result display
Modifications:
x.xxs
formatChecklist: