From: Marc-André Lureau <[email protected]> Use meson benchmark() for them, adjust mtest2make.py for that.
Signed-off-by: Marc-André Lureau <[email protected]> --- Makefile | 2 +- scripts/mtest2make.py | 3 ++- tests/Makefile.include | 11 ----------- tests/meson.build | 16 ++++++++++++++++ 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 81794d5c34..a2d068ca37 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,7 @@ ${ninja-targets-c_COMPILER} ${ninja-targets-cpp_COMPILER}: .var.command += -MP # reread (and MESON won't be empty anymore). ifneq ($(MESON),) Makefile.mtest: build.ninja scripts/mtest2make.py - $(MESON) introspect --tests | $(PYTHON) scripts/mtest2make.py > $@ + $(MESON) introspect --tests --benchmarks | $(PYTHON) scripts/mtest2make.py > $@ -include Makefile.mtest endif diff --git a/scripts/mtest2make.py b/scripts/mtest2make.py index d7a51bf97e..06d017154c 100644 --- a/scripts/mtest2make.py +++ b/scripts/mtest2make.py @@ -50,7 +50,8 @@ endef suites = defaultdict(Suite) i = 0 -for test in json.load(sys.stdin): +introspect = json.load(sys.stdin) +for test in introspect['tests'] + introspect['benchmarks']: env = ' '.join(('%s=%s' % (shlex.quote(k), shlex.quote(v)) for k, v in test['env'].items())) executable = test['cmd'][0] diff --git a/tests/Makefile.include b/tests/Makefile.include index 9fb61ff900..30d4c6f932 100644 --- a/tests/Makefile.include +++ b/tests/Makefile.include @@ -38,16 +38,8 @@ export SRC_PATH SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \ $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak))) -check-speed-$(CONFIG_BLOCK) += tests/benchmark-crypto-hash$(EXESUF) -check-speed-$(CONFIG_BLOCK) += tests/benchmark-crypto-hmac$(EXESUF) -check-speed-$(CONFIG_BLOCK) += tests/benchmark-crypto-cipher$(EXESUF) - QEMU_CFLAGS += -I$(SRC_PATH)/tests -I$(SRC_PATH)/tests/qtest -tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y) -tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y) -tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y) - tests/migration/stress$(EXESUF): tests/migration/stress.o $(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@") @@ -97,9 +89,6 @@ define do_test_tap "TAP","$@") endef -check-speed: $(check-speed-y) - $(call do_test_human, $^) - # Per guest TCG tests BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGET_DIRS)) diff --git a/tests/meson.build b/tests/meson.build index a2902bde45..4d6bcf06b3 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -108,6 +108,8 @@ tests = { 'test-qapi-util': {}, } +benchs = {} + if have_block tests += { 'test-coroutine': {'deps': [testblock]}, @@ -166,6 +168,11 @@ if have_block if 'CONFIG_NETTLE' in config_host or 'CONFIG_GCRYPT' in config_host tests += {'test-crypto-pbkdf': {'deps': [io]}} endif + benchs += { + 'benchmark-crypto-hash': {'deps': [crypto]}, + 'benchmark-crypto-hmac': {'deps': [crypto]}, + 'benchmark-crypto-cipher': {'deps': [crypto]}, + } endif if have_system @@ -225,6 +232,15 @@ foreach test_name, extra_args: tests suite: suite) endforeach +foreach bench_name, extra_args: benchs + src = extra_args.get('src', [bench_name + '.c']) + exe = executable(bench_name, src, + dependencies: [qemuutil] + extra_args.get('deps', [])) + benchmark(bench_name, exe, + args: ['--tap', '-k'], + protocol: 'tap', + suite: ['speed']) +endforeach if have_tools and 'CONFIG_VHOST_USER' in config_host executable('vhost-user-bridge', -- 2.26.2
