Skipping tests that are unimplemented in 32-bit emulation

Mark Johnston markj at
Mon Aug 6 19:14:14 UTC 2018

On Sun, Jul 29, 2018 at 11:23:33AM -0600, Alan Somers wrote:
> I recently tried running the i386 test suite in a chroot on an amd64
> system.  162 tests failed, and 33 were broken.  Some of the failures were
> due to system calls that haven't been implemented in 32-bit emulation.
> setfib(2) is an example.  I think it's unlikely that anybody will ever need
> 32-bit emulation for setfib(2), so perhaps we should just skip the test?
> What's the best way to do that?  I can come up with two ways:
> 1) At runtime, check the hw.machine sysctl and see if it matches some
> compile time preprocessor constant.  I don't know what constant to use,
> though.  Checking __amd64__ would only work for i386 binaries on amd64
> kernels, and not something else like mips binaries on mips64 kernels (I
> don't know if we support that, but I don't want to rule it out).
> 2) At buildtime, put an "allowed_architectures=i386" metadata property into
> the Kyuafile for that test program.  This would require support in
> /usr/share/mk/  It would also require patching Kyua itself,
> because currently "Kyua config" returns the architecture for which it was
> built, not the one on which it's running.
> Thoughts?

I don't have any particular suggestions, but I'd personally rather avoid
a solution that requires tests to opt-in to running under 32-bit
emulation, which I think excludes 2).  I'd be happy to help annotate
any failing tests as required.  It bugs me that the test suite currently
doesn't cover such relatively complicated functions as

More information about the freebsd-testing mailing list