On Tue, Nov 19, 2019 at 06:38:20PM +0100, Philippe Mathieu-Daudé wrote: > On 11/19/19 6:34 PM, Thomas Huth wrote: > > On 19/11/2019 18.29, Philippe Mathieu-Daudé wrote: > > > On 11/19/19 6:08 PM, Thomas Huth wrote: > > > > Test 079 fails in the arm64, s390x and ppc64le LXD containers, which > > > > apparently do not allow large files to be created. Test 079 tries to > > > > create a 4G sparse file, so check first whether we can really create > > > > such files before executing the test. > > > > > > > > Signed-off-by: Thomas Huth <th...@redhat.com> > > > > --- > > > > tests/qemu-iotests/079 | 6 ++++++ > > > > 1 file changed, 6 insertions(+) > > > > > > > > diff --git a/tests/qemu-iotests/079 b/tests/qemu-iotests/079 > > > > index 81f0c21f53..e9b81419b7 100755 > > > > --- a/tests/qemu-iotests/079 > > > > +++ b/tests/qemu-iotests/079 > > > > @@ -39,6 +39,12 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 > > > > _supported_fmt qcow2 > > > > _supported_proto file nfs > > > > +# Some containers (e.g. non-x86 on Travis) do not allow large files > > > > +if ! truncate --size=4G "$TEST_IMG"; then > > > > > > Shouldn't we restrict that to Travis-CI by checking some environment var? > > > > I'd rather like to keep it independent from Travis environment > > variables, since somebody might want to run "make check" in other > > non-Travis containers or on weird filesystems, and then the test should > > ideally not fail, but simply skip, too. > > I see. But it would be bad if we stop catching normal bugs with this test > because we restricted it to contained environments. > > Maybe we can add a generic is_contained() routine that only checks for > TRAVIS env var, and people using other containers can expand it.
"is_contained" is still expressing the environment. What we need is a way to express features, and be able to switch beteen autodetecting features & mandatory enablement. eg if has_feature "large_file" then ...stuff using large files... fi The "has_feature" helper would by default call out to "has_feature_large_file" todo automatic probing so that things "just work" according to whatever env the tests are run inside. There should, however, be a flag to "./check" which force enables the feature eg "./check --require-feature large_file" will force execution and not attempt to probe for it. We could have "--require-feature :all" to force enable all optional bits. Any formal CI systems should use --require-feature to explicitly force testing of features that are expected to always work. so Travis x86 would use "--require-feature large_large", but the arch64 version would not pass this flag and so do probing which will auto-skip. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|