From 1cd32d49684ebc83b8ecfc6f47db95baf2ef0fa1 Mon Sep 17 00:00:00 2001 From: tracer-ysyx Date: Mon, 15 Jan 2024 17:09:34 +0800 Subject: [PATCH] =?UTF-8?q?>=20compile=20NEMU=20ysyx=5F22040000=20?= =?UTF-8?q?=E6=9D=8E=E5=BF=83=E6=9D=A8=20Linux=20calcite=206.1.71=20#1-Nix?= =?UTF-8?q?OS=20SMP=20PREEMPT=5FDYNAMIC=20Fri=20Jan=20=205=2014:18:41=20UT?= =?UTF-8?q?C=202024=20x86=5F64=20GNU/Linux=20=2017:09:34=20=20up=202=20day?= =?UTF-8?q?s=20=206:04,=20=202=20users,=20=20load=20average:=201.21,=200.9?= =?UTF-8?q?9,=200.84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nemu/tests/expr_test.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/nemu/tests/expr_test.c b/nemu/tests/expr_test.c index 1bef171..53159b7 100644 --- a/nemu/tests/expr_test.c +++ b/nemu/tests/expr_test.c @@ -147,6 +147,8 @@ struct { {"-0x1", 0xFFFFFFFFU}, {"0--1", 0x1}, {"0--0x1", 0x1}, +}, reg_exprs[] = { + {"$$0", 0x0}, }; START_TEST(test_expr_negative_operand) { yy_scan_string(exprs[_i].expr); @@ -160,6 +162,18 @@ START_TEST(test_expr_negative_operand) { } END_TEST +START_TEST(test_expr_register) { + yy_scan_string(reg_exprs[_i].expr); + uint32_t value; + ck_assert(!yyparse(&value)); + yylex_destroy(); + + ck_assert_msg(value == reg_exprs[_i].reference, + "\n\texpr = %s\n\t(addr = %u) != (reference = %u)\n", reg_exprs[_i].expr, + value, reg_exprs[_i].reference); +} +END_TEST + Suite *expr_suite(void) { Suite *s; TCase *tc_core; @@ -170,6 +184,8 @@ Suite *expr_suite(void) { tcase_add_loop_test(tc_core, test_expr_random_100, 0, 20); tcase_add_loop_test(tc_core, test_expr_negative_operand, 0, sizeof(exprs) / sizeof(exprs[0])); + tcase_add_loop_test(tc_core, test_expr_register, 0, + sizeof(reg_exprs) / sizeof(reg_exprs[0])); suite_add_tcase(s, tc_core); return s;