Introduce a "_flaky_test" function for I/O tests which accepts a GitLab issue URL, and causes the I/O test to be skipped unless the $QEMU_TEST_FLAKY_TESTS environment variable is set.
This is used by test 185 which currently fails in GitLab CI for unknown reasons. Reviewed-by: Kevin Wolf <[email protected]> Reviewed-by: Thomas Huth <[email protected]> Reviewed-by: Pierrick Bouvier <[email protected]> Signed-off-by: Daniel P. Berrangé <[email protected]> --- tests/qemu-iotests/185 | 1 + tests/qemu-iotests/common.rc | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/tests/qemu-iotests/185 b/tests/qemu-iotests/185 index 17489fb91c..a62ae8d329 100755 --- a/tests/qemu-iotests/185 +++ b/tests/qemu-iotests/185 @@ -50,6 +50,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fmt qcow2 _supported_proto file _supported_os Linux +_flaky_test https://gitlab.com/qemu-project/qemu/-/issues/3270 size=$((64 * 1048576)) TEST_IMG="${TEST_IMG}.base" _make_test_img $size diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index 731e4b2b99..298bc483e0 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -1088,5 +1088,21 @@ _qcow2_dump_header() fi } +# This must be referenced after any _require_ lines, so that +# test filtering happens first +_flaky_test() +{ + if test -z "$1" + then + echo "A GitLab issue URL must be provided for a flaky test" + exit 1 + fi + + if test -z "$QEMU_TEST_FLAKY_TESTS" + then + _notrun "Test is flaky (see $1) and \$QEMU_TEST_FLAKY_TESTS is not set" + fi +} + # make sure this script returns success true -- 2.54.0
