diff --git a/CMakeLists.txt b/CMakeLists.txt index 018dee4..cee40d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,9 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +# TODO: Remove this when upgrading to a newer version of backward-cpp (newer than v1.6) +set(CMAKE_POLICY_VERSION_MINIMUM 3.14 CACHE STRING "" FORCE) + if(MSVC) # Ensure debug symbols are generated and linked add_compile_options(/Zi) diff --git a/README.md b/README.md index f4093df..4e0f1b0 100644 --- a/README.md +++ b/README.md @@ -56,11 +56,11 @@ That's it! Run your tests and see the enhanced output. ## Features -- 🎯 **Grid Visualization** - See all tests progress in real-time -- πŸ›‘οΈ **Crash Handling** - Get stack traces when tests crash -- 🎨 **Color Support** - Automatic terminal detection -- πŸ” **Test Filtering** - Run specific tests or suites -- πŸ“¦ **Zero Config** - Works out of the box with Google Test +- **Grid Visualization** - See all tests progress in real-time +- **Crash Handling** - Get stack traces when tests crash +- **Color Support** - Automatic terminal detection +- **Test Filtering** - Run specific tests or suites +- **Zero Config** - Works out of the box with Google Test ## Examples diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 3007b02..d113338 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -7,22 +7,22 @@ testcoe enhances Google Test by intercepting test events and providing visual fe ## Component Architecture ``` -β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -β”‚ Test Application β”‚ -β”‚ (Your Google Tests) β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - β”‚ -β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -β”‚ testcoe β”‚ -β”‚ (Main Interface & API) β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ - β”‚ - β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” - β”‚ β”‚ β”‚ -β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” -β”‚ GridListener β”‚ β”‚SignalHandlerβ”‚ β”‚TerminalUtilsβ”‚ -β”‚ (Visual Grid) β”‚ β”‚ (Crashes) β”‚ β”‚ (Terminal) β”‚ -β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + β”‚ Test Application β”‚ + β”‚ (Your Google Tests) β”‚ + β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ + β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + β”‚ testcoe β”‚ + β”‚ (Main Interface & API) β”‚ + β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ + β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”‚β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + β”‚ β”‚ β”‚ + β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” + β”‚ GridListener β”‚ β”‚SignalHandlerβ”‚ β”‚TerminalUtilsβ”‚ + β”‚ (Visual Grid) β”‚ β”‚ (Crashes) β”‚ β”‚ (Terminal) β”‚ + β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## Core Components @@ -90,7 +90,7 @@ testcoe enhances Google Test by intercepting test events and providing visual fe - [**backward-cpp**](https://github.com/bombela/backward-cpp) (v1.6) - Stack trace generation ### Platform Dependencies -- **Windows**: DbgHelp.dll (for symbol resolution) +- **Windows**: dbghelp, psapi and imagehlp - **Unix/Linux**: Standard POSIX signal handling - **macOS**: Standard POSIX signal handling diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 6c560ba..288d830 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -61,7 +61,6 @@ The CI runs the following checks: ## Making Changes ### Code Style -- Use 4 spaces for indentation - Follow existing naming conventions - Keep lines under 120 characters - Add comments for complex logic @@ -74,29 +73,17 @@ The CI runs the following checks: ### Pull Request Process 1. Fork the repository -2. Create a feature branch (`git checkout -b feature/amazing-feature`) +2. Create a feature branch 3. Make your changes 4. Run tests locally 5. Commit with clear messages -6. Push to your fork (`git push origin feature/amazing-feature`) +6. Push to your fork 7. Open a Pull Request from your fork to the main repository ### Commit Messages -- Use present tense ("Add feature" not "Added feature") -- Keep first line under 50 characters -- Reference issues if applicable - -## Platform-Specific Considerations - -### Windows -- Test with both MSVC and MinGW -- Ensure DbgHelp.dll linking works correctly -- Verify SEH handling functions properly - -### Linux/macOS -- Test signal handlers work correctly -- Verify ANSI color detection -- Check terminal clearing functions +- Use prefix for PR title `[Subject]: ` +- PR description should describe the major changes in bullet-points +- Sqaushed commit title should be the PR title, and the message should be PR description ## Adding New Features @@ -107,20 +94,13 @@ When adding features: 4. Add tests covering the new functionality 5. Update documentation -## Debugging Tips - -### Debugging Grid Display -- Set breakpoints in `GridListener::printGrid()` -- Check stream redirection in `OnTestStart/End` +## Questions? -### Debugging Crashes -- Test signal handlers with example crash tests -- Verify backward-cpp integration -- Check platform-specific code paths +Feel free to reach out at nircoe@gmail.com -## Questions? +I'm here to help make contributing to logcoe as smooth as possible! -Feel free to open an issue for: +Please open an issue for: - Bug reports - Feature requests - Questions about the codebase diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 1dfa15d..420dc81 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -17,21 +17,11 @@ - ⏳ Customizable grid layout and colors - ⏳ JSON/XML test report generation - ⏳ Test execution time tracking and reporting -- ⏳ Parallel test execution visualization -- ⏳ Interactive test selection mode -- ⏳ Test history and trend analysis -- ⏳ Integration with popular IDEs -- ⏳ Support for Google Test's sharding feature -- ⏳ Custom test status indicators -- ⏳ Test dependency visualization -- ⏳ Performance profiling integration -- ⏳ Remote test execution monitoring -- ⏳ Test coverage visualization -- ⏳ Support for other test frameworks ## Feature Requests Have an idea for testcoe? Please open an issue on GitHub with the "enhancement" label. +And of course, feel free to reach out at nircoe@gmail.com ## Versioning