aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2023-06-06 10:17:20 -0700
committerRichard Henderson <richard.henderson@linaro.org>2023-06-06 10:17:20 -0700
commit80bdd58ae41ee7f65081c33e5f96cd6033da8337 (patch)
tree24e61fd1bdb51d44d0a19468dd375dab269ecd55 /tests
parent7ce5a15fa633c7683d4397a1213c13185ba64eba (diff)
parent6f3ae23b29ad5831902e3ecdc7e443bbbf295bde (diff)
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging
* finish atomics revamp * meson.build tweaks * revert avocado update * always upgrade/downgrade locally installed Python packages * switch from submodules to subprojects * remove --with-git= option * rename --enable-pypi to --enable-download, control submodules and subprojects too # -----BEGIN PGP SIGNATURE----- # # iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmR/Qu8UHHBib256aW5p # QHJlZGhhdC5jb20ACgkQv/vSX3jHroMmSwgAj5SHD8R+5D1UmptzBvI/72CfgqVv # MJa4O1LvHwUkuSmxX1MFFhRa0mo0bu6j+bPpvJ29zKS61ybVwJl87gnsRcDAMXe7 # 08YbcG35Chox6aZxbidUQtXm18JZ3F2aMtmxUuP0PR7LDjVXLV5FsjrHTIt8KuEZ # vUqq3IsVbc4FxCCC0ke2DzrtgpRCxYSdfPrj/t5WzAztAXId9r1zvUlCLN+FUpri # E3KIZYpkXZyOnJQ9W30KnsZo5QtDACwlIMBK6whSdoCjyNN7TwDdhNW8QkOueNO6 # q3tLfwf5+u6uyEoaQTW+teE2oMXT8N4IJllRJj2RyQ1BFD49XhUUJmc33Q== # =b9QD # -----END PGP SIGNATURE----- # gpg: Signature made Tue 06 Jun 2023 07:30:07 AM PDT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [unknown] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (21 commits) configure: remove --with-git-submodules= build: remove git submodule handling from main makefile meson: subprojects: replace berkeley-{soft,test}float-3 with wraps pc-bios/s390-ccw: always build network bootloader configure: move SLOF submodule handling to pc-bios/s390-ccw meson: subprojects: replace submodules with wrap files build: log submodule update from git-submodule.sh git-submodule: allow partial update of .git-submodule-status configure: rename --enable-pypi to --enable-download, control subprojects too configure: remove --with-git= option mkvenv: always pass locally-installed packages to pip tests: Use separate virtual environment for avocado Revert "tests/requirements.txt: bump up avocado-framework version to 101.0" scsi/qemu-pr-helper: Drop support for 'old' libmultipath API meson.build: Use -Wno-undef only for SDL2 versions that need it meson.build: Group the audio backend entries in a separate summary section meson.build: Group the network backend entries in a separate summary section meson.build: Group the UI entries in a separate summary section scripts: remove dead file atomics: eliminate mb_read/mb_set ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.include32
-rw-r--r--tests/fp/meson.build541
-rw-r--r--tests/requirements.txt9
-rw-r--r--tests/unit/test-aio-multithread.c2
-rw-r--r--tests/vm/Makefile.include2
5 files changed, 35 insertions, 551 deletions
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 0184ef2237..9422ddaece 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -89,9 +89,10 @@ distclean-tcg: $(DISTCLEAN_TCG_TARGET_RULES)
# Build up our target list from the filtered list of ninja targets
TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targets)))
-TESTS_VENV_TOKEN=$(BUILD_DIR)/pyvenv/tests.group
+TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
+TESTS_PYTHON=$(TESTS_VENV_DIR)/bin/python3
ifndef AVOCADO_TESTS
AVOCADO_TESTS=tests/avocado
endif
@@ -107,10 +108,11 @@ else
endif
quiet-venv-pip = $(quiet-@)$(call quiet-command-run, \
- $(PYTHON) -m pip -q --disable-pip-version-check $1, \
+ $(TESTS_PYTHON) -m pip -q --disable-pip-version-check $1, \
"VENVPIP","$1")
-$(TESTS_VENV_TOKEN): $(TESTS_VENV_REQ)
+$(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
+ $(call quiet-command, $(PYTHON) -m venv $@, VENV, $@)
$(call quiet-venv-pip,install -e "$(SRC_PATH)/python/")
$(call quiet-venv-pip,install -r $(TESTS_VENV_REQ))
$(call quiet-command, touch $@)
@@ -119,7 +121,7 @@ $(TESTS_RESULTS_DIR):
$(call quiet-command, mkdir -p $@, \
MKDIR, $@)
-check-venv: $(TESTS_VENV_TOKEN)
+check-venv: $(TESTS_VENV_DIR)
FEDORA_31_ARCHES_TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGETS)))
FEDORA_31_ARCHES_CANDIDATES=$(patsubst ppc64,ppc64le,$(FEDORA_31_ARCHES_TARGETS))
@@ -129,25 +131,21 @@ FEDORA_31_DOWNLOAD=$(filter $(FEDORA_31_ARCHES),$(FEDORA_31_ARCHES_CANDIDATES))
# download one specific Fedora 31 image
get-vm-image-fedora-31-%: check-venv
$(call quiet-command, \
- $(PYTHON) -m avocado vmimage get \
+ $(TESTS_PYTHON) -m avocado vmimage get \
--distro=fedora --distro-version=31 --arch=$*, \
"AVOCADO", "Downloading avocado tests VM image for $*")
# download all vm images, according to defined targets
get-vm-images: check-venv $(patsubst %,get-vm-image-fedora-31-%, $(FEDORA_31_DOWNLOAD))
-JOBS_OPTION=$(lastword -j1 $(filter-out -j, $(filter -j%,$(MAKEFLAGS))))
-
check-avocado: check-venv $(TESTS_RESULTS_DIR) get-vm-images
- $(call quiet-command, \
- $(PYTHON) -m avocado \
- --show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
- $(if $(AVOCADO_TAGS),, \
- --filter-by-tags-include-empty \
- --filter-by-tags-include-empty-key) \
- --max-parallel-tasks $(JOBS_OPTION:-j%=%) \
- $(AVOCADO_CMDLINE_TAGS) \
- $(if $(GITLAB_CI),,--failfast) $(AVOCADO_TESTS), \
+ $(call quiet-command, \
+ $(TESTS_PYTHON) -m avocado \
+ --show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \
+ $(if $(AVOCADO_TAGS),, --filter-by-tags-include-empty \
+ --filter-by-tags-include-empty-key) \
+ $(AVOCADO_CMDLINE_TAGS) \
+ $(if $(GITLAB_CI),,--failfast) $(AVOCADO_TESTS), \
"AVOCADO", "tests/avocado")
check-acceptance-deprecated-warning:
@@ -165,7 +163,7 @@ check:
check-build: run-ninja
check-clean:
- rm -rf $(TESTS_RESULTS_DIR)
+ rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
clean: check-clean clean-tcg
distclean: distclean-tcg
diff --git a/tests/fp/meson.build b/tests/fp/meson.build
index f9ca6a93b4..cbc17392d6 100644
--- a/tests/fp/meson.build
+++ b/tests/fp/meson.build
@@ -7,13 +7,15 @@ if targetos == 'windows'
subdir_done()
endif
-fpcflags = [
+sfcflags = [
# softfloat defines
'-DSOFTFLOAT_ROUND_ODD',
'-DINLINE_LEVEL=5',
'-DSOFTFLOAT_FAST_DIV32TO16',
'-DSOFTFLOAT_FAST_DIV64TO32',
'-DSOFTFLOAT_FAST_INT64',
+]
+tfcflags = [
# testfloat defines
'-DFLOAT16',
'-DFLOAT64',
@@ -23,523 +25,16 @@ fpcflags = [
'-DLONG_DOUBLE_IS_EXTFLOAT80',
]
-sfdir = 'berkeley-softfloat-3/source'
-sfspedir = sfdir / '8086-SSE'
-tfdir = 'berkeley-testfloat-3/source'
-
-sfinc = include_directories(sfdir / 'include', sfspedir)
-
-tfcflags = [
- '-Wno-implicit-fallthrough',
- '-Wno-strict-prototypes',
- '-Wno-unknown-pragmas',
- '-Wno-uninitialized',
- '-Wno-missing-prototypes',
- '-Wno-return-type',
- '-Wno-unused-function',
- '-Wno-missing-format-attribute',
- '-Wno-error',
-]
-
-if cc.get_id() == 'clang'
- # Clang does not support '#pragma STDC FENV_ACCESS'
- tfcflags += [ '-Wno-ignored-pragmas' ]
-endif
-
-tfgencases = [
- tfdir / 'genCases_ui32.c',
- tfdir / 'genCases_ui64.c',
- tfdir / 'genCases_i32.c',
- tfdir / 'genCases_i64.c',
- tfdir / 'genCases_f16.c',
- tfdir / 'genCases_f32.c',
- tfdir / 'genCases_f64.c',
- tfdir / 'genCases_extF80.c',
- tfdir / 'genCases_f128.c',
-]
-
-tfwritecase = [
- tfdir / 'writeCase_a_ui32.c',
- tfdir / 'writeCase_a_ui64.c',
- tfdir / 'writeCase_a_f16.c',
- tfdir / 'writeCase_ab_f16.c',
- tfdir / 'writeCase_abc_f16.c',
- tfdir / 'writeCase_a_f32.c',
- tfdir / 'writeCase_ab_f32.c',
- tfdir / 'writeCase_abc_f32.c',
- tfdir / 'writeCase_a_f64.c',
- tfdir / 'writeCase_ab_f64.c',
- tfdir / 'writeCase_abc_f64.c',
- tfdir / 'writeCase_a_extF80M.c',
- tfdir / 'writeCase_ab_extF80M.c',
- tfdir / 'writeCase_a_f128M.c',
- tfdir / 'writeCase_ab_f128M.c',
- tfdir / 'writeCase_abc_f128M.c',
- tfdir / 'writeCase_z_bool.c',
- tfdir / 'writeCase_z_ui32.c',
- tfdir / 'writeCase_z_ui64.c',
- tfdir / 'writeCase_z_f16.c',
- tfdir / 'writeCase_z_f32.c',
- tfdir / 'writeCase_z_f64.c',
- tfdir / 'writeCase_z_extF80M.c',
- tfdir / 'writeCase_z_f128M.c',
-]
-
-tftest = [
- tfdir / 'test_a_ui32_z_f16.c',
- tfdir / 'test_a_ui32_z_f32.c',
- tfdir / 'test_a_ui32_z_f64.c',
- tfdir / 'test_a_ui32_z_extF80.c',
- tfdir / 'test_a_ui32_z_f128.c',
- tfdir / 'test_a_ui64_z_f16.c',
- tfdir / 'test_a_ui64_z_f32.c',
- tfdir / 'test_a_ui64_z_f64.c',
- tfdir / 'test_a_ui64_z_extF80.c',
- tfdir / 'test_a_ui64_z_f128.c',
- tfdir / 'test_a_i32_z_f16.c',
- tfdir / 'test_a_i32_z_f32.c',
- tfdir / 'test_a_i32_z_f64.c',
- tfdir / 'test_a_i32_z_extF80.c',
- tfdir / 'test_a_i32_z_f128.c',
- tfdir / 'test_a_i64_z_f16.c',
- tfdir / 'test_a_i64_z_f32.c',
- tfdir / 'test_a_i64_z_f64.c',
- tfdir / 'test_a_i64_z_extF80.c',
- tfdir / 'test_a_i64_z_f128.c',
- tfdir / 'test_a_f16_z_ui32_rx.c',
- tfdir / 'test_a_f16_z_ui64_rx.c',
- tfdir / 'test_a_f16_z_i32_rx.c',
- tfdir / 'test_a_f16_z_i64_rx.c',
- tfdir / 'test_a_f16_z_ui32_x.c',
- tfdir / 'test_a_f16_z_ui64_x.c',
- tfdir / 'test_a_f16_z_i32_x.c',
- tfdir / 'test_a_f16_z_i64_x.c',
- tfdir / 'test_a_f16_z_f32.c',
- tfdir / 'test_a_f16_z_f64.c',
- tfdir / 'test_a_f16_z_extF80.c',
- tfdir / 'test_a_f16_z_f128.c',
- tfdir / 'test_az_f16.c',
- tfdir / 'test_az_f16_rx.c',
- tfdir / 'test_abz_f16.c',
- tfdir / 'test_abcz_f16.c',
- tfdir / 'test_ab_f16_z_bool.c',
- tfdir / 'test_a_f32_z_ui32_rx.c',
- tfdir / 'test_a_f32_z_ui64_rx.c',
- tfdir / 'test_a_f32_z_i32_rx.c',
- tfdir / 'test_a_f32_z_i64_rx.c',
- tfdir / 'test_a_f32_z_ui32_x.c',
- tfdir / 'test_a_f32_z_ui64_x.c',
- tfdir / 'test_a_f32_z_i32_x.c',
- tfdir / 'test_a_f32_z_i64_x.c',
- tfdir / 'test_a_f32_z_f16.c',
- tfdir / 'test_a_f32_z_f64.c',
- tfdir / 'test_a_f32_z_extF80.c',
- tfdir / 'test_a_f32_z_f128.c',
- tfdir / 'test_az_f32.c',
- tfdir / 'test_az_f32_rx.c',
- tfdir / 'test_abz_f32.c',
- tfdir / 'test_abcz_f32.c',
- tfdir / 'test_ab_f32_z_bool.c',
- tfdir / 'test_a_f64_z_ui32_rx.c',
- tfdir / 'test_a_f64_z_ui64_rx.c',
- tfdir / 'test_a_f64_z_i32_rx.c',
- tfdir / 'test_a_f64_z_i64_rx.c',
- tfdir / 'test_a_f64_z_ui32_x.c',
- tfdir / 'test_a_f64_z_ui64_x.c',
- tfdir / 'test_a_f64_z_i32_x.c',
- tfdir / 'test_a_f64_z_i64_x.c',
- tfdir / 'test_a_f64_z_f16.c',
- tfdir / 'test_a_f64_z_f32.c',
- tfdir / 'test_a_f64_z_extF80.c',
- tfdir / 'test_a_f64_z_f128.c',
- tfdir / 'test_az_f64.c',
- tfdir / 'test_az_f64_rx.c',
- tfdir / 'test_abz_f64.c',
- tfdir / 'test_abcz_f64.c',
- tfdir / 'test_ab_f64_z_bool.c',
- tfdir / 'test_a_extF80_z_ui32_rx.c',
- tfdir / 'test_a_extF80_z_ui64_rx.c',
- tfdir / 'test_a_extF80_z_i32_rx.c',
- tfdir / 'test_a_extF80_z_i64_rx.c',
- tfdir / 'test_a_extF80_z_ui32_x.c',
- tfdir / 'test_a_extF80_z_ui64_x.c',
- tfdir / 'test_a_extF80_z_i32_x.c',
- tfdir / 'test_a_extF80_z_i64_x.c',
- tfdir / 'test_a_extF80_z_f16.c',
- tfdir / 'test_a_extF80_z_f32.c',
- tfdir / 'test_a_extF80_z_f64.c',
- tfdir / 'test_a_extF80_z_f128.c',
- tfdir / 'test_az_extF80.c',
- tfdir / 'test_az_extF80_rx.c',
- tfdir / 'test_abz_extF80.c',
- tfdir / 'test_ab_extF80_z_bool.c',
- tfdir / 'test_a_f128_z_ui32_rx.c',
- tfdir / 'test_a_f128_z_ui64_rx.c',
- tfdir / 'test_a_f128_z_i32_rx.c',
- tfdir / 'test_a_f128_z_i64_rx.c',
- tfdir / 'test_a_f128_z_ui32_x.c',
- tfdir / 'test_a_f128_z_ui64_x.c',
- tfdir / 'test_a_f128_z_i32_x.c',
- tfdir / 'test_a_f128_z_i64_x.c',
- tfdir / 'test_a_f128_z_f16.c',
- tfdir / 'test_a_f128_z_f32.c',
- tfdir / 'test_a_f128_z_f64.c',
- tfdir / 'test_a_f128_z_extF80.c',
- tfdir / 'test_az_f128.c',
- tfdir / 'test_az_f128_rx.c',
- tfdir / 'test_abz_f128.c',
- tfdir / 'test_abcz_f128.c',
- tfdir / 'test_ab_f128_z_bool.c',
-]
-
-libtestfloat = static_library(
- 'testfloat',
- files(
- tfdir / 'uint128_inline.c',
- tfdir / 'uint128.c',
- tfdir / 'fail.c',
- tfdir / 'functions_common.c',
- tfdir / 'functionInfos.c',
- tfdir / 'standardFunctionInfos.c',
- tfdir / 'random.c',
- tfdir / 'genCases_common.c',
- tfgencases,
- tfdir / 'genCases_writeTestsTotal.c',
- tfdir / 'verCases_inline.c',
- tfdir / 'verCases_common.c',
- tfdir / 'verCases_writeFunctionName.c',
- tfdir / 'readHex.c',
- tfdir / 'writeHex.c',
- tfwritecase,
- tfdir / 'testLoops_common.c',
- tftest,
- ),
- include_directories: sfinc,
- c_args: tfcflags + fpcflags,
-)
-
-sfcflags = [
- '-Wno-implicit-fallthrough',
- '-Wno-missing-prototypes',
- '-Wno-redundant-decls',
- '-Wno-return-type',
- '-Wno-error',
-]
+libsoftfloat_proj = subproject('berkeley-softfloat-3', required: true,
+ default_options: 'defines=' + ','.join(sfcflags))
+libsoftfloat = libsoftfloat_proj.get_variable('libsoftfloat_dep')
-libsoftfloat = static_library(
- 'softfloat',
- files(
- # primitives
- sfdir / 's_eq128.c',
- sfdir / 's_le128.c',
- sfdir / 's_lt128.c',
- sfdir / 's_shortShiftLeft128.c',
- sfdir / 's_shortShiftRight128.c',
- sfdir / 's_shortShiftRightJam64.c',
- sfdir / 's_shortShiftRightJam64Extra.c',
- sfdir / 's_shortShiftRightJam128.c',
- sfdir / 's_shortShiftRightJam128Extra.c',
- sfdir / 's_shiftRightJam32.c',
- sfdir / 's_shiftRightJam64.c',
- sfdir / 's_shiftRightJam64Extra.c',
- sfdir / 's_shiftRightJam128.c',
- sfdir / 's_shiftRightJam128Extra.c',
- sfdir / 's_shiftRightJam256M.c',
- sfdir / 's_countLeadingZeros8.c',
- sfdir / 's_countLeadingZeros16.c',
- sfdir / 's_countLeadingZeros32.c',
- sfdir / 's_countLeadingZeros64.c',
- sfdir / 's_add128.c',
- sfdir / 's_add256M.c',
- sfdir / 's_sub128.c',
- sfdir / 's_sub256M.c',
- sfdir / 's_mul64ByShifted32To128.c',
- sfdir / 's_mul64To128.c',
- sfdir / 's_mul128By32.c',
- sfdir / 's_mul128To256M.c',
- sfdir / 's_approxRecip_1Ks.c',
- sfdir / 's_approxRecip32_1.c',
- sfdir / 's_approxRecipSqrt_1Ks.c',
- sfdir / 's_approxRecipSqrt32_1.c',
- # others
- sfdir / 's_roundToUI32.c',
- sfdir / 's_roundToUI64.c',
- sfdir / 's_roundToI32.c',
- sfdir / 's_roundToI64.c',
- sfdir / 's_normSubnormalF16Sig.c',
- sfdir / 's_roundPackToF16.c',
- sfdir / 's_normRoundPackToF16.c',
- sfdir / 's_addMagsF16.c',
- sfdir / 's_subMagsF16.c',
- sfdir / 's_mulAddF16.c',
- sfdir / 's_normSubnormalF32Sig.c',
- sfdir / 's_roundPackToF32.c',
- sfdir / 's_normRoundPackToF32.c',
- sfdir / 's_addMagsF32.c',
- sfdir / 's_subMagsF32.c',
- sfdir / 's_mulAddF32.c',
- sfdir / 's_normSubnormalF64Sig.c',
- sfdir / 's_roundPackToF64.c',
- sfdir / 's_normRoundPackToF64.c',
- sfdir / 's_addMagsF64.c',
- sfdir / 's_subMagsF64.c',
- sfdir / 's_mulAddF64.c',
- sfdir / 's_normSubnormalExtF80Sig.c',
- sfdir / 's_roundPackToExtF80.c',
- sfdir / 's_normRoundPackToExtF80.c',
- sfdir / 's_addMagsExtF80.c',
- sfdir / 's_subMagsExtF80.c',
- sfdir / 's_normSubnormalF128Sig.c',
- sfdir / 's_roundPackToF128.c',
- sfdir / 's_normRoundPackToF128.c',
- sfdir / 's_addMagsF128.c',
- sfdir / 's_subMagsF128.c',
- sfdir / 's_mulAddF128.c',
- sfdir / 'softfloat_state.c',
- sfdir / 'ui32_to_f16.c',
- sfdir / 'ui32_to_f32.c',
- sfdir / 'ui32_to_f64.c',
- sfdir / 'ui32_to_extF80.c',
- sfdir / 'ui32_to_extF80M.c',
- sfdir / 'ui32_to_f128.c',
- sfdir / 'ui32_to_f128M.c',
- sfdir / 'ui64_to_f16.c',
- sfdir / 'ui64_to_f32.c',
- sfdir / 'ui64_to_f64.c',
- sfdir / 'ui64_to_extF80.c',
- sfdir / 'ui64_to_extF80M.c',
- sfdir / 'ui64_to_f128.c',
- sfdir / 'ui64_to_f128M.c',
- sfdir / 'i32_to_f16.c',
- sfdir / 'i32_to_f32.c',
- sfdir / 'i32_to_f64.c',
- sfdir / 'i32_to_extF80.c',
- sfdir / 'i32_to_extF80M.c',
- sfdir / 'i32_to_f128.c',
- sfdir / 'i32_to_f128M.c',
- sfdir / 'i64_to_f16.c',
- sfdir / 'i64_to_f32.c',
- sfdir / 'i64_to_f64.c',
- sfdir / 'i64_to_extF80.c',
- sfdir / 'i64_to_extF80M.c',
- sfdir / 'i64_to_f128.c',
- sfdir / 'i64_to_f128M.c',
- sfdir / 'f16_to_ui32.c',
- sfdir / 'f16_to_ui64.c',
- sfdir / 'f16_to_i32.c',
- sfdir / 'f16_to_i64.c',
- sfdir / 'f16_to_ui32_r_minMag.c',
- sfdir / 'f16_to_ui64_r_minMag.c',
- sfdir / 'f16_to_i32_r_minMag.c',
- sfdir / 'f16_to_i64_r_minMag.c',
- sfdir / 'f16_to_f32.c',
- sfdir / 'f16_to_f64.c',
- sfdir / 'f16_to_extF80.c',
- sfdir / 'f16_to_extF80M.c',
- sfdir / 'f16_to_f128.c',
- sfdir / 'f16_to_f128M.c',
- sfdir / 'f16_roundToInt.c',
- sfdir / 'f16_add.c',
- sfdir / 'f16_sub.c',
- sfdir / 'f16_mul.c',
- sfdir / 'f16_mulAdd.c',
- sfdir / 'f16_div.c',
- sfdir / 'f16_rem.c',
- sfdir / 'f16_sqrt.c',
- sfdir / 'f16_eq.c',
- sfdir / 'f16_le.c',
- sfdir / 'f16_lt.c',
- sfdir / 'f16_eq_signaling.c',
- sfdir / 'f16_le_quiet.c',
- sfdir / 'f16_lt_quiet.c',
- sfdir / 'f16_isSignalingNaN.c',
- sfdir / 'f32_to_ui32.c',
- sfdir / 'f32_to_ui64.c',
- sfdir / 'f32_to_i32.c',
- sfdir / 'f32_to_i64.c',
- sfdir / 'f32_to_ui32_r_minMag.c',
- sfdir / 'f32_to_ui64_r_minMag.c',
- sfdir / 'f32_to_i32_r_minMag.c',
- sfdir / 'f32_to_i64_r_minMag.c',
- sfdir / 'f32_to_f16.c',
- sfdir / 'f32_to_f64.c',
- sfdir / 'f32_to_extF80.c',
- sfdir / 'f32_to_extF80M.c',
- sfdir / 'f32_to_f128.c',
- sfdir / 'f32_to_f128M.c',
- sfdir / 'f32_roundToInt.c',
- sfdir / 'f32_add.c',
- sfdir / 'f32_sub.c',
- sfdir / 'f32_mul.c',
- sfdir / 'f32_mulAdd.c',
- sfdir / 'f32_div.c',
- sfdir / 'f32_rem.c',
- sfdir / 'f32_sqrt.c',
- sfdir / 'f32_eq.c',
- sfdir / 'f32_le.c',
- sfdir / 'f32_lt.c',
- sfdir / 'f32_eq_signaling.c',
- sfdir / 'f32_le_quiet.c',
- sfdir / 'f32_lt_quiet.c',
- sfdir / 'f32_isSignalingNaN.c',
- sfdir / 'f64_to_ui32.c',
- sfdir / 'f64_to_ui64.c',
- sfdir / 'f64_to_i32.c',
- sfdir / 'f64_to_i64.c',
- sfdir / 'f64_to_ui32_r_minMag.c',
- sfdir / 'f64_to_ui64_r_minMag.c',
- sfdir / 'f64_to_i32_r_minMag.c',
- sfdir / 'f64_to_i64_r_minMag.c',
- sfdir / 'f64_to_f16.c',
- sfdir / 'f64_to_f32.c',
- sfdir / 'f64_to_extF80.c',
- sfdir / 'f64_to_extF80M.c',
- sfdir / 'f64_to_f128.c',
- sfdir / 'f64_to_f128M.c',
- sfdir / 'f64_roundToInt.c',
- sfdir / 'f64_add.c',
- sfdir / 'f64_sub.c',
- sfdir / 'f64_mul.c',
- sfdir / 'f64_mulAdd.c',
- sfdir / 'f64_div.c',
- sfdir / 'f64_rem.c',
- sfdir / 'f64_sqrt.c',
- sfdir / 'f64_eq.c',
- sfdir / 'f64_le.c',
- sfdir / 'f64_lt.c',
- sfdir / 'f64_eq_signaling.c',
- sfdir / 'f64_le_quiet.c',
- sfdir / 'f64_lt_quiet.c',
- sfdir / 'f64_isSignalingNaN.c',
- sfdir / 'extF80_to_ui32.c',
- sfdir / 'extF80_to_ui64.c',
- sfdir / 'extF80_to_i32.c',
- sfdir / 'extF80_to_i64.c',
- sfdir / 'extF80_to_ui32_r_minMag.c',
- sfdir / 'extF80_to_ui64_r_minMag.c',
- sfdir / 'extF80_to_i32_r_minMag.c',
- sfdir / 'extF80_to_i64_r_minMag.c',
- sfdir / 'extF80_to_f16.c',
- sfdir / 'extF80_to_f32.c',
- sfdir / 'extF80_to_f64.c',
- sfdir / 'extF80_to_f128.c',
- sfdir / 'extF80_roundToInt.c',
- sfdir / 'extF80_add.c',
- sfdir / 'extF80_sub.c',
- sfdir / 'extF80_mul.c',
- sfdir / 'extF80_div.c',
- sfdir / 'extF80_rem.c',
- sfdir / 'extF80_sqrt.c',
- sfdir / 'extF80_eq.c',
- sfdir / 'extF80_le.c',
- sfdir / 'extF80_lt.c',
- sfdir / 'extF80_eq_signaling.c',
- sfdir / 'extF80_le_quiet.c',
- sfdir / 'extF80_lt_quiet.c',
- sfdir / 'extF80_isSignalingNaN.c',
- sfdir / 'extF80M_to_ui32.c',
- sfdir / 'extF80M_to_ui64.c',
- sfdir / 'extF80M_to_i32.c',
- sfdir / 'extF80M_to_i64.c',
- sfdir / 'extF80M_to_ui32_r_minMag.c',
- sfdir / 'extF80M_to_ui64_r_minMag.c',
- sfdir / 'extF80M_to_i32_r_minMag.c',
- sfdir / 'extF80M_to_i64_r_minMag.c',
- sfdir / 'extF80M_to_f16.c',
- sfdir / 'extF80M_to_f32.c',
- sfdir / 'extF80M_to_f64.c',
- sfdir / 'extF80M_to_f128M.c',
- sfdir / 'extF80M_roundToInt.c',
- sfdir / 'extF80M_add.c',
- sfdir / 'extF80M_sub.c',
- sfdir / 'extF80M_mul.c',
- sfdir / 'extF80M_div.c',
- sfdir / 'extF80M_rem.c',
- sfdir / 'extF80M_sqrt.c',
- sfdir / 'extF80M_eq.c',
- sfdir / 'extF80M_le.c',
- sfdir / 'extF80M_lt.c',
- sfdir / 'extF80M_eq_signaling.c',
- sfdir / 'extF80M_le_quiet.c',
- sfdir / 'extF80M_lt_quiet.c',
- sfdir / 'f128_to_ui32.c',
- sfdir / 'f128_to_ui64.c',
- sfdir / 'f128_to_i32.c',
- sfdir / 'f128_to_i64.c',
- sfdir / 'f128_to_ui32_r_minMag.c',
- sfdir / 'f128_to_ui64_r_minMag.c',
- sfdir / 'f128_to_i32_r_minMag.c',
- sfdir / 'f128_to_i64_r_minMag.c',
- sfdir / 'f128_to_f16.c',
- sfdir / 'f128_to_f32.c',
- sfdir / 'f128_to_extF80.c',
- sfdir / 'f128_to_f64.c',
- sfdir / 'f128_roundToInt.c',
- sfdir / 'f128_add.c',
- sfdir / 'f128_sub.c',
- sfdir / 'f128_mul.c',
- sfdir / 'f128_mulAdd.c',
- sfdir / 'f128_div.c',
- sfdir / 'f128_rem.c',
- sfdir / 'f128_sqrt.c',
- sfdir / 'f128_eq.c',
- sfdir / 'f128_le.c',
- sfdir / 'f128_lt.c',
- sfdir / 'f128_eq_signaling.c',
- sfdir / 'f128_le_quiet.c',
- sfdir / 'f128_lt_quiet.c',
- sfdir / 'f128_isSignalingNaN.c',
- sfdir / 'f128M_to_ui32.c',
- sfdir / 'f128M_to_ui64.c',
- sfdir / 'f128M_to_i32.c',
- sfdir / 'f128M_to_i64.c',
- sfdir / 'f128M_to_ui32_r_minMag.c',
- sfdir / 'f128M_to_ui64_r_minMag.c',
- sfdir / 'f128M_to_i32_r_minMag.c',
- sfdir / 'f128M_to_i64_r_minMag.c',
- sfdir / 'f128M_to_f16.c',
- sfdir / 'f128M_to_f32.c',
- sfdir / 'f128M_to_extF80M.c',
- sfdir / 'f128M_to_f64.c',
- sfdir / 'f128M_roundToInt.c',
- sfdir / 'f128M_add.c',
- sfdir / 'f128M_sub.c',
- sfdir / 'f128M_mul.c',
- sfdir / 'f128M_mulAdd.c',
- sfdir / 'f128M_div.c',
- sfdir / 'f128M_rem.c',
- sfdir / 'f128M_sqrt.c',
- sfdir / 'f128M_eq.c',
- sfdir / 'f128M_le.c',
- sfdir / 'f128M_lt.c',
- sfdir / 'f128M_eq_signaling.c',
- sfdir / 'f128M_le_quiet.c',
- sfdir / 'f128M_lt_quiet.c',
- # spe
- sfspedir / 'softfloat_raiseFlags.c',
- sfspedir / 's_f16UIToCommonNaN.c',
- sfspedir / 's_commonNaNToF16UI.c',
- sfspedir / 's_propagateNaNF16UI.c',
- sfspedir / 's_f32UIToCommonNaN.c',
- sfspedir / 's_commonNaNToF32UI.c',
- sfspedir / 's_propagateNaNF32UI.c',
- sfspedir / 's_f64UIToCommonNaN.c',
- sfspedir / 's_commonNaNToF64UI.c',
- sfspedir / 's_propagateNaNF64UI.c',
- sfspedir / 'extF80M_isSignalingNaN.c',
- sfspedir / 's_extF80UIToCommonNaN.c',
- sfspedir / 's_commonNaNToExtF80UI.c',
- sfspedir / 's_propagateNaNExtF80UI.c',
- sfspedir / 'f128M_isSignalingNaN.c',
- sfspedir / 's_f128UIToCommonNaN.c',
- sfspedir / 's_commonNaNToF128UI.c',
- sfspedir / 's_propagateNaNF128UI.c',
- ),
- include_directories: sfinc,
- c_args: sfcflags + fpcflags,
-)
+libtestfloat_proj = subproject('berkeley-testfloat-3', required: true,
+ default_options: 'defines=' + ','.join(tfcflags))
+libtestfloat = libtestfloat_proj.get_variable('libtestfloat_dep')
+libslowfloat = libtestfloat_proj.get_variable('libslowfloat_dep')
-fpcflags += [
+fpcflags = [
# work around TARGET_* poisoning
'-DHW_POISON_H',
# define a target to match testfloat's implementation-defined choices, such as
@@ -551,10 +46,8 @@ fpcflags += [
fptest = executable(
'fp-test',
- ['fp-test.c', tfdir / 'slowfloat.c', '../../fpu/softfloat.c'],
- link_with: [libtestfloat, libsoftfloat],
- dependencies: [qemuutil],
- include_directories: [sfinc, include_directories(tfdir)],
+ ['fp-test.c', '../../fpu/softfloat.c'],
+ dependencies: [qemuutil, libsoftfloat, libtestfloat, libslowfloat],
c_args: fpcflags,
)
softfloat_conv_tests = {
@@ -636,18 +129,14 @@ test('fp-test-mulAdd', fptest,
executable(
'fp-bench',
['fp-bench.c', '../../fpu/softfloat.c'],
- link_with: [libtestfloat, libsoftfloat],
- dependencies: [qemuutil],
- include_directories: [sfinc, include_directories(tfdir)],
+ dependencies: [qemuutil, libtestfloat, libsoftfloat],
c_args: fpcflags,
)
fptestlog2 = executable(
'fp-test-log2',
['fp-test-log2.c', '../../fpu/softfloat.c'],
- link_with: [libsoftfloat],
- dependencies: [qemuutil],
- include_directories: [sfinc],
+ dependencies: [qemuutil, libsoftfloat],
c_args: fpcflags,
)
test('fp-test-log2', fptestlog2,
diff --git a/tests/requirements.txt b/tests/requirements.txt
index 0e008b9aec..0ba561b6bd 100644
--- a/tests/requirements.txt
+++ b/tests/requirements.txt
@@ -1,9 +1,6 @@
# Add Python module requirements, one per line, to be installed
-# in the qemu build_dir/pyvenv Python virtual environment. For more info,
+# in the tests/venv Python virtual environment. For more info,
# refer to: https://pip.pypa.io/en/stable/user_guide/#id1
-#
-# Note that qemu.git/python/ is implicitly installed to this venv when
-# 'make check-venv' is run, and will persist until configure is run
-# again.
-avocado-framework==101.0
+# Note that qemu.git/python/ is always implicitly installed.
+avocado-framework==88.1
pycdlib==1.11.0
diff --git a/tests/unit/test-aio-multithread.c b/tests/unit/test-aio-multithread.c
index 80c5d4e2e6..08d4570ccb 100644
--- a/tests/unit/test-aio-multithread.c
+++ b/tests/unit/test-aio-multithread.c
@@ -154,7 +154,7 @@ static coroutine_fn void test_multi_co_schedule_entry(void *opaque)
n = g_test_rand_int_range(0, NUM_CONTEXTS);
schedule_next(n);
- qatomic_mb_set(&to_schedule[id], qemu_coroutine_self());
+ qatomic_set_mb(&to_schedule[id], qemu_coroutine_self());
/* finish_cb can run here. */
qemu_coroutine_yield();
g_assert(to_schedule[id] == NULL);
diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index f0f5d32fb0..c2a8ca1c17 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -5,7 +5,7 @@ ifeq ($(realpath $(SRC_PATH)),$(realpath .))
VM_PYTHON = PYTHONPATH=$(SRC_PATH)/python /usr/bin/env python3
VM_VENV =
else
-VM_PYTHON = $(PYTHON)
+VM_PYTHON = $(TESTS_PYTHON)
VM_VENV = check-venv
endif