tests/tcg/multiarch: add test for plugin memory access
authorPierrick Bouvier <pierrick.bouvier@linaro.org>
Mon, 16 Sep 2024 08:53:51 +0000 (09:53 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Thu, 19 Sep 2024 14:58:01 +0000 (15:58 +0100)
commit354b5c19b33d4a31f09022b22c1fef54f3931336
treee117f9e128f68d494bedd03312be4672f557a197
parent7fd9ff76cccd5a5a701e462c8f2b487cba52d407
tests/tcg/multiarch: add test for plugin memory access

Add an explicit test to check expected memory values are read/written.
8,16,32 load/store are tested for all arch.
64,128 load/store are tested for aarch64/x64.
atomic operations (8,16,32,64) are tested for x64 only.

By default, atomic accesses are non atomic if a single cpu is running,
so we force creation of a second one by creating a new thread first.

load/store helpers code path can't be triggered easily in user mode (no
softmmu), so we can't test it here.

Output of test-plugin-mem-access.c is the list of expected patterns in
plugin output. By reading stdout, we can compare to plugins output and
have a multiarch test.

Can be run with:
make -C build/tests/tcg/$ARCH-linux-user run-plugin-test-plugin-mem-access-with-libmem.so

Tested-by: Xingtao Yao <yaoxt.fnst@fujitsu.com>
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240910172033.1427812-7-pierrick.bouvier@linaro.org>
Message-Id: <20240916085400.1046925-10-alex.bennee@linaro.org>
tests/tcg/alpha/Makefile.target
tests/tcg/multiarch/Makefile.target
tests/tcg/multiarch/check-plugin-output.sh [new file with mode: 0755]
tests/tcg/multiarch/test-plugin-mem-access.c [new file with mode: 0644]
tests/tcg/ppc64/Makefile.target