Skip to content

Enhanced Test Coverage, GNU Radio Compatibility, and CI/CD Integration#22

Open
loic-fejoz wants to merge 3 commits intomainfrom
feat/more-test
Open

Enhanced Test Coverage, GNU Radio Compatibility, and CI/CD Integration#22
loic-fejoz wants to merge 3 commits intomainfrom
feat/more-test

Conversation

@loic-fejoz
Copy link
Copy Markdown
Owner

This PR significantly strengthens the testing foundation of fsdr-cli, ensures seamless integration with GNU Radio Companion, and adds automated code coverage reporting to our CI/CD pipeline.

Key Changes:

  1. Expanded Test Suite
  • Parser Coverage: Added 14+ unit tests to tests/csdr.rs for previously uncovered csdr commands (e.g., fmdemod, timing_recovery, audio, and various load commands).
  • End-to-End GRC Execution: Created tests/grc_run.rs to verify the behavioral correctness of flowgraphs derived from GRC definitions, including complex chains like FM demodulation and filtered AGC.
  • GRC Fidelity (Roundtrip): Created tests/grc_roundtrip.rs to ensure that saving and reloading .grc files preserves 100% of the graph structure and metadata.
  1. GNU Radio Compatibility
  • Custom Block Definitions: Created a new gnuradio/ directory containing 11 custom YAML block definitions for fsdr-cli specific blocks (e.g., dsb, weaver_usb_cf, pattern_search). This allows generated .grc files to be opened and debugged directly in GNU Radio Companion.
  • Metadata Support: Enhanced the internal GRC representation to support standard GNU Radio Options, ensuring generated files are strictly compatible with GRC 3.8/3.10.
  • Documentation: Added a "GNU Radio Integration" section to README.md with instructions on configuring $GRC_BLOCKS_PATH.
  1. CI/CD and Infrastructure
  • Code Coverage: Integrated cargo-tarpaulin into the GitHub Actions workflow to generate coverage reports.
  • Codecov Integration: Automated the upload of coverage data to Codecov and added status badges to the README.md.
  • Code Cleanup: Performed a full cargo clippy review and refactored multiple instances of non-idiomatic vector initializations to use the vec![] macro.

* More tests with `.grc` files
* GNURadio-Companion blocks's definition for easier debugging/creation
* Look at code coverage.
@codecov-commenter
Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered ☂️

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