NAME=ELF: entrypoint
FILE=bins/elf/analysis/pie
CMDS=ie
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x00000450 0x00000450 0x00000018 0x00000018 program
0x00000580 0x00000580 0x0000173c 0x0000073c init
0x00000530 0x00000530 0x00001740 0x00000740 fini
EOF
RUN

NAME=ELF: entrypoint with baddr
FILE=bins/elf/analysis/pie
ARGS=-B 0x300000
CMDS=<<EOF
iI~baddr
ie~program
EOF
EXPECT=<<EOF
baddr    0x00300000
0x00300450 0x00000450 0x00300018 0x00000018 program
EOF
RUN

NAME=ELF: rz-bin entrypoint with baddr
FILE==
CMDS=<<EOF
!rz-bin -I -B 0x300000 bins/elf/analysis/pie | grep baddr
!rz-bin -e -B 0x300000 bins/elf/analysis/pie | grep program
EOF
EXPECT=<<EOF
baddr    0x00300000
0x00300450 0x00000450 0x00300018 0x00000018 program
EOF
RUN

NAME=ELF: sym.main
FILE=bins/elf/analysis/pie
CMDS=%v sym.main
EXPECT=<<EOF
0x5c5
EOF
RUN

NAME=ELF: simple.elf - code
FILE=bins/elf/analysis/pie
ARGS=-n
CMDS=<<EOF
oba
%v sym.main
e asm.arch=x86
e asm.bits=32
pi 5 @ sym.main
EOF
EXPECT=<<EOF
0x5c5
push ebp
mov ebp, esp
int3
pop ebp
ret
EOF
RUN

NAME=ELF: simple.elf - code
FILE=bins/elf/analysis/pie
ARGS=-n -b32
CMDS=<<EOF
oba
e asm.arch=x86
e asm.bits=32
pi 5 @ sym.main
EOF
EXPECT=<<EOF
push ebp
mov ebp, esp
int3
pop ebp
ret
EOF
RUN

NAME=ELF: simple.elf - baddr - code
FILE=bins/elf/analysis/pie
ARGS=-b32 -B 0x100000
CMDS=e asm.bits=32;pi 5 @ sym.main
EXPECT=<<EOF
push ebp
mov ebp, esp
int3
pop ebp
ret
EOF
RUN

NAME=ELF: Candypop, main detection
FILE=bins/elf/analysis/candypop
ARGS=-A
CMDS=% main~?0x1235
EXPECT=<<EOF
1
EOF
RUN

NAME=ELF: pd around a reloc with asm.flags.middle
FILE=bins/elf/analysis/hello-linux-i386-pie
CMDS=e asm.flags.middle=2;pd 3 @ 0x000004a6 ~?invalid
EXPECT=<<EOF
0
EOF
RUN
