From: Thomas Huth <thuth@redhat.com> To: qemu-devel@nongnu.org Cc: "Fam Zheng" <fam@euphon.net>, qemu-block@nongnu.org, "Christophe Fergeau" <cfergeau@redhat.com>, "Ed Maste" <emaste@freebsd.org>, "Kevin Wolf" <kwolf@redhat.com>, "Max Reitz" <mreitz@redhat.com>, "Li-Wen Hsu" <lwhsu@freebsd.org>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, "Wainer dos Santos Moschetta" <wainersm@redhat.com>, "Eric Blake" <eblake@redhat.com>, "Markus Armbruster" <armbru@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org> Subject: [Qemu-devel] [PATCH v3 7/7] tests: Run the iotests during "make check" again Date: Thu, 2 May 2019 10:45:06 +0200 [thread overview] Message-ID: <20190502084506.8009-8-thuth@redhat.com> (raw) In-Reply-To: <20190502084506.8009-1-thuth@redhat.com> 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 <thuth@redhat.com> --- tests/Makefile.include | 8 +++---- tests/check-block.sh | 44 ++++++++++++++++++++++++++++--------- tests/qemu-iotests-quick.sh | 8 ------- 3 files changed, 38 insertions(+), 22 deletions(-) delete mode 100755 tests/qemu-iotests-quick.sh diff --git a/tests/Makefile.include b/tests/Makefile.include index e2432d5e77..3bb7793d4a 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-$(CONFIG_POSIX) += tests/check-block.sh # All QTests for now are POSIX-only, but the dependencies are # really in libqtest, not in the testcases themselves. @@ -1096,8 +1096,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)) @@ -1168,7 +1168,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-qapi-schema check-unit check-softfloat check-qtest check-decodetree check-block 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 f3d12fd602..3b971d6cf4 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 -$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 0e554bb972..0000000000 --- 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.21.0
WARNING: multiple messages have this Message-ID (diff)
From: Thomas Huth <thuth@redhat.com> To: qemu-devel@nongnu.org Cc: "Fam Zheng" <fam@euphon.net>, "Kevin Wolf" <kwolf@redhat.com>, "Ed Maste" <emaste@freebsd.org>, qemu-block@nongnu.org, "Markus Armbruster" <armbru@redhat.com>, "Christophe Fergeau" <cfergeau@redhat.com>, "Max Reitz" <mreitz@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Wainer dos Santos Moschetta" <wainersm@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, "Li-Wen Hsu" <lwhsu@freebsd.org> Subject: [Qemu-devel] [PATCH v3 7/7] tests: Run the iotests during "make check" again Date: Thu, 2 May 2019 10:45:06 +0200 [thread overview] Message-ID: <20190502084506.8009-8-thuth@redhat.com> (raw) Message-ID: <20190502084506.7rktU_8s27j4aOityWy4nxwkGTn1uX6rkehh2hQgY7k@z> (raw) In-Reply-To: <20190502084506.8009-1-thuth@redhat.com> 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 <thuth@redhat.com> --- tests/Makefile.include | 8 +++---- tests/check-block.sh | 44 ++++++++++++++++++++++++++++--------- tests/qemu-iotests-quick.sh | 8 ------- 3 files changed, 38 insertions(+), 22 deletions(-) delete mode 100755 tests/qemu-iotests-quick.sh diff --git a/tests/Makefile.include b/tests/Makefile.include index e2432d5e77..3bb7793d4a 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-$(CONFIG_POSIX) += tests/check-block.sh # All QTests for now are POSIX-only, but the dependencies are # really in libqtest, not in the testcases themselves. @@ -1096,8 +1096,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)) @@ -1168,7 +1168,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-qapi-schema check-unit check-softfloat check-qtest check-decodetree check-block 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 f3d12fd602..3b971d6cf4 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 -$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 0e554bb972..0000000000 --- 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.21.0
next prev parent reply other threads:[~2019-05-02 8:46 UTC|newest] Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-02 8:44 [Qemu-devel] [PATCH v3 0/7] tests/qemu-iotests: Run basic iotests during "make check" Thomas Huth 2019-05-02 8:44 ` Thomas Huth 2019-05-02 8:45 ` [Qemu-devel] [PATCH v3 1/7] tests/qemu-iotests/005: Add a sanity check for large sparse file support Thomas Huth 2019-05-02 8:45 ` Thomas Huth 2019-05-02 17:37 ` Alex Bennée 2019-05-02 17:37 ` Alex Bennée 2019-05-02 8:45 ` [Qemu-devel] [PATCH v3 2/7] tests/qemu-iotests/check: Pick a default machine if necessary Thomas Huth 2019-05-02 8:45 ` Thomas Huth 2019-05-02 8:45 ` [Qemu-devel] [PATCH v3 3/7] tests/qemu-iotests: Do not hard-code the path to bash Thomas Huth 2019-05-02 8:45 ` Thomas Huth 2019-05-02 8:45 ` [Qemu-devel] [PATCH v3 4/7] cirrus / travis: Add gnu-sed and bash for macOS and FreeBSD Thomas Huth 2019-05-02 8:45 ` Thomas Huth 2019-05-02 8:45 ` [Qemu-devel] [PATCH v3 5/7] tests/qemu-iotests: Remove the "_supported_os Linux" line from many tests Thomas Huth 2019-05-02 8:45 ` Thomas Huth 2019-05-02 8:45 ` [Qemu-devel] [PATCH v3 6/7] tests/qemu-iotests/group: Re-use the "auto" group for tests that can always run Thomas Huth 2019-05-02 8:45 ` Thomas Huth 2019-05-07 13:22 ` Markus Armbruster 2019-05-07 15:22 ` Thomas Huth 2019-05-07 15:50 ` Eric Blake 2019-05-08 5:47 ` Thomas Huth 2019-05-10 8:55 ` Thomas Huth 2019-05-10 9:15 ` [Qemu-devel] [PATCH v4] " Thomas Huth 2019-05-10 11:38 ` [Qemu-devel] [PATCH v3 6/7] " Markus Armbruster 2019-05-10 14:21 ` Kevin Wolf 2019-05-10 15:29 ` Markus Armbruster 2019-05-10 16:07 ` Kevin Wolf 2019-05-08 12:46 ` Markus Armbruster 2019-05-02 8:45 ` Thomas Huth [this message] 2019-05-02 8:45 ` [Qemu-devel] [PATCH v3 7/7] tests: Run the iotests during "make check" again Thomas Huth 2019-05-03 9:53 ` Alex Bennée 2019-05-03 9:53 ` Alex Bennée 2019-05-03 10:03 ` Thomas Huth 2019-05-03 10:03 ` Thomas Huth 2019-05-09 18:08 ` Max Reitz 2019-05-10 4:29 ` Thomas Huth 2019-05-10 13:34 ` Max Reitz 2019-05-10 13:36 ` Thomas Huth 2019-05-10 13:47 ` Max Reitz 2019-05-10 16:20 ` Thomas Huth 2019-05-10 17:40 ` Max Reitz 2019-05-10 13:38 ` Max Reitz
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190502084506.8009-8-thuth@redhat.com \ --to=thuth@redhat.com \ --cc=alex.bennee@linaro.org \ --cc=armbru@redhat.com \ --cc=cfergeau@redhat.com \ --cc=eblake@redhat.com \ --cc=emaste@freebsd.org \ --cc=fam@euphon.net \ --cc=kwolf@redhat.com \ --cc=lwhsu@freebsd.org \ --cc=mreitz@redhat.com \ --cc=philmd@redhat.com \ --cc=qemu-block@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=wainersm@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).