From 74e272b7b5df5db5e83b75ee05a05287401ac23f Mon Sep 17 00:00:00 2001 From: tracer-ysyx 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 zcmeHOU2Ggz6~4Pph(lX@oiwSNw9TlrRjInWwqv_aOUU>yS)=@sq$sE~)A8=uyLfkY zwL2T{`URI1q<}y{LMY;;d8~vg8B|pkLey2NR!AVZf`>jDL{KV9Nd;6 zaMh{^AyspvnRCz2ckaFC-kG_xd*>UIM-RtiF$IdNFDjNQ2~(^5vr?VIS`^)gxx`A}i@1xFZ#S2XVSS!;hm3(=Q1Bg{Z-UIL^&d(sx)oXzBv^Gm@9QaNt;E+=}2< z1P7iFe{kfJ+sH>n@>%IHNn+XO{+Y+er!a0wa7*G3ZiqiPa)0`om-{63ofKTB1ne|S zT?6=|T2cxe^?jLeoR^PF80J$_--nIENy#U;Oaqm63ypNmD_5QLf#yi1bbfARHa9=N z;FjhV8uoByzG>%&1{%%%?p$)VSeVWx2U7b-k^_&WNk|uS$zs8+Hf)v1)z&04dOoG(}BrX4q%PrFX3o-WtDO5Lk5=TUk5 zzZ%mZIyamD`uXAf%tBwSZ((q5X2u?}^Ue8zQoi!ofr0*^Y)O5M?0Bz^6Y0f9t;QgUp3@Iy2wh`gU5W%(qs& zcxyFt;kC}Iy7R4}pOL!t;7fGw-e*#Yc(MWPtyFdazFKvU@w8;Qw6t zzr)@etyYEj2=U9r^Tad6FBAV7ai%+creX`HRIHJR?Y(_l=Oy|>ivP#DhYpVM5c^DQ zOR%nwjzQAN-}CALHqmkAudS9rTy-T5clCa$`?mScMRjP;6OZhF;C@zfJw-Y$li%l9 zG0~Mc*M)ztSrJi`fhYq}2BHi^8Hh3vWgyBxlz}J%Q3gJp893Qv>W&%0u?NtQ?%peW zRQT<}vCsJqkAGca%F5DCu?|Y3c zzMVERYU&jk`&RX4RI=O#yYOAY!LWyMRrWQ;L;iR#<^7IKclk`MZ8dcX`X!Ok4}L#o zqRp3@dWGL79De_7`TaxQZ;8Ap@#xQC-GA8Wl~>CRu}irB8N)vDa0SEk=laK?Bje+b z8xPaY;?EoY2G)-NaX+`H_gY~$&KK`*4eul8y}+CK^E}*4&%YDIRhL={wV!`mVEtN1 ze?auOK1kGbg3dA3OP7JEWsJ{LT7Rd){MJS~eUlE3kLwNk?^7YBb}C#i(7#B9&D#I6 z_TQnF4HK?yzM21P+JBb{kK=DNsz+g;Jc6ug|J@4L1N84xfpZEpwUlo!E*msgX zL3-o|`aPuI5${&GUqEk&e>hH(^ah*){0pS-iQlCdbdh(2QW_0Z6Bq754_|5k2{Xu0pIoq?9ZYg(y1b;g`2^;ptldV>^^0u2RI?9?l zL0-9nYt?H`j)J&!$`!4uQ!Hm~&*2bWA!}6%9eV#{&zEg0j6_s+!o|Bq&>#0h$Tyd&iQ&gj4Q%N3TZOhxWyh`Po zF2(b?SM@FDoocO6b~gwX*{CZv1Ef?bdMc&cl=7Sgm3e5%R@UiDIe8h(e2%b?e1t!$ zJ_2P5Y?lgIsA);}Wy>MVUEY zfBb9)z9M*h&t#GAyJ(p8?Rm3cv-JB&2LXfc@S`<9iSK;=fNefiqrUH-k*-{9P z`q3Wr|2e^rNx(H}|C-?8$N1fJgz^4!eSLh}_j7tQF=1WoOMY8XW`2`_0~Z}^TA-)ka|z+oJJPgu?$@L12Srb$WE z=d<=1czd!&&~|}pc6Prn{S+06F(lF&baVXnAs_I8;K0K8e*=JQ 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 +#include +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 #include -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 \n" "#include \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