NAME=iphone-arm-esil tests
FILE=../bins/mach0/FileDP
EXPECT=<<EOF
            0x000028ec      b0402de9       push {r4, r5, r7, lr}       ; sp=0x177ff0
            0x000028f0      08708de2       add r7, sp, 8               ; r7=0x177ff8
            0x000028f4      05dd4de2       sub sp, sp, 0x140           ; sp=0x177eb0
            0x000028f8      07d0cde3       bic sp, sp, 7               ; sp=0x177eb0
EOF
CMDS=<<EOF
s main
aei
aeim
e asm.emu=true
e asm.emustr=false
pd 4~!--
EOF
RUN

NAME=iphone-arm-esil pdsf
FILE=../bins/mach0/FileDP
EXPECT=<<EOF
0x00002900 argc
0x00002904 argv
0x00002918 "alloc"
0x00002920 str.alloc
0x00002928 bl sym.imp.objc_msgSend
0x00002934 "init"
0x0000293c str.init
0x00002940 bl sym.imp.objc_msgSend
0x0000294c "X\x10\x9d\xe5"
0x0000295c bl sym.imp.objc_msgSend
0x00002970 bl sym.imp.objc_msgSend
0x00002998 "Usage: FileDP [-f/-d] [Full path to file/directory] "
0x0000299c bl sym.imp.puts
0x000029c8 bl sym.imp.strcmp
0x00002a1c bl sym.imp.objc_msgSend
0x00002a38 bl sym.imp.objc_msgSend
0x00002a64 bl sym.imp.objc_msgSend
0x00002a90 bl sym.imp.objc_msgSend
0x00002aa4 bl sym.imp.NSLog
0x00002ab0 str.File_Not_Found
0x00002ab4 bl sym.imp.puts
0x00002b00 bl sym.imp.objc_msgSend
0x00002b1c bl sym.imp.objc_msgSend
0x00002b48 bl sym.imp.objc_msgSend
0x00002b64 bl sym.imp.objc_msgSend
0x00002ba4 bl sym.imp.objc_msgSend
0x00002c00 bl sym.imp.objc_msgSend
0x00002c54 bl sym.imp.objc_enumerationMutation
0x00002ca0 bl sym.imp.objc_msgSend
0x00002cc0 bl sym.imp.objc_msgSend
0x00002cec bl sym.imp.objc_msgSend
0x00002cfc str.cstr.file_name_is:_____protection_class:
0x00002d04 bl sym.imp.NSLog
0x00002d50 bl sym.imp.objc_msgSend
0x00002d84 str.Directory_Not_found
0x00002d88 bl sym.imp.puts
0x00002dac bl sym.imp.objc_msgSend
0x00002dcc bx lr
EOF
CMDS=<<EOF
e asm.flags=false
s main
e io.sectonly=true
e asm.emu=true
e asm.emustr=true
af
pdsf
EOF
RUN

NAME=thumb emulation arm issue
FILE=../bins/mach0/FileDP
EXPECT=<<EOF
32
EOF
CMDS=<<EOF
aes
e asm.bits
EOF
RUN

NAME=string refs: thumb
FILE=../bins/mach0/test-thumb
EXPECT=<<EOF
6
EOF
CMDS=<<EOF
af
e asm.emu=true
e emu.str=true
pdf~?str.string
EOF
RUN

NAME=string refs: arm32
FILE=../bins/mach0/test-arm32
EXPECT=<<EOF
6
EOF
CMDS=<<EOF
af
e asm.emu=true
e asm.emustr=true
pdf~?str.string
EOF
RUN

NAME=string refs: arm64
FILE=../bins/mach0/test-arm64
EXPECT=<<EOF
6
EOF
CMDS=<<EOF
af
e asm.emu=true
e asm.emustr=true
pdf~?str.string
EOF
RUN

NAME=arm32: thumb
FILE=../bins/mach0/arm32-ofp.lzh
EXPECT=<<EOF
1
EOF
CMDS=<<EOF
pd 2~?push
EOF
RUN

NAME=thumb: arm32
FILE=../bins/mach0/arm16-ofp.lzh
EXPECT=<<EOF
1
EOF
CMDS=<<EOF
pd 2~?push
EOF
RUN
