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

Side by Side Diff: courgette/typedrva_unittest.cc

Issue 1543643002: Switch to standard integer types in courgette/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 12 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 unified diff | Download patch
« no previous file with comments | « courgette/third_party/qsufsort_unittest.cc ('k') | courgette/types_elf.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdint.h>
6
5 #include "courgette/base_test_unittest.h" 7 #include "courgette/base_test_unittest.h"
6 #include "courgette/disassembler_elf_32_arm.h" 8 #include "courgette/disassembler_elf_32_arm.h"
7 #include "courgette/disassembler_elf_32_x86.h" 9 #include "courgette/disassembler_elf_32_x86.h"
8 #include "courgette/image_utils.h" 10 #include "courgette/image_utils.h"
9 11
10 class TypedRVATest : public BaseTest { 12 class TypedRVATest : public BaseTest {
11 public: 13 public:
12 void TestRelativeTargetX86(courgette::RVA word, courgette::RVA expected) 14 void TestRelativeTargetX86(courgette::RVA word, courgette::RVA expected)
13 const; 15 const;
14 16
15 void TestRelativeTargetARM(courgette::ARM_RVA arm_rva, 17 void TestRelativeTargetARM(courgette::ARM_RVA arm_rva,
16 courgette::RVA rva, 18 courgette::RVA rva,
17 uint32 op, 19 uint32_t op,
18 courgette::RVA expected) const; 20 courgette::RVA expected) const;
19 21
20 void TestARMOPEncode(courgette::ARM_RVA arm_rva, 22 void TestARMOPEncode(courgette::ARM_RVA arm_rva,
21 courgette::RVA rva, 23 courgette::RVA rva,
22 uint32 op, 24 uint32_t op,
23 courgette::RVA expected) const; 25 courgette::RVA expected) const;
24 }; 26 };
25 27
26 void TypedRVATest::TestRelativeTargetX86(courgette::RVA word, 28 void TypedRVATest::TestRelativeTargetX86(courgette::RVA word,
27 courgette::RVA expected) const { 29 courgette::RVA expected) const {
28 courgette::DisassemblerElf32X86::TypedRVAX86* typed_rva 30 courgette::DisassemblerElf32X86::TypedRVAX86* typed_rva
29 = new courgette::DisassemblerElf32X86::TypedRVAX86(0); 31 = new courgette::DisassemblerElf32X86::TypedRVAX86(0);
30 const uint8* op_pointer = reinterpret_cast<const uint8*>(&word); 32 const uint8_t* op_pointer = reinterpret_cast<const uint8_t*>(&word);
31 33
32 EXPECT_TRUE(typed_rva->ComputeRelativeTarget(op_pointer)); 34 EXPECT_TRUE(typed_rva->ComputeRelativeTarget(op_pointer));
33 EXPECT_EQ(typed_rva->relative_target(), expected); 35 EXPECT_EQ(typed_rva->relative_target(), expected);
34 36
35 delete typed_rva; 37 delete typed_rva;
36 } 38 }
37 39
38 uint32 Read32LittleEndian(const void* address) { 40 uint32_t Read32LittleEndian(const void* address) {
39 return *reinterpret_cast<const uint32*>(address); 41 return *reinterpret_cast<const uint32_t*>(address);
40 } 42 }
41 43
42 void TypedRVATest::TestRelativeTargetARM(courgette::ARM_RVA arm_rva, 44 void TypedRVATest::TestRelativeTargetARM(courgette::ARM_RVA arm_rva,
43 courgette::RVA rva, 45 courgette::RVA rva,
44 uint32 op, 46 uint32_t op,
45 courgette::RVA expected) const { 47 courgette::RVA expected) const {
46 courgette::DisassemblerElf32ARM::TypedRVAARM* typed_rva 48 courgette::DisassemblerElf32ARM::TypedRVAARM* typed_rva
47 = new courgette::DisassemblerElf32ARM::TypedRVAARM(arm_rva, rva); 49 = new courgette::DisassemblerElf32ARM::TypedRVAARM(arm_rva, rva);
48 uint8* op_pointer = reinterpret_cast<uint8*>(&op); 50 uint8_t* op_pointer = reinterpret_cast<uint8_t*>(&op);
49 51
50 EXPECT_TRUE(typed_rva->ComputeRelativeTarget(op_pointer)); 52 EXPECT_TRUE(typed_rva->ComputeRelativeTarget(op_pointer));
51 EXPECT_EQ(rva + typed_rva->relative_target(), expected); 53 EXPECT_EQ(rva + typed_rva->relative_target(), expected);
52 54
53 delete typed_rva; 55 delete typed_rva;
54 } 56 }
55 57
56 void TypedRVATest::TestARMOPEncode(courgette::ARM_RVA arm_rva, 58 void TypedRVATest::TestARMOPEncode(courgette::ARM_RVA arm_rva,
57 courgette::RVA rva, 59 courgette::RVA rva,
58 uint32 op, 60 uint32_t op,
59 courgette::RVA expected) const { 61 courgette::RVA expected) const {
60 uint16 c_op; 62 uint16_t c_op;
61 uint32 addr; 63 uint32_t addr;
62 EXPECT_TRUE(courgette::DisassemblerElf32ARM::Compress(arm_rva, op, rva, 64 EXPECT_TRUE(courgette::DisassemblerElf32ARM::Compress(arm_rva, op, rva,
63 &c_op, &addr)); 65 &c_op, &addr));
64 EXPECT_EQ(rva + addr, expected); 66 EXPECT_EQ(rva + addr, expected);
65 67
66 uint32 new_op; 68 uint32_t new_op;
67 EXPECT_TRUE(courgette::DisassemblerElf32ARM::Decompress(arm_rva, c_op, addr, 69 EXPECT_TRUE(courgette::DisassemblerElf32ARM::Decompress(arm_rva, c_op, addr,
68 &new_op)); 70 &new_op));
69 EXPECT_EQ(new_op, op); 71 EXPECT_EQ(new_op, op);
70 } 72 }
71 73
72 TEST_F(TypedRVATest, TestX86) { 74 TEST_F(TypedRVATest, TestX86) {
73 TestRelativeTargetX86(0x0, 0x4); 75 TestRelativeTargetX86(0x0, 0x4);
74 } 76 }
75 77
76 // ARM opcodes taken from and tested against the output of 78 // ARM opcodes taken from and tested against the output of
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 TestARMOPEncode(courgette::ARM_OFF25, 0x2c58, 0xf005feac, 0x89b4); 157 TestARMOPEncode(courgette::ARM_OFF25, 0x2c58, 0xf005feac, 0x89b4);
156 TestARMOPEncode(courgette::ARM_OFF25, 0x2bd2, 0xf7ffeb9e, 0x2310); 158 TestARMOPEncode(courgette::ARM_OFF25, 0x2bd2, 0xf7ffeb9e, 0x2310);
157 TestARMOPEncode(courgette::ARM_OFF25, 0x2bd8, 0xf7ffeb8e, 0x22f8); 159 TestARMOPEncode(courgette::ARM_OFF25, 0x2bd8, 0xf7ffeb8e, 0x22f8);
158 TestARMOPEncode(courgette::ARM_OFF25, 0x2c3e, 0xf7ffea2e, 0x209c); 160 TestARMOPEncode(courgette::ARM_OFF25, 0x2c3e, 0xf7ffea2e, 0x209c);
159 TestARMOPEncode(courgette::ARM_OFF21, 0x2bc6, 0xf00084c7, 0x3558); 161 TestARMOPEncode(courgette::ARM_OFF21, 0x2bc6, 0xf00084c7, 0x3558);
160 TestARMOPEncode(courgette::ARM_OFF21, 0x2bde, 0xf000871d, 0x3a1c); 162 TestARMOPEncode(courgette::ARM_OFF21, 0x2bde, 0xf000871d, 0x3a1c);
161 TestARMOPEncode(courgette::ARM_OFF21, 0x2c5e, 0xf2c086c1, 0x39e4); 163 TestARMOPEncode(courgette::ARM_OFF21, 0x2c5e, 0xf2c086c1, 0x39e4);
162 TestARMOPEncode(courgette::ARM_OFF21, 0x67e4, 0xf43faee9, 0x65ba); 164 TestARMOPEncode(courgette::ARM_OFF21, 0x67e4, 0xf43faee9, 0x65ba);
163 TestARMOPEncode(courgette::ARM_OFF21, 0x67ee, 0xf47faee4, 0x65ba); 165 TestARMOPEncode(courgette::ARM_OFF21, 0x67ee, 0xf47faee4, 0x65ba);
164 } 166 }
OLDNEW
« no previous file with comments | « courgette/third_party/qsufsort_unittest.cc ('k') | courgette/types_elf.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698