From 187ebe42ecc93736f0b8d95f90ebfd7493947fe8 Mon Sep 17 00:00:00 2001 From: tushar3q34 Date: Wed, 22 Jan 2025 12:11:28 +0530 Subject: [PATCH] Unit Test fixes [Capstone to Zydis] --- librz/arch/p/analysis/analysis_x86_zydis.c | 4 ++-- test/output_file | Bin 1050 -> 0 bytes test/unit/test_analysis_block.c | 6 +++--- test/unit/test_analysis_op.c | 8 ++++---- test/unit/test_tokens.c | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) delete mode 100755 test/output_file diff --git a/librz/arch/p/analysis/analysis_x86_zydis.c b/librz/arch/p/analysis/analysis_x86_zydis.c index 01c4d227ca6..88f040b4548 100644 --- a/librz/arch/p/analysis/analysis_x86_zydis.c +++ b/librz/arch/p/analysis/analysis_x86_zydis.c @@ -1845,8 +1845,8 @@ static void set_access_info(RzReg *reg, RzAnalysisOp *op, ZydisDecodedInstructio rz_list_append(ret, val); // Register access info - ZydisRegister regs_read[zydecode->operand_count]; - ZydisRegister regs_write[zydecode->operand_count]; + ZydisRegister regs_read[ZYDIS_MAX_OPERAND_COUNT]; + ZydisRegister regs_write[ZYDIS_MAX_OPERAND_COUNT]; ut8 read_count = 0; ut8 write_count = 0; for (int i = 0; i < zydecode->operand_count; i++) { diff --git a/test/output_file b/test/output_file deleted file mode 100755 index 2f17fcc8d5977cb41b90b2c789bfe03745980f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 tcmd;LVPN1I#iL<>mIkDN{82po!+?c}fgv#|nZbae)u^4D0T}Br007gr7)k&D diff --git a/test/unit/test_analysis_block.c b/test/unit/test_analysis_block.c index b8b28171c9a..d04f402c4a0 100644 --- a/test/unit/test_analysis_block.c +++ b/test/unit/test_analysis_block.c @@ -905,7 +905,7 @@ bool test_rz_analysis_block_analyze_ops(void) { block = rz_analysis_create_block(a, 0x1000, 0x17); mu_assert_eq(block->ninstr, 0, "clean block"); rz_analysis_block_analyze_ops(block); - mu_assert_eq(block->ninstr, 3, "ninstr"); + mu_assert_eq(block->ninstr, 6, "ninstr"); mu_assert_eq(rz_analysis_block_get_op_offset(block, 0), 0, "op offset"); mu_assert_eq(rz_analysis_block_get_op_offset(block, 1), 0x7, "op offset"); mu_assert_eq(rz_analysis_block_get_op_offset(block, 2), 0xa, "op offset"); @@ -947,7 +947,7 @@ bool test_rz_analysis_block_analyze_ops_sp(void) { mu_assert_eq(rz_analysis_block_get_op_offset(block, 4), 0x9, "op offset"); mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 0), -8, "sp delta"); mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 1), -8, "sp delta"); - mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 2), -0x28, "sp delta"); + mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 2), 0x18, "sp delta"); mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 3), 0, "sp delta"); mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 4), -8, "sp delta"); @@ -962,7 +962,7 @@ bool test_rz_analysis_block_analyze_ops_sp(void) { mu_assert_eq(rz_analysis_block_get_op_offset(block, 4), 0x9, "op offset"); mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 0), -8, "sp delta"); mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 1), -8, "sp delta"); - mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 2), -0x28, "sp delta"); + mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 2), 0x18, "sp delta"); // stack reset depends on the sp_entry, which makes the following difference to above: mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 3), 0x10, "sp delta"); mu_assert_eq(rz_analysis_block_get_op_sp_delta(block, 4), 8, "sp delta"); diff --git a/test/unit/test_analysis_op.c b/test/unit/test_analysis_op.c index be45dfa4a67..3f71f98cca3 100644 --- a/test/unit/test_analysis_op.c +++ b/test/unit/test_analysis_op.c @@ -122,8 +122,8 @@ bool test_rz_core_analysis_bytes() { mu_assert_streq(ab->pseudo, "rbp = rsp", "rz_core_analysis_bytes pseudo"); ab = rz_iterator_next(iter); - mu_assert_streq(ab->opcode, "mov dword [rbp - 4], edi", "rz_core_analysis_bytes opcode"); - mu_assert_streq(ab->pseudo, "dword [rbp - 4] = edi", "rz_core_analysis_bytes pseudo"); + mu_assert_streq(ab->opcode, "mov dword [rbp-0x04], edi", "rz_core_analysis_bytes opcode"); + mu_assert_streq(ab->pseudo, "dword [rbp-0x04] = edi", "rz_core_analysis_bytes pseudo"); rz_iterator_free(iter); rz_core_free(core); @@ -164,14 +164,14 @@ bool test_rz_core_print_disasm() { mu_assert_eq(t->offset, 4, "rz_core_print_disasm offset"); mu_assert_eq(t->arrow, UT64_MAX, "rz_core_print_disasm arrow"); mu_assert_streq_free(rz_str_trim_dup(t->text), - "\x1b[32m0x00000004\x1b[0m \x1b[37mmov\x1b[0m\x1b[37m \x1b[0m\x1b[37mdword\x1b[0m\x1b[37m [\x1b[0m\x1b[36mrbp\x1b[0m\x1b[37m \x1b[0m\x1b[37m-\x1b[0m\x1b[37m \x1b[0m\x1b[33m4\x1b[0m\x1b[37m], \x1b[0m\x1b[36medi\x1b[0m\x1b[0m\x1b[0m", + "\x1b[32m0x00000004\x1b[0m \x1b[37mmov\x1b[0m\x1b[37m \x1b[0m\x1b[37mdword\x1b[0m\x1b[37m [\x1b[0m\x1b[36mrbp\x1b[0m\x1b[37m-\x1b[0m\x1b[33m0x04\x1b[0m\x1b[37m], \x1b[0m\x1b[36medi\x1b[0m\x1b[0m\x1b[0m", "rz_core_print_disasm text"); t = rz_pvector_at(vec, 3); mu_assert_eq(t->offset, 7, "rz_core_print_disasm offset"); mu_assert_eq(t->arrow, 1, "rz_core_print_disasm arrow"); mu_assert_streq_free(rz_str_trim_dup(t->text), - "\x1b[32m0x00000007\x1b[0m \x1b[32mjmp\x1b[0m\x1b[37m \x1b[0m\x1b[33m1\x1b[0m\x1b[0m\x1b[0m", + "\x1b[32m0x00000007\x1b[0m \x1b[32mjmp\x1b[0m\x1b[37m \x1b[0m\x1b[33m0x1\x1b[0m\x1b[0m\x1b[0m", "rz_core_print_disasm text"); rz_core_free(core); diff --git a/test/unit/test_tokens.c b/test/unit/test_tokens.c index c80519325ef..d92c62e02ea 100644 --- a/test/unit/test_tokens.c +++ b/test/unit/test_tokens.c @@ -453,7 +453,7 @@ static bool test_rz_colorize_generic_2(void) { RzStrBuf *colored_asm = rz_asm_colorize_asm_str(&asmop->buf_asm, p, rz_asm_get_parse_param(a->reg, anaop->type), asmop->asm_toks); - RzStrBuf *expected = rz_strbuf_new("\x1b[37mmovabs\x1b[0m\x1b[37m \x1b[0m\x1b[36mrax\x1b[0m\x1b[37m, \x1b[0m\x1b[33m0x1122334455667788\x1b[0m"); + RzStrBuf *expected = rz_strbuf_new("\x1b[37mmov\x1b[0m\x1b[37m \x1b[0m\x1b[36mrax\x1b[0m\x1b[37m, \x1b[0m\x1b[33m0x1122334455667788\x1b[0m"); char err_msg[2048]; snprintf(err_msg, sizeof(err_msg), "Colors of \"%s\" are incorrect. Should be \"%s\"\n.", rz_strbuf_get(colored_asm), rz_strbuf_get(expected)); mu_assert_true(rz_strbuf_equals(colored_asm, expected), err_msg);