Skip to content

[PR #1] Add experimental AdvancedConsoleOutputRecorder skeleton framework#4

Closed
tienquocbui wants to merge 12 commits into
mainfrom
feature/advanced-console-output-recorder
Closed

[PR #1] Add experimental AdvancedConsoleOutputRecorder skeleton framework#4
tienquocbui wants to merge 12 commits into
mainfrom
feature/advanced-console-output-recorder

Conversation

@tienquocbui

@tienquocbui tienquocbui commented Aug 1, 2025

Copy link
Copy Markdown
Owner

Summary

This PR introduces the skeleton framework for an experimental AdvancedConsoleOutputRecorder, implementing the foundation for enhanced test result display capabilities. This is the first in a series of incremental PRs to build out the advanced console output functionality.

What's Included

  • Skeleton AdvancedConsoleOutputRecorder struct - Basic framework with clean API
  • Environment variable activation - Only enabled with SWT_ENABLE_EXPERIMENTAL_CONSOLE_OUTPUT=1
  • Safe fallback behavior - Delegates to standard ConsoleOutputRecorder when experimental features aren't enabled
  • Zero impact on existing functionality - No changes to default behavior

Future Roadmap

This skeleton provides the foundation for upcoming PRs:

  • PR 2: Hierarchical test result display with tree visualization
  • PR 3: Live progress indicators during test execution
  • PR 4: Summary and Failed Tests Detail Section

Testing

  • Compiles cleanly with latest main branch
  • Zero impact when environment variable not set
  • Safe fallback to standard console output recorder
  • All existing tests pass

Related Issues

Addresses feedback from Stuart Montgomery regarding:

  • Incremental PR approach for large features
  • Environment variable isolation for experimental code
  • Clean architectural foundation before adding complex features

This PR implements only the essential framework and activation mechanism. No functional changes to test output are included - those will come in subsequent PRs as the feature is built out incrementally.

tienquocbui and others added 12 commits July 7, 2025 21:30
…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
Comment thread Sources/Testing/Support/LiveUpdatingLine.swift
Comment thread Sources/Testing/CMakeLists.txt
@tienquocbui tienquocbui closed this Aug 6, 2025
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.

2 participants