Skip to content

Workflows and tests#3

Draft
igitur wants to merge 19 commits intoTimoSavi:masterfrom
igitur:workflows-and-tests
Draft

Workflows and tests#3
igitur wants to merge 19 commits intoTimoSavi:masterfrom
igitur:workflows-and-tests

Conversation

@igitur
Copy link
Contributor

@igitur igitur commented Jan 15, 2026

Draft PR.

Again, not necessarily something necessary, especially because ffe doesn't get updated often anymore. But I did this as a holiday project to learn a few additional skills.

This adds unit tests and CI workflows to build the project for different platforms and release it as a Github release.

The tests do an end-to-end test using the compiled executable, taking an input file, .fferc configuration file and expected output file. It uses the bats-core test framework, which is "a TAP-compliant testing framework for Bash."

Disclaimer: I used agentic coding heavily to generate the test cases, using the current ffe documetation as the input spec. I think it worked out well, but I can't claim that I've covered every single edge case. The tests also serve as a useful corpus of examples.

Even though this is still a draft, if you have the time, I'd love some feedback. No rush, of course.

igitur and others added 19 commits December 16, 2025 23:46
- Add tests subdirectory to build system (configure.ac, Makefile.am)
- Create modular test structure with subdirectories:
  * fixed_length: Fixed-length parsing with XML output
  * separated: CSV parsing with identical XML output
  * binary: Binary data parsing with hex dump
  * expressions: Record filtering with -e option
- Master runner script (run_tests.sh) executes all tests
- All tests pass with make check
- Test files organized by functionality for maintainability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
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.

1 participant