Message ID | 20200701135652.1366-40-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | testing/next (vm, gitlab, fixes) | expand |
On 7/1/20 3:56 PM, Alex Bennée wrote: > If we want to continue to split build and check phase it seems like a > good idea to allow building of the tests during our multi-threaded > build phase. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Cc: Daniel P. Berrangé <berrange@redhat.com> > --- > .gitlab-ci.yml | 5 ++++- > tests/Makefile.include | 17 +++++++++++++---- > 2 files changed, 17 insertions(+), 5 deletions(-) > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index 83e38ea19f3..b0e5417146b 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -36,7 +36,7 @@ include: > - make -j"$JOBS" > - if test -n "$MAKE_CHECK_ARGS"; > then > - make $MAKE_CHECK_ARGS ; > + make -j"$JOBS" $MAKE_CHECK_ARGS ; > fi > > .native_test_job_template: &native_test_job_definition > @@ -60,6 +60,7 @@ build-system-ubuntu-main: > TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu lm32-softmmu > moxie-softmmu microblazeel-softmmu mips64el-softmmu m68k-softmmu ppc-softmmu > riscv64-softmmu sparc-softmmu > + MAKE_CHECK_ARGS: check-build > artifacts: > paths: > - build > @@ -90,6 +91,7 @@ build-system-fedora-alt: > TARGETS: tricore-softmmu unicore32-softmmu microblaze-softmmu mips-softmmu > riscv32-softmmu s390x-softmmu sh4-softmmu sparc64-softmmu x86_64-softmmu > xtensa-softmmu nios2-softmmu or1k-softmmu > + MAKE_CHECK_ARGS: check-build > artifacts: > paths: > - build > @@ -124,6 +126,7 @@ build-system-fedora-disabled: > --disable-qom-cast-debug --disable-spice --disable-vhost-vsock > --disable-vhost-net --disable-vhost-crypto --disable-vhost-user > TARGETS: i386-softmmu ppc64-softmmu mips64-softmmu i386-linux-user > + MAKE_CHECK_ARGS: check-build > artifacts: > paths: > - build > diff --git a/tests/Makefile.include b/tests/Makefile.include > index c316e0d6647..94b1cc8302e 100644 > --- a/tests/Makefile.include > +++ b/tests/Makefile.include > @@ -22,6 +22,8 @@ endif > @echo " $(MAKE) check-venv Creates a Python venv for tests" > @echo " $(MAKE) check-clean Clean the tests and related data" > @echo > + @echo "The following are useful for CI builds" > + @echo " $(MAKE) check-build Build most test binaris" Typo "binaries". Otherwise: Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > @echo " $(MAKE) get-vm-images Downloads all images used by acceptance tests, according to configured targets (~350 MB each, 1.5 GB max)" > @echo > @echo > @@ -649,6 +651,10 @@ $(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: %-softmmu/all $(c > QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ > QTEST_QEMU_IMG=qemu-img$(EXESUF)) > > +build-qtest: $(patsubst %, %-softmmu/all, $(QTEST_TARGETS)) $(check-qtest-y) > + > +build-unit: $(check-unit-y) > + > check-unit: $(check-unit-y) > $(call do_test_human, $^) > > @@ -680,7 +686,6 @@ check-report.tap: $(patsubst %,check-report-qtest-%.tap, $(QTEST_TARGETS)) check > FP_TEST_BIN=$(BUILD_DIR)/tests/fp/fp-test > > # the build dir is created by configure > -.PHONY: $(FP_TEST_BIN) > $(FP_TEST_BIN): config-host.h $(test-util-obj-y) > $(call quiet-command, \ > $(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" $(notdir $@), \ > @@ -814,9 +819,10 @@ check-softfloat-ops: $(SF_MATH_RULES) > > .PHONY: check-softfloat > ifeq ($(CONFIG_TCG),y) > -check-softfloat: check-softfloat-conv check-softfloat-compare check-softfloat-ops > +build-softfloat: $(FP_TEST_BIN) > +check-softfloat: build-softfloat check-softfloat-conv check-softfloat-compare check-softfloat-ops > else > -check-softfloat: > +build-softfloat check-softfloat: > $(call quiet-command, /bin/true, "FLOAT TEST", \ > "SKIPPED for non-TCG builds") > endif > @@ -955,7 +961,8 @@ check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS)) > ifeq ($(CONFIG_TOOLS),y) > check-block: $(patsubst %,check-%, $(check-block-y)) > endif > -check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree > +check-build: build-unit build-softfloat build-qtest > + > check-clean: > rm -rf $(check-unit-y) tests/*.o tests/*/*.o $(QEMU_IOTESTS_HELPERS-y) > rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y:%=tests/qtest/%$(EXESUF))) $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF))) > @@ -963,6 +970,8 @@ check-clean: > rm -f tests/qtest/dbus-vmstate1-gen-timestamp > rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR) > > +check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree > + > clean: check-clean > > # Build the help program automatically >
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 83e38ea19f3..b0e5417146b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ include: - make -j"$JOBS" - if test -n "$MAKE_CHECK_ARGS"; then - make $MAKE_CHECK_ARGS ; + make -j"$JOBS" $MAKE_CHECK_ARGS ; fi .native_test_job_template: &native_test_job_definition @@ -60,6 +60,7 @@ build-system-ubuntu-main: TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu lm32-softmmu moxie-softmmu microblazeel-softmmu mips64el-softmmu m68k-softmmu ppc-softmmu riscv64-softmmu sparc-softmmu + MAKE_CHECK_ARGS: check-build artifacts: paths: - build @@ -90,6 +91,7 @@ build-system-fedora-alt: TARGETS: tricore-softmmu unicore32-softmmu microblaze-softmmu mips-softmmu riscv32-softmmu s390x-softmmu sh4-softmmu sparc64-softmmu x86_64-softmmu xtensa-softmmu nios2-softmmu or1k-softmmu + MAKE_CHECK_ARGS: check-build artifacts: paths: - build @@ -124,6 +126,7 @@ build-system-fedora-disabled: --disable-qom-cast-debug --disable-spice --disable-vhost-vsock --disable-vhost-net --disable-vhost-crypto --disable-vhost-user TARGETS: i386-softmmu ppc64-softmmu mips64-softmmu i386-linux-user + MAKE_CHECK_ARGS: check-build artifacts: paths: - build diff --git a/tests/Makefile.include b/tests/Makefile.include index c316e0d6647..94b1cc8302e 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -22,6 +22,8 @@ endif @echo " $(MAKE) check-venv Creates a Python venv for tests" @echo " $(MAKE) check-clean Clean the tests and related data" @echo + @echo "The following are useful for CI builds" + @echo " $(MAKE) check-build Build most test binaris" @echo " $(MAKE) get-vm-images Downloads all images used by acceptance tests, according to configured targets (~350 MB each, 1.5 GB max)" @echo @echo @@ -649,6 +651,10 @@ $(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: %-softmmu/all $(c QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ QTEST_QEMU_IMG=qemu-img$(EXESUF)) +build-qtest: $(patsubst %, %-softmmu/all, $(QTEST_TARGETS)) $(check-qtest-y) + +build-unit: $(check-unit-y) + check-unit: $(check-unit-y) $(call do_test_human, $^) @@ -680,7 +686,6 @@ check-report.tap: $(patsubst %,check-report-qtest-%.tap, $(QTEST_TARGETS)) check FP_TEST_BIN=$(BUILD_DIR)/tests/fp/fp-test # the build dir is created by configure -.PHONY: $(FP_TEST_BIN) $(FP_TEST_BIN): config-host.h $(test-util-obj-y) $(call quiet-command, \ $(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" $(notdir $@), \ @@ -814,9 +819,10 @@ check-softfloat-ops: $(SF_MATH_RULES) .PHONY: check-softfloat ifeq ($(CONFIG_TCG),y) -check-softfloat: check-softfloat-conv check-softfloat-compare check-softfloat-ops +build-softfloat: $(FP_TEST_BIN) +check-softfloat: build-softfloat check-softfloat-conv check-softfloat-compare check-softfloat-ops else -check-softfloat: +build-softfloat check-softfloat: $(call quiet-command, /bin/true, "FLOAT TEST", \ "SKIPPED for non-TCG builds") endif @@ -955,7 +961,8 @@ check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS)) ifeq ($(CONFIG_TOOLS),y) check-block: $(patsubst %,check-%, $(check-block-y)) endif -check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree +check-build: build-unit build-softfloat build-qtest + check-clean: rm -rf $(check-unit-y) tests/*.o tests/*/*.o $(QEMU_IOTESTS_HELPERS-y) rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y:%=tests/qtest/%$(EXESUF))) $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF))) @@ -963,6 +970,8 @@ check-clean: rm -f tests/qtest/dbus-vmstate1-gen-timestamp rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR) +check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree + clean: check-clean # Build the help program automatically
If we want to continue to split build and check phase it seems like a good idea to allow building of the tests during our multi-threaded build phase. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Cc: Daniel P. Berrangé <berrange@redhat.com> --- .gitlab-ci.yml | 5 ++++- tests/Makefile.include | 17 +++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) -- 2.20.1