diff mbox series

[v4,39/40] testing: add check-build target

Message ID 20200701135652.1366-40-alex.bennee@linaro.org
State Superseded
Headers show
Series testing/next (vm, gitlab, fixes) | expand

Commit Message

Alex Bennée July 1, 2020, 1:56 p.m. UTC
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

Comments

Philippe Mathieu-Daudé July 1, 2020, 3:59 p.m. UTC | #1
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 mbox series

Patch

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