diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/docker/Makefile.include | 5 | ||||
| -rw-r--r-- | tests/docker/dockerfiles/centos8.docker | 1 | ||||
| -rw-r--r-- | tests/migration/guestperf/engine.py | 4 | ||||
| -rw-r--r-- | tests/qtest/meson.build | 3 | ||||
| -rw-r--r-- | tests/qtest/test-query-netdev.c | 120 | ||||
| -rwxr-xr-x | tests/tcg/configure.sh | 42 | ||||
| -rw-r--r-- | tests/tcg/i386/Makefile.target | 16 | ||||
| -rw-r--r-- | tests/tcg/i386/system/kernel.ld | 2 | ||||
| -rw-r--r-- | tests/tcg/multiarch/gdbstub/sha1.py | 5 |
9 files changed, 63 insertions, 135 deletions
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index 7cab761bf5..9f464cb92c 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -16,7 +16,10 @@ DOCKER_IMAGES := $(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.doc DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES)) # Use a global constant ccache directory to speed up repetitive builds DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache -DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),registry.gitlab.com/qemu-project/qemu) +ifeq ($(HOST_ARCH),x86_64) +DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu +endif +DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY)) DOCKER_TESTS := $(notdir $(shell \ find $(SRC_PATH)/tests/docker/ -name 'test-*' -type f)) diff --git a/tests/docker/dockerfiles/centos8.docker b/tests/docker/dockerfiles/centos8.docker index a763d55730..a8c6c528b0 100644 --- a/tests/docker/dockerfiles/centos8.docker +++ b/tests/docker/dockerfiles/centos8.docker @@ -29,6 +29,7 @@ ENV PACKAGES \ rdma-core-devel \ spice-glib-devel \ spice-server \ + systemtap-sdt-devel \ tar \ zlib-devel diff --git a/tests/migration/guestperf/engine.py b/tests/migration/guestperf/engine.py index e399447940..6b49aed579 100644 --- a/tests/migration/guestperf/engine.py +++ b/tests/migration/guestperf/engine.py @@ -102,7 +102,7 @@ class Engine(object): info.get("downtime", 0), info.get("expected-downtime", 0), info.get("setup-time", 0), - info.get("x-cpu-throttle-percentage", 0), + info.get("cpu-throttle-percentage", 0), ) def _migrate(self, hardware, scenario, src, dst, connect_uri): @@ -135,7 +135,7 @@ class Engine(object): "state": True } ]) resp = src.command("migrate-set-parameters", - x_cpu_throttle_increment=scenario._auto_converge_step) + cpu_throttle_increment=scenario._auto_converge_step) if scenario._post_copy: resp = src.command("migrate-set-capabilities", diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index 902cfef7cb..420cd9986e 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -33,9 +33,6 @@ qtests_generic = \ if config_host.has_key('CONFIG_MODULES') qtests_generic += [ 'modules-test' ] endif -if slirp.found() - qtests_generic += [ 'test-query-netdev' ] -endif qtests_pci = \ (config_all_devices.has_key('CONFIG_VGA') ? ['display-vga-test'] : []) + \ diff --git a/tests/qtest/test-query-netdev.c b/tests/qtest/test-query-netdev.c deleted file mode 100644 index 1118537a9f..0000000000 --- a/tests/qtest/test-query-netdev.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * QTest testcase for the query-netdev - * - * Copyright Yandex N.V., 2019 - * - * This work is licensed under the terms of the GNU GPL, version 2 or later. - * See the COPYING file in the top-level directory. - * - */ - -#include "qemu/osdep.h" - -#include "libqos/libqtest.h" -#include "qapi/qmp/qdict.h" -#include "qapi/qmp/qlist.h" - -/* - * Events can get in the way of responses we are actually waiting for. - */ -GCC_FMT_ATTR(2, 3) -static QObject *wait_command(QTestState *who, const char *command, ...) -{ - va_list ap; - QDict *response; - QObject *result; - - va_start(ap, command); - qtest_qmp_vsend(who, command, ap); - va_end(ap); - - response = qtest_qmp_receive(who); - - result = qdict_get(response, "return"); - g_assert(result); - qobject_ref(result); - qobject_unref(response); - - return result; -} - -static void qmp_query_netdev_no_error(QTestState *qts, size_t netdevs_count) -{ - QObject *resp; - QList *netdevs; - - resp = wait_command(qts, "{'execute': 'query-netdev'}"); - - netdevs = qobject_to(QList, resp); - g_assert(netdevs); - g_assert(qlist_size(netdevs) == netdevs_count); - - qobject_unref(resp); -} - -static void test_query_netdev(void) -{ - const char *arch = qtest_get_arch(); - QObject *resp; - QTestState *state; - - /* Choosing machine for platforms without default one */ - if (g_str_equal(arch, "arm") || - g_str_equal(arch, "aarch64")) { - state = qtest_init( - "-nodefaults " - "-M virt " - "-netdev user,id=slirp0"); - } else if (g_str_equal(arch, "tricore")) { - state = qtest_init( - "-nodefaults " - "-M tricore_testboard " - "-netdev user,id=slirp0"); - } else if (g_str_equal(arch, "avr")) { - state = qtest_init( - "-nodefaults " - "-M mega2560 " - "-netdev user,id=slirp0"); - } else if (g_str_equal(arch, "rx")) { - state = qtest_init( - "-nodefaults " - "-M gdbsim-r5f562n8 " - "-netdev user,id=slirp0"); - } else { - state = qtest_init( - "-nodefaults " - "-netdev user,id=slirp0"); - } - g_assert(state); - - qmp_query_netdev_no_error(state, 1); - - resp = wait_command(state, - "{'execute': 'netdev_add', 'arguments': {" - " 'id': 'slirp1'," - " 'type': 'user'}}"); - qobject_unref(resp); - - qmp_query_netdev_no_error(state, 2); - - resp = wait_command(state, - "{'execute': 'netdev_del', 'arguments': {" - " 'id': 'slirp1'}}"); - qobject_unref(resp); - - qmp_query_netdev_no_error(state, 1); - - qtest_quit(state); -} - -int main(int argc, char **argv) -{ - int ret = 0; - g_test_init(&argc, &argv, NULL); - - qtest_add_func("/net/qapi/query_netdev", test_query_netdev); - - ret = g_test_run(); - - return ret; -} diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh index ce304f4933..fa1a4261a4 100755 --- a/tests/tcg/configure.sh +++ b/tests/tcg/configure.sh @@ -52,7 +52,7 @@ fi : ${cross_cc_hexagon="hexagon-unknown-linux-musl-clang"} : ${cross_cc_cflags_hexagon="-mv67 -O2 -static"} : ${cross_cc_hppa="hppa-linux-gnu-gcc"} -: ${cross_cc_i386="i386-pc-linux-gnu-gcc"} +: ${cross_cc_i386="i686-linux-gnu-gcc"} : ${cross_cc_cflags_i386="-m32"} : ${cross_cc_m68k="m68k-linux-gnu-gcc"} : $(cross_cc_mips64el="mips64el-linux-gnuabi64-gcc") @@ -69,7 +69,7 @@ fi : ${cross_cc_cflags_sparc="-m32 -mv8plus -mcpu=ultrasparc"} : ${cross_cc_sparc64="sparc64-linux-gnu-gcc"} : ${cross_cc_cflags_sparc64="-m64 -mcpu=ultrasparc"} -: ${cross_cc_x86_64="x86_64-pc-linux-gnu-gcc"} +: ${cross_cc_x86_64="x86_64-linux-gnu-gcc"} : ${cross_cc_cflags_x86_64="-m64"} for target in $target_list; do @@ -108,79 +108,103 @@ for target in $target_list; do case $target in aarch64-*) # We don't have any bigendian build tools so we only use this for AArch64 + container_hosts="x86_64 aarch64" container_image=debian-arm64-test-cross container_cross_cc=aarch64-linux-gnu-gcc-10 ;; alpha-*) + container_hosts=x86_64 container_image=debian-alpha-cross container_cross_cc=alpha-linux-gnu-gcc ;; arm-*) # We don't have any bigendian build tools so we only use this for ARM + container_hosts="x86_64 aarch64" container_image=debian-armhf-cross container_cross_cc=arm-linux-gnueabihf-gcc ;; cris-*) + container_hosts=x86_64 container_image=fedora-cris-cross container_cross_cc=cris-linux-gnu-gcc ;; hppa-*) + container_hosts=x86_64 container_image=debian-hppa-cross container_cross_cc=hppa-linux-gnu-gcc ;; i386-*) + container_hosts=x86_64 container_image=fedora-i386-cross container_cross_cc=gcc ;; m68k-*) + container_hosts=x86_64 container_image=debian-m68k-cross container_cross_cc=m68k-linux-gnu-gcc ;; mips64el-*) + container_hosts=x86_64 container_image=debian-mips64el-cross container_cross_cc=mips64el-linux-gnuabi64-gcc ;; mips64-*) + container_hosts=x86_64 container_image=debian-mips64-cross container_cross_cc=mips64-linux-gnuabi64-gcc ;; mipsel-*) + container_hosts=x86_64 container_image=debian-mipsel-cross container_cross_cc=mipsel-linux-gnu-gcc ;; mips-*) + container_hosts=x86_64 container_image=debian-mips-cross container_cross_cc=mips-linux-gnu-gcc ;; ppc-*|ppc64abi32-*) + container_hosts=x86_64 container_image=debian-powerpc-cross container_cross_cc=powerpc-linux-gnu-gcc ;; ppc64-*) + container_hosts=x86_64 container_image=debian-ppc64-cross container_cross_cc=powerpc64-linux-gnu-gcc ;; ppc64le-*) + container_hosts=x86_64 container_image=debian-ppc64el-cross container_cross_cc=powerpc64le-linux-gnu-gcc ;; riscv64-*) + container_hosts=x86_64 container_image=debian-riscv64-cross container_cross_cc=riscv64-linux-gnu-gcc ;; s390x-*) + container_hosts=x86_64 container_image=debian-s390x-cross container_cross_cc=s390x-linux-gnu-gcc ;; sh4-*) + container_hosts=x86_64 container_image=debian-sh4-cross container_cross_cc=sh4-linux-gnu-gcc ;; sparc64-*) + container_hosts=x86_64 container_image=debian-sparc64-cross container_cross_cc=sparc64-linux-gnu-gcc ;; + x86_64-*) + container_hosts="aarch64 ppc64el x86_64" + container_image=debian-amd64-cross + container_cross_cc=x86_64-linux-gnu-gcc + ;; xtensa*-softmmu) + container_hosts=x86_64 container_image=debian-xtensa-cross # default to the dc232b cpu @@ -257,6 +281,12 @@ for target in $target_list; do echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak fi ;; + i386-linux-user) + if do_compiler "$target_compiler" $target_compiler_cflags \ + -Werror -fno-pie -o $TMPE $TMPC; then + echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak + fi + ;; esac enabled_cross_compilers="$enabled_cross_compilers $target_compiler" @@ -265,7 +295,11 @@ for target in $target_list; do done if test $got_cross_cc = no && test "$container" != no && test -n "$container_image"; then - echo "DOCKER_IMAGE=$container_image" >> $config_target_mak - echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak + for host in $container_hosts; do + if test "$host" = "$ARCH"; then + echo "DOCKER_IMAGE=$container_image" >> $config_target_mak + echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak + fi + done fi done diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target index c4a6f91966..f7efaab918 100644 --- a/tests/tcg/i386/Makefile.target +++ b/tests/tcg/i386/Makefile.target @@ -27,13 +27,23 @@ run-plugin-test-i386-bmi2-%: QEMU_OPTS += -cpu max hello-i386: CFLAGS+=-ffreestanding hello-i386: LDFLAGS+=-nostdlib -# -# test-386 includes a couple of additional objects that need to be linked together -# +# test-386 includes a couple of additional objects that need to be +# linked together, we also need a no-pie capable compiler due to the +# non-pic calls into 16-bit mode +ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_I386_NOPIE),) +test-i386: CFLAGS += -fno-pie test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_CFLAGS) -o $@ \ $(<D)/test-i386.c $(<D)/test-i386-code16.S $(<D)/test-i386-vm86.S -lm +else +test-i386: + $(call skip-test, "BUILD of $@", "missing -no-pie compiler support") +run-test-i386: + $(call skip-test, "RUN of test-i386", "not built") +run-plugin-test-i386-with-%: + $(call skip-test, "RUN of test-i386 ($*)", "not built") +endif ifeq ($(SPEED), slow) diff --git a/tests/tcg/i386/system/kernel.ld b/tests/tcg/i386/system/kernel.ld index 92de525e93..27ea5bbe04 100644 --- a/tests/tcg/i386/system/kernel.ld +++ b/tests/tcg/i386/system/kernel.ld @@ -12,7 +12,7 @@ SECTIONS { } .data : { - *(.data) + *(.data*) __load_en = .; } diff --git a/tests/tcg/multiarch/gdbstub/sha1.py b/tests/tcg/multiarch/gdbstub/sha1.py index 2bfde49633..423b720e6d 100644 --- a/tests/tcg/multiarch/gdbstub/sha1.py +++ b/tests/tcg/multiarch/gdbstub/sha1.py @@ -40,7 +40,10 @@ def run_test(): check_break("SHA1Init") - # check step and inspect values + # Check step and inspect values. We do a double next after the + # breakpoint as depending on the version of gdb we may step the + # preamble and not the first actual line of source. + gdb.execute("next") gdb.execute("next") val_ctx = gdb.parse_and_eval("context->state[0]") exp_ctx = 0x67452301 |