Replace assert() by a CHECK() macro printing one TAP line per check, so a failure no longer aborts the remaining ones. Select the TAP protocol in the meson setup.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- tests/tcg/mips64/octeon-insns.c | 76 +++++++++++++++++++-------------- tests/tcg/mips64/meson.build | 1 + 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/tests/tcg/mips64/octeon-insns.c b/tests/tcg/mips64/octeon-insns.c index 6fffc8201034..2c4fe8f58875 100644 --- a/tests/tcg/mips64/octeon-insns.c +++ b/tests/tcg/mips64/octeon-insns.c @@ -4,8 +4,17 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ -#include <assert.h> #include <stdint.h> +#include <stdio.h> + +static int tests, failures; + +#define CHECK(cond) \ + do { \ + int ok_ = !!(cond); \ + printf("%s %d - %s\n", ok_ ? "ok" : "not ok", ++tests, #cond); \ + failures += !ok_; \ + } while (0) static uint64_t octeon_baddu(uint64_t rs, uint64_t rt) { @@ -385,36 +394,39 @@ static uint64_t octeon_rdhwr31_non_decreasing(void) int main(void) { - assert(octeon_baddu(0x123, 0x0f0) == 0x13); - assert(octeon_dmul(0x12345678, 0x10) == 0x123456780); - assert(octeon_dpop(0xf0f0f0f0f0f0f0f0ULL) == 32); - assert(octeon_seq(0xabc, 0xabc) == 1); - assert(octeon_seq(0xabc, 0xdef) == 0); - assert(octeon_sne(0xabc, 0xabc) == 0); - assert(octeon_sne(0xabc, 0xdef) == 1); - assert(octeon_qmac_lo(0x0003000000000000ULL, 2, 1) == 13); - assert(octeon_qmacs_state(1, 1, 0x7ffffffe) == 0x17fffffffULL); - assert(octeon_qmacs_state(0x8000, 0x8000, 0) == 0x17fffffffULL); - assert(octeon_vmulu(5, 7, 11) == 46); - assert(octeon_vmm0(5, 13, 7, 11) == 59); - assert(octeon_vmm0_zeroes_mpl1() == 0); - assert(octeon_mtp0_zeroes_p1() == 0); - assert(octeon_cop2_key0_readback(0x1122334455667788ULL) == - 0x1122334455667788ULL); - assert(octeon_cop2_key2_readback(0x8877665544332211ULL) == - 0x8877665544332211ULL); - assert(octeon_cop2_key3_readback(0x0102030405060708ULL) == - 0x0102030405060708ULL); - assert(octeon_cop2_keylength_readback(0xa5) == 1); - assert(octeon_cop2_hsh_dat0_readback(0x0102030405060708ULL) == - 0x0102030405060708ULL); - assert(octeon_cop2_crc_len_readback(0xb5) == 5); - assert(octeon_cop2_crc_poly_reflect_readback(0x12345678) == 0x482c6a1e); - assert(octeon_cop2_gfm_mul_reflect_write_readback( - 0x0123456789abcdefULL) == 0xf7b3d591e6a2c480ULL); - assert(octeon_cop2_gfm_mul_reflect_readback( - 0xfedcba9876543210ULL) == 0x084c2a6e195d3b7fULL); - assert(octeon_rdhwr31_non_decreasing()); + printf("TAP version 14\n"); + CHECK(octeon_baddu(0x123, 0x0f0) == 0x13); + CHECK(octeon_dmul(0x12345678, 0x10) == 0x123456780); + CHECK(octeon_dpop(0xf0f0f0f0f0f0f0f0ULL) == 32); + CHECK(octeon_seq(0xabc, 0xabc) == 1); + CHECK(octeon_seq(0xabc, 0xdef) == 0); + CHECK(octeon_sne(0xabc, 0xabc) == 0); + CHECK(octeon_sne(0xabc, 0xdef) == 1); + CHECK(octeon_qmac_lo(0x0003000000000000ULL, 2, 1) == 13); + CHECK(octeon_qmacs_state(1, 1, 0x7ffffffe) == 0x17fffffffULL); + CHECK(octeon_qmacs_state(0x8000, 0x8000, 0) == 0x17fffffffULL); + CHECK(octeon_vmulu(5, 7, 11) == 46); + CHECK(octeon_vmm0(5, 13, 7, 11) == 59); + CHECK(octeon_vmm0_zeroes_mpl1() == 0); + CHECK(octeon_mtp0_zeroes_p1() == 0); + CHECK(octeon_cop2_key0_readback(0x1122334455667788ULL) == + 0x1122334455667788ULL); + CHECK(octeon_cop2_key2_readback(0x8877665544332211ULL) == + 0x8877665544332211ULL); + CHECK(octeon_cop2_key3_readback(0x0102030405060708ULL) == + 0x0102030405060708ULL); + CHECK(octeon_cop2_keylength_readback(0xa5) == 1); + CHECK(octeon_cop2_hsh_dat0_readback(0x0102030405060708ULL) == + 0x0102030405060708ULL); + CHECK(octeon_cop2_crc_len_readback(0xb5) == 5); + CHECK(octeon_cop2_crc_poly_reflect_readback(0x12345678) == 0x482c6a1e); + CHECK(octeon_cop2_gfm_mul_reflect_write_readback( + 0x0123456789abcdefULL) == 0xf7b3d591e6a2c480ULL); + CHECK(octeon_cop2_gfm_mul_reflect_readback( + 0xfedcba9876543210ULL) == 0x084c2a6e195d3b7fULL); + CHECK(octeon_rdhwr31_non_decreasing()); - return 0; + printf("1..%d\n", tests); + + return failures ? 1 : 0; } diff --git a/tests/tcg/mips64/meson.build b/tests/tcg/mips64/meson.build index c80a3716f559..3b895a169758 100644 --- a/tests/tcg/mips64/meson.build +++ b/tests/tcg/mips64/meson.build @@ -5,6 +5,7 @@ tests += tcg_tests['multiarch-linux-user']['tests'] tests += { '../mips64/octeon-insns.c': { 'qemu_args': ['-cpu', 'Octeon68XX'], + 'protocol': 'tap', }, } -- 2.55.0
