Closed windytan closed 2 months ago
does copyright prevent having samples of very few seconds? if necessary, removing very few kHz of mono/sum should be sufficient - that should keep filter's resistance in the test. but that would require a high quality filter, not touching the RDS frequencies level or phase. i'd suggest to have an extra repository for the test data.
Currently all tests are residing on my computer, which is not ideal :). It would be good to have tests publicly in the repository. This would make it easier to contribute to the code and also pave the way for a 1.0 release.
Current tests use a purpose-made Perl framework. These are all end-to-end tests with real, recorded data. Maybe CppUtest or Gtest could be used instead, to make it accessible and maintainable. Both of these can be used for end-to-end, not just unit tests.
Copyright laws prevent publishing real radio station MPX recordings as test data.
Perhaps an audio file could legally be used if the audible part was filtered out. However, this way you're not testing the filter's resistance to audio interference.
Publishing hex and binary RDS streams is probably OK, and they're easier to manage in a repository anyway, size-wise.
Best case scenario: Github could run these automatically for every commit.
[x] Introduce a test framework (GTest, CPPUtest...)
[ ] Create a repository for test data
[x] Simple hex -> json smoke test
[ ] Simple wav -> hex smoke test
[ ] Simple raw pcm -> json smoke test
[x] Add tests to CI workflow
[ ] Document how to run tests locally