All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add option to disable building tests
@ 2026-07-24 13:54 Florian Schmidt
  2026-07-24 16:45 ` Pierrick Bouvier
  0 siblings, 1 reply; 12+ messages in thread
From: Florian Schmidt @ 2026-07-24 13:54 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Florian Schmidt, Marc-André Lureau, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Pierrick Bouvier, Alex Bennée,
	qemu-devel

There are situations in which you might want to build QEMU without
building the full test suite, which in some configurations can take a
considerable amount of time to build. This is especially true when using
LTO with clang. For example:

$ ../configure --cc=clang '--extra-ldflags=-flto=thin -ffat-lto-objects' '--extra-cflags=-flto=thin -ffat-lto-objects' --target-list=x86_64-softmmu
[...]
$ time make -j8
[...]
[3078/3078] Linking target tests/qtest/qos-test
real    6m43.250s
user    101m15.967s
sys     4m3.813s

$ ../configure --cc=clang '--extra-ldflags=-flto=thin -ffat-lto-objects' '--extra-cflags=-flto=thin -ffat-lto-objects' --target-list=x86_64-softmmu --disable-tests
[...]
$ time make -j8
[...]
[2024/2024] Linking target qemu-system-x86_64

real    3m14.277s
user    33m13.174s
sys     1m36.642s

Add a toggle to optionally disable building tests.

Signed-off-by: Florian Schmidt <flosch@nutanix.com>
---
 meson.build                   | 2 +-
 meson_options.txt             | 2 ++
 scripts/meson-buildoptions.sh | 3 +++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 49a5baf5b5..ad728c26ec 100644
--- a/meson.build
+++ b/meson.build
@@ -4605,7 +4605,7 @@ subdir('docs')
 subdir('pyvenv')
 # Tests are disabled on emscripten because they rely on host features that aren't
 # supported by emscripten (e.g. fork and unix socket).
-if host_os != 'emscripten'
+if get_option('tests').allowed() and host_os != 'emscripten'
   subdir('tests')
 endif
 if gtk.found()
diff --git a/meson_options.txt b/meson_options.txt
index a07cb47d35..68333ca402 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -43,6 +43,8 @@ option('gdb', type: 'string', value: '',
 # on the configure script command line.  After adding an option
 # here make sure to run "make update-buildoptions".
 
+option('tests', type: 'feature', value: 'auto',
+       description: 'Build the test suite')
 option('docs', type : 'feature', value : 'auto',
        description: 'Documentations build support')
 option('fuzzing', type : 'boolean', value: false,
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index c003985047..3fec13a336 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -194,6 +194,7 @@ meson_options_help() {
   printf "%s\n" '  spice-protocol  Spice protocol support'
   printf "%s\n" '  stack-protector compiler-provided stack protection'
   printf "%s\n" '  tcg             TCG support'
+  printf "%s\n" '  tests           build test suite'
   printf "%s\n" '  tools           build support utilities that come with QEMU'
   printf "%s\n" '  tpm             TPM support'
   printf "%s\n" '  u2f             U2F emulation support'
@@ -515,6 +516,8 @@ _meson_option_parse() {
     --enable-tcg-interpreter) printf "%s" -Dtcg_interpreter=true ;;
     --disable-tcg-interpreter) printf "%s" -Dtcg_interpreter=false ;;
     --tls-priority=*) quote_sh "-Dtls_priority=$2" ;;
+    --enable-tests) printf "%s" -Dtests=enabled ;;
+    --disable-tests) printf "%s" -Dtests=disabled ;;
     --enable-tools) printf "%s" -Dtools=enabled ;;
     --disable-tools) printf "%s" -Dtools=disabled ;;
     --enable-tpm) printf "%s" -Dtpm=enabled ;;
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-07-27 16:30 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-24 13:54 [PATCH] Add option to disable building tests Florian Schmidt
2026-07-24 16:45 ` Pierrick Bouvier
2026-07-27  8:12   ` Philippe Mathieu-Daudé
2026-07-27  8:46     ` Florian Schmidt
2026-07-27  8:50       ` Daniel P. Berrangé
2026-07-27  9:05         ` Florian Schmidt
2026-07-27  9:11     ` Thomas Huth
2026-07-27 11:19       ` BALATON Zoltan
2026-07-27 14:24         ` Philippe Mathieu-Daudé
2026-07-27 15:15           ` Fabiano Rosas
2026-07-27 15:23             ` Peter Maydell
2026-07-27 16:29               ` Helge Deller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.