| Index: src/processor/disassembler_x86_unittest.cc
|
| diff --git a/src/processor/disassembler_x86_unittest.cc b/src/processor/disassembler_x86_unittest.cc
|
| index 352905f20dacb199c8193263b5c06a37cb618daa..2b43ecc005580001dece128dcb3c68384ab6596b 100644
|
| --- a/src/processor/disassembler_x86_unittest.cc
|
| +++ b/src/processor/disassembler_x86_unittest.cc
|
| @@ -31,7 +31,7 @@
|
|
|
| #include "breakpad_googletest_includes.h"
|
| #include "processor/disassembler_x86.h"
|
| -#include "third_party/libdisasm/libdis.h"
|
| +#include "capstone.h"
|
|
|
| namespace {
|
|
|
| @@ -85,10 +85,7 @@ TEST(DisassemblerX86Test, SimpleReturnInstruction) {
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_TRUE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
|
| - const libdis::x86_insn_t* instruction = dis.currentInstruction();
|
| - EXPECT_EQ(libdis::insn_controlflow, instruction->group);
|
| - EXPECT_EQ(libdis::insn_return, instruction->type);
|
| + EXPECT_EQ(X86_INS_RET, dis.currentInstruction()->id);
|
| EXPECT_EQ(0U, dis.NextInstruction());
|
| EXPECT_FALSE(dis.currentInstructionValid());
|
| EXPECT_EQ(NULL, dis.currentInstruction());
|
| @@ -106,18 +103,18 @@ TEST(DisassemblerX86Test, BadReadLeadsToBranch) {
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + EXPECT_EQ(X86_INS_MOV, dis.currentInstruction()->id);
|
| EXPECT_TRUE(dis.setBadRead());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_logic, dis.currentInstructionGroup());
|
| + EXPECT_EQ(X86_INS_XOR, dis.currentInstruction()->id);
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(google_breakpad::DISX86_BAD_BRANCH_TARGET, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
|
| + EXPECT_EQ(X86_INS_JMP, dis.currentInstruction()->id);
|
| }
|
|
|
| TEST(DisassemblerX86Test, BadWriteLeadsToPushedArg) {
|
| @@ -127,13 +124,13 @@ TEST(DisassemblerX86Test, BadWriteLeadsToPushedArg) {
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + EXPECT_EQ(X86_INS_MOV, dis.currentInstruction()->id);
|
| EXPECT_TRUE(dis.setBadWrite());
|
| EXPECT_EQ(3U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
|
| + EXPECT_EQ(X86_INS_SHR, dis.currentInstruction()->id);
|
| EXPECT_EQ(1U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| @@ -141,7 +138,7 @@ TEST(DisassemblerX86Test, BadWriteLeadsToPushedArg) {
|
| EXPECT_EQ(5U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(google_breakpad::DISX86_BAD_ARGUMENT_PASSED, dis.flags());
|
| - EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| }
|
|
|
| @@ -152,18 +149,18 @@ TEST(DisassemblerX86Test, BadReadLeadsToBlockWrite) {
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| EXPECT_TRUE(dis.setBadRead());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(google_breakpad::DISX86_BAD_BLOCK_WRITE, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_string, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_string, dis.currentInstructionGroup());
|
| }
|
|
|
| TEST(DisassemblerX86Test, BadReadClobberThenWrite) {
|
| @@ -172,18 +169,18 @@ TEST(DisassemblerX86Test, BadReadClobberThenWrite) {
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
|
| EXPECT_TRUE(dis.setBadRead());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| }
|
|
|
| TEST(DisassemblerX86Test, BadReadXCHGThenWrite) {
|
| @@ -192,23 +189,23 @@ TEST(DisassemblerX86Test, BadReadXCHGThenWrite) {
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
|
| EXPECT_TRUE(dis.setBadRead());
|
| EXPECT_EQ(1U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(google_breakpad::DISX86_BAD_WRITE, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_move, dis.currentInstructionGroup());
|
| }
|
|
|
| TEST(DisassemblerX86Test, BadReadThenCMP) {
|
| @@ -217,17 +214,17 @@ TEST(DisassemblerX86Test, BadReadThenCMP) {
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(0U, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_arithmetic, dis.currentInstructionGroup());
|
| EXPECT_TRUE(dis.setBadRead());
|
| EXPECT_EQ(3U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(google_breakpad::DISX86_BAD_COMPARISON, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_comparison, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_comparison, dis.currentInstructionGroup());
|
| EXPECT_EQ(2U, dis.NextInstruction());
|
| EXPECT_TRUE(dis.currentInstructionValid());
|
| EXPECT_EQ(google_breakpad::DISX86_BAD_COMPARISON, dis.flags());
|
| EXPECT_FALSE(dis.endOfBlock());
|
| - EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
|
| + //EXPECT_EQ(libdis::insn_controlflow, dis.currentInstructionGroup());
|
| }
|
| }
|
|
|