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()); |
} |
} |