Re: [PATCH 2/6] iotests: Skip test 079 if it is not possible to create large files
Thomas Huth writes: > 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 > --- > 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 > +_notrun "file system on $TEST_DIR does not support large enough files" > +fi > +rm "$TEST_IMG" > + Hmm we are repeating ourselves here. Maybe the test should be wrapped up as __supported_filesize and the test can just do: __supported_filesize 4G along with the other tests above. -- Alex Bennée
Re: [PATCH 2/6] iotests: Skip test 079 if it is not possible to create large files
On 19/11/2019 18.50, Daniel P. Berrangé wrote: > 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 > --- > 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. Maybe a nice idea, but I think this is out of scope for this patch series. We're using the "if ! truncate --size=4G" check in some other tests already, so I'm not adding some new mechanism here. If you want to see some more fine-grained control for the iotests, please send some patches to rework these other tests first. Thomas
Re: [PATCH 2/6] iotests: Skip test 079 if it is not possible to create large files
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 > > > > --- > > > > 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 :|
Re: [PATCH 2/6] iotests: Skip test 079 if it is not possible to create large files
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 --- 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.
Re: [PATCH 2/6] iotests: Skip test 079 if it is not possible to create large files
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 >> --- >> 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. Thomas
Re: [PATCH 2/6] iotests: Skip test 079 if it is not possible to create large files
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 --- 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? +_notrun "file system on $TEST_DIR does not support large enough files" +fi +rm "$TEST_IMG" + echo "=== Check option preallocation and cluster_size ===" echo cluster_sizes="16384 32768 65536 131072 262144 524288 1048576 2097152 4194304"
[PATCH 2/6] iotests: Skip test 079 if it is not possible to create large files
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 --- 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 +_notrun "file system on $TEST_DIR does not support large enough files" +fi +rm "$TEST_IMG" + echo "=== Check option preallocation and cluster_size ===" echo cluster_sizes="16384 32768 65536 131072 262144 524288 1048576 2097152 4194304" -- 2.23.0