[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 28/28] tests: Run the iotests during "make check" aga
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PULL 28/28] tests: Run the iotests during "make check" again |
Date: |
Tue, 28 May 2019 10:49:53 +0100 |
From: Thomas Huth <address@hidden>
People often forget to run the iotests before submitting patches or
pull requests - this is likely due to the fact that we do not run the
tests during our mandatory "make check" tests yet. Now that we've got
a proper "auto" group of iotests that should be fine to run in every
environment, we can enable the iotests during "make check" again by
running the "auto" tests by default from the check-block.sh script.
Some cases still need to be checked first, though: iotests need bash
and GNU sed (otherwise they fail), and if gprof is enabled, it spoils
the output of some test cases causing them to fail. So if we detect
that one of the required programs is missing or that gprof is enabled,
we still have to skip the iotests to avoid failures.
And finally, since we are using check-block.sh now again, this patch also
removes the qemu-iotests-quick.sh script since we do not need that anymore
(and having two shell wrapper scripts around the block tests seem
rather confusing than helpful).
Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
[AJB: -makecheck to check-block.sh, move check-block to start&gate it]
Signed-off-by: Alex Bennée <address@hidden>
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 1865f6b3222..0c6d8c75941 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -140,7 +140,7 @@ check-unit-y += tests/test-uuid$(EXESUF)
check-unit-y += tests/ptimer-test$(EXESUF)
check-unit-y += tests/test-qapi-util$(EXESUF)
-check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
+check-block-$(call land,$(CONFIG_POSIX),$(CONFIG_SOFTMMU)) +=
tests/check-block.sh
# All QTests for now are POSIX-only, but the dependencies are
# really in libqtest, not in the testcases themselves.
@@ -1077,8 +1077,8 @@ clean-tcg: $(CLEAN_TCG_TARGET_RULES)
QEMU_IOTESTS_HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) =
tests/qemu-iotests/socket_scm_helper$(EXESUF)
-.PHONY: check-tests/qemu-iotests-quick.sh
-check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh
qemu-img$(EXESUF) qemu-io$(EXESUF) qemu-nbd$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
+.PHONY: check-tests/check-block.sh
+check-tests/check-block.sh: tests/check-block.sh qemu-img$(EXESUF)
qemu-io$(EXESUF) qemu-nbd$(EXESUF) $(QEMU_IOTESTS_HELPERS-y)
$<
.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
@@ -1152,7 +1152,7 @@ check-acceptance: check-venv $(TESTS_RESULTS_DIR)
check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y))
check-tests/qapi-schema/doc-good.texi
check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
check-block: $(patsubst %,check-%, $(check-block-y))
-check: check-qapi-schema check-unit check-softfloat check-qtest
check-decodetree
+check: check-block check-qapi-schema check-unit check-softfloat check-qtest
check-decodetree
check-clean:
rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST),
$(check-qtest-$(target)-y)) $(check-qtest-generic-y))
diff --git a/tests/check-block.sh b/tests/check-block.sh
index f3d12fd602d..c8b6cec3f68 100755
--- a/tests/check-block.sh
+++ b/tests/check-block.sh
@@ -1,24 +1,48 @@
#!/bin/sh
-FORMAT_LIST="raw qcow2 qed vmdk vpc"
+# Honor the SPEED environment variable, just like we do it for the qtests.
+if [ "$SPEED" = "slow" ]; then
+ format_list="raw qcow2"
+ group=
+elif [ "$SPEED" = "thorough" ]; then
+ format_list="raw qcow2 qed vmdk vpc"
+ group=
+else
+ format_list=qcow2
+ group="-g auto"
+fi
+
if [ "$#" -ne 0 ]; then
- FORMAT_LIST="$@"
+ format_list="$@"
+fi
+
+if grep -q "TARGET_GPROF=y" *-softmmu/config-target.mak 2>/dev/null ; then
+ echo "GPROF is enabled ==> Not running the qemu-iotests."
+ exit 0
fi
-export QEMU_PROG="$PWD/x86_64-softmmu/qemu-system-x86_64"
-export QEMU_IMG_PROG="$PWD/qemu-img"
-export QEMU_IO_PROG="$PWD/qemu-io"
+if [ -z "$(find . -name 'qemu-system-*' -print)" ]; then
+ echo "No qemu-system binary available ==> Not running the qemu-iotests."
+ exit 0
+fi
+
+if ! command -v bash >/dev/null 2>&1 ; then
+ echo "bash not available ==> Not running the qemu-iotests."
+ exit 0
+fi
-if [ ! -x $QEMU_PROG ]; then
- echo "'make check-block' requires qemu-system-x86_64"
- exit 1
+if ! (sed --version | grep 'GNU sed') > /dev/null 2>&1 ; then
+ if ! command -v gsed >/dev/null 2>&1; then
+ echo "GNU sed not available ==> Not running the qemu-iotests."
+ exit 0
+ fi
fi
cd tests/qemu-iotests
ret=0
-for FMT in $FORMAT_LIST ; do
- ./check -T -nocache -$FMT || ret=1
+for fmt in $format_list ; do
+ ./check -makecheck -$fmt $group || ret=1
done
exit $ret
diff --git a/tests/qemu-iotests-quick.sh b/tests/qemu-iotests-quick.sh
deleted file mode 100755
index 0e554bb9724..00000000000
--- a/tests/qemu-iotests-quick.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-cd tests/qemu-iotests
-
-ret=0
-TEST_DIR=${TEST_DIR:-/tmp/qemu-iotests-quick-$$} ./check -T -qcow2 -g quick ||
ret=1
-
-exit $ret
--
2.20.1
- [Qemu-devel] [PULL 13/28] tests/docker: Test more components on the Fedora default image, (continued)
- [Qemu-devel] [PULL 13/28] tests/docker: Test more components on the Fedora default image, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 18/28] tests/tcg/multiarch: move the system memory test, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 16/28] editorconfig: add settings for .s/.S files, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 22/28] .travis.yml: enable aarch64-softmmu and alpha-softmmu tcg tests, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 21/28] tests/tcg/alpha: add system boot.S, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 20/28] tests/tcg/multiarch: expand system memory test to cover more, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 27/28] tests/qemu-iotests: re-format output to for make check-block, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 15/28] tests/tcg/multiarch: add hello world system test, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 25/28] Makefile.target: support per-target coverage reports, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 26/28] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 28/28] tests: Run the iotests during "make check" again,
Alex Bennée <=
- [Qemu-devel] [PULL 23/28] Makefile: fix coverage-report reference to BUILD_DIR, Alex Bennée, 2019/05/28
- [Qemu-devel] [PULL 19/28] tests/tcg/minilib: support %c format char, Alex Bennée, 2019/05/28
- Re: [Qemu-devel] [PULL 00/28] testing/next (system tests, docker, iotests), Peter Maydell, 2019/05/28
- Re: [Qemu-devel] [PULL 00/28] testing/next (system tests, docker, iotests), Alex Bennée, 2019/05/28
- Re: [Qemu-devel] [PULL 00/28] testing/next (system tests, docker, iotests), Peter Maydell, 2019/05/28
- Re: [Qemu-devel] [PULL 00/28] testing/next (system tests, docker, iotests), Alex Bennée, 2019/05/28
- Re: [Qemu-devel] [PULL 00/28] testing/next (system tests, docker, iotests), Paolo Bonzini, 2019/05/30