This is sort of a hack because I want to move the individual tests to
subshells, which means they don't have a shared shell context. Functions
and variables not persisting into later tests is a good thing (test environments
polluting each other), but it makes accumulating FAILCOUNT more awkward.