Bear with me for a moment: I'm a sleep-deprived new parent who is still getting the hang of Github workflows.

Here is what I think we are aiming to accomplish:

1. Have more tests, make them easy to add, make them easy to selectively run.
2. Keep everything working with Travis-CI.
3. Avoid duplication e.g. multiple testing frameworks.

Right?

If so it seems to me like we need to:

1. Replace all old selftest() functions with new _t files. (Issue: what happens to print() statements?)
2. Have `make test` and `make test_ci` run all the tests they should. (Issue: `make test` runs each module's tests in a fresh snabbswitch process but the recursive mode of `test.lua` reuses the same process.)

I also have proposed a new way to run code that's not linked into snabbswitch in Issue #144 i.e. as scripts in `#!/usr/bin/env snabb` style. I wonder: could the _t.lua files be converted into such scripts? (Calling into `test.lua` as a library and being executed recursively with the `make test` machinery?)

That's a lot of brain dump. Like I say, bear with me :-). The main issue with merging code now is it seems like the new test framework is an addition to the old one instead of an update or replacement.

also: I reflect that I don't always pick up the "big picture" when reading diffs. It would really help for pull requests to include an email-length description of what the change does, why, and how it relates to existing code.