Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Unified Diff: src/processor/disassembler_x86_unittest.cc

Issue 1821293002: Replace libdisasm with capstone Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
}
}

Powered by Google App Engine
This is Rietveld 408576698