From 74e272b7b5df5db5e83b75ee05a05287401ac23f Mon Sep 17 00:00:00 2001 From: tracer-ysyx <tracer@ysyx.org> Date: Sat, 13 Jan 2024 09:25:24 +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.69=20#1-Nix?= =?UTF-8?q?OS=20SMP=20PREEMPT=5FDYNAMIC=20Wed=20Dec=2020=2016:00:29=20UTC?= =?UTF-8?q?=202023=20x86=5F64=20GNU/Linux=20=2009:25:24=20=20up=201=20day?= =?UTF-8?q?=20=209:41,=20=202=20users,=20=20load=20average:=200.21,=200.43?= =?UTF-8?q?,=200.48?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nemu/test | Bin 0 -> 15688 bytes nemu/test.c | 8 ++++++++ nemu/tests/expr_test.c | 17 ++++++++++++----- 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100755 nemu/test create mode 100644 nemu/test.c diff --git a/nemu/test b/nemu/test new file mode 100755 index 0000000000000000000000000000000000000000..74295cc37644f48114e51d564687c5976f4d25c5 GIT binary patch literal 15688 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 B(g6Sf literal 0 HcmV?d00001 diff --git a/nemu/test.c b/nemu/test.c new file mode 100644 index 0000000..caaed92 --- /dev/null +++ b/nemu/test.c @@ -0,0 +1,8 @@ +#include <stdio.h> +#include <stdint.h> +int main() { + uint32_t result = (0xdU) * (31U / ((((0x45U)) - 75U)) * (0x41U) + 53U / (0xaU) - (0x50U)); + printf("%u", result); + return 0; +} + diff --git a/nemu/tests/expr_test.c b/nemu/tests/expr_test.c index 93b682a..6d26327 100644 --- a/nemu/tests/expr_test.c +++ b/nemu/tests/expr_test.c @@ -9,10 +9,10 @@ #include <assert.h> #include <time.h> -char buf[65536] = {}; +char buf[65536] = {}, ref_buf[65536] = {}; static char code_buf[65536 + 128] = {}; // a little larger than `buf` const int buf_start_pos = 0; -char *buf_ptr = buf + buf_start_pos; +char *buf_ptr = buf + buf_start_pos, *ref_buf_ptr = ref_buf; static char *code_format = "#include <stdio.h>\n" "#include <stdint.h>\n" @@ -25,21 +25,25 @@ static char *code_format = void gen(char c) { *(buf_ptr++) = c; + *(ref_buf_ptr) = c; } void gen_num(void) { uint32_t num = rand() % 100; - int len = 0; + int len = 0, ref_len = 0; switch(rand() % 2) { case 0: len = snprintf(buf_ptr, 100, "%u", num); + ref_len = snprintf(buf_ptr, 100, "%uU", num); break; case 1: len = snprintf(buf_ptr, 100, "0x%x", num); + ref_len = snprintf(buf_ptr, 100, "%uU", num); break; default: assert(0); } buf_ptr += len; + ref_buf_ptr += ref_len; } void gen_rand_op(void) { @@ -71,7 +75,7 @@ START_TEST(test_expr_random_100) { ck_assert(!yyparse(&addr)); yylex_destroy(); - sprintf(code_buf, code_format, buf); + sprintf(code_buf, code_format, ref_buf); FILE *fp = fopen("/tmp/.code.c", "w"); ck_assert(fp != NULL); @@ -93,7 +97,10 @@ START_TEST(test_expr_random_100) { ck_assert_msg(addr == reference, "\n\tbuf = %s\n\taddr = %u, reference = %u\n", buf, addr, reference); while(buf_ptr != buf + buf_start_pos) { - *(--buf_ptr) = '\0'; + *(--buf_ptr) = '\0'; + } + while(ref_buf_ptr != ref_buf) { + *(--ref_buf_ptr) = '\0'; } } END_TEST