Skip to content

Commit 006dce7

Browse files
committed
Add tests for non-handled instruction format in simple x86/x64
1 parent 7475c88 commit 006dce7

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

tests/test_simple_x64.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ def test_assembler():
222222

223223

224224
CheckInstr(Push)('RAX')
225+
CheckInstr(Push, must_fail=True)('EAX')
225226
assert len(Push("RAX").get_code()) == 1
226227
CheckInstr(Push)('R15')
227228
CheckInstr(Push)(0x42)
@@ -234,7 +235,9 @@ def test_assembler():
234235
assert len(Pop("RAX").get_code()) == 1
235236

236237

238+
CheckInstr(Call, must_fail=True)('EAX')
237239
CheckInstr(Call)('RAX')
240+
CheckInstr(Call)('R14')
238241
CheckInstr(Call)(mem('[RAX + RCX * 8]'))
239242
CheckInstr(Cpuid)()
240243
CheckInstr(Xchg)('RAX', 'RSP')
@@ -296,6 +299,15 @@ def test_assembler():
296299
CheckInstr(Add, must_fail=True)('RAX', 0xffffffff)
297300

298301

302+
CheckInstr(Jmp, must_fail=True)('EAX')
303+
CheckInstr(Jmp)('RAX')
304+
CheckInstr(Jmp)('R12')
305+
CheckInstr(Jmp)(mem('[RAX]'))
306+
CheckInstr(Jmp)(mem('[RAX + 2]'))
307+
CheckInstr(Jmp)(mem('[0x12345678]'))
308+
CheckInstr(Jmp)(mem('[R15 + 0x12345678]'))
309+
310+
299311
# Test some prefix / REP
300312
assert (x64.Rep + x64.Nop()).get_code() == b"\xf3\x90"
301313
assert (x64.GSPrefix + x64.Nop()).get_code() == b"\x65\x90"

tests/test_simple_x86.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,12 @@ def test_assembler():
230230
CheckInstr(x86.Test, immediat_accepted=-1)('EAX', 0xffffffff)
231231
CheckInstr(x86.Test)('ECX', 0x42)
232232

233+
CheckInstr(Jmp)('EAX')
234+
CheckInstr(Jmp)('EDX')
235+
CheckInstr(Jmp)('EDI')
236+
CheckInstr(Jmp)(mem('[EAX]'))
237+
CheckInstr(Jmp)(mem('[EAX + 2]'))
238+
CheckInstr(Jmp)(mem('[0x12345678]'))
233239

234240
assert x86.Test(mem('[ECX + 0x100]'), 'ECX').get_code() == x86.Test('ECX', mem('[ECX + 0x100]')).get_code()
235241
assert Xchg('EAX', 'ECX').get_code() == Xchg('ECX', 'EAX').get_code()

0 commit comments

Comments
 (0)