test-lib: some shells do not let $? propagate into an eval