Catechesis is almost ready for its initial release; all that’s left is doc cleanup and packaging.
When processing this file, which is a test suite against this specification, this output is produced:
$ catechist -s examples/math.pl examples/test_suite.txt # Running the standard Catechesis test suite! 1..11 # These tests should succeed if you have implemented the spec commands correctly ok 1 Simple addition ok 2 Subtraction ok 3 Multiplication ok 4 Division # These should pass if you have implemented spec error handling correctly ok 5 Null send produces "no command" err ok 6 Bad command ok 7 'operands' is not list ok 8 Missing operands 1 ok 9 Missing operands 2 ok 10 Non-integer operands ok 11 Division by zero
Which pretty much looks like TAP. But you don’t have to take my word for it.
$ prove --exec='catechist -s examples/math.pl' examples/test_suite.txt examples/test_suite.txt .. ok All tests successful. Files=1, Tests=11, 0 wallclock secs ( 0.03 usr 0.01 sys + 0.06 cusr 0.02 csys = 0.12 CPU) Result: PASS
I have to admit that I wanted to either cry or do a little dance the first time I saw that. It’s been a long time since I’ve had any new software actually be born. Usually it just manages to prove some new ideas and pass a couple hundred unit tests before being sent back for disassembly and use as fodder for the next design iteration.
Speaking of unit tests, Catechesis itself has plenty.
All tests successful. Files=6, Tests=185, 0 wallclock secs... Result: PASS
That’s 185 tests for 370 SLOC, representing 98.4% test coverage (which can, and will be pulled up very slightly).
So yeah. It’s almost time. Look for it on a CPAN near you, soon.