Migrating tools/regression/ tests (and dealing with TAP)
Garrett Cooper
yanegomi at gmail.com
Tue Nov 26 05:52:43 UTC 2013
On Nov 25, 2013, at 10:29 AM, Julio Merino <julio at meroh.net> wrote:
> Hello all,
>
> Here come sample patches to move existing tests in tools/regression/bin
> to the new layout ('tests' subdirectories within the corresponding tools)
> and to hook these tests into the test suite.
>
> The patches are quite straightforward: I just did an 'svn mv' of the
> existing shell scripts files, wrote a Makefile using plain.test.mk (here
> is where things get interesting) and applied minor changes to get all
> things sorted out (e.g. mtree directory registration).
>
> Consider this a non-working proof of concept. Again: this does NOT work
> (well, it does, but yields invalid results). The problem is that
> TAP-based test programs (like the ones to be run by prove) do NOT report
> 1 on failure and thus the plain Kyua interface is unsuitable because it
> always reports everything as passed.
>
> There are two solutions:
>
> 1) Patch every existing TAP-based test to propagate a 1 error code if
> any of its tests fails. Doable, yes, but it will take a while.
> (Mind you: this is the approach we tried in NetBSD and not all old
> tests are gone yet, years later... it's a significant amount of work
> to manually tweak all test programs!)
>
> I'd rather keep existing code as is *for now*; it simplifies the
> review of the changes and it doesn't immediately break people's
> knowledge of existing test code. (If there is a need for a rewrite,
> I'd suggest to go and use the ATF interface instead. But that's even
> more work.)
>
> 2) Add a TAP-compliant backend to Kyua. This would allow us to plug
> pretty much all existing tests in tools/regression/ without changes
> to the code. I believe this is a worthy goal for the transitional
> step and an easy first cut.
>
> But this means I've gotta implement this backend (fun!). I've been
> reading the protocol and seems reasonably simple, so I expect to have
> something workable this week.
>
> I'm choosing option 2 for now while leaving open the option of rewriting
> tests using ATF *only after* they have been hooked into the build.
> (What I'm shooting for, if you haven't guessed yet, is having a single
> tests tree instead of 3 in src ASAP... Keeping multiple trees is not a
> pretty situation for long.
>
> Once the new Kyua backend is ready, the proposed patches in this mail
> should change minimally: basically do s/plain/prove/ in the Makefiles.
> This is why I'm sending this mail out already: you can get a pretty
> good idea of what I'd like to do and your feedback would be useful!
>
> There is a "tricky" side change to be made to bsd.progs.mk so that it is
> possible to have a directory with SCRIPTS but no PROGS. make tinderbox
> is happy.
>
> Comments?
>
> Thanks!
> <migrate-bin-tests.sh><handle-scripts.diff>
The big concern is that you’re shuffling around tests that are being actively developed by other developers. Have you provided a heads up to Jilles first at least..?
Thanks,
-Garrett
More information about the freebsd-testing
mailing list