NAME=afn normal function
FILE==
CMDS=<<EOF
e asm.arch=avr
wa ret
af
afn foobar
afl.
EOF
EXPECT=<<EOF
0x00000000 foobar
EOF
RUN

NAME=afn interrupt handler
FILE==
CMDS=<<EOF
e asm.arch=avr
wa reti
af
afn foobar
afl.
EOF
EXPECT=<<EOF
0x00000000 foobar
EOF
RUN

NAME=afn with flag
FILE=bins/elf/crackme0x05
CMDS=<<EOF
aa
fl @F:functions~483f4,48540
echo --
fl @F:*~483f4,48540
afn mymain @ 0x08048540
afl. @ 0x08048540
echo "The main flag shouldn't be renamed, it comes from bin:"
fl @F:functions~483f4,48540
echo --
fl @F:*~483f4,48540
afn myfunc @ 0x080483f4
afl. @ 0x080483f4
echo Here the flag is owned by the fcn and should be renamed:
fl @F:functions~483f4,48540
echo --
fl @F:*~483f4,48540
f- myfunc
afn createdflag @ 0x080483f4
echo Non-existing flags should be created
fl @F:functions~483f4,48540
echo --
fl @F:*~483f4,48540
EOF
EXPECT=<<EOF
0x080483f4 33 fcn.080483f4
--
0x080483f4 33 fcn.080483f4
0x08048540 92 main
0x08048540 92 sym.main
0x08048540 mymain
The main flag shouldn't be renamed, it comes from bin:
0x080483f4 33 fcn.080483f4
0x08048540 92 mymain
--
0x080483f4 33 fcn.080483f4
0x08048540 92 main
0x08048540 92 sym.main
0x08048540 92 mymain
0x080483f4 myfunc
Here the flag is owned by the fcn and should be renamed:
0x080483f4 33 myfunc
0x08048540 92 mymain
--
0x080483f4 33 myfunc
0x08048540 92 main
0x08048540 92 sym.main
0x08048540 92 mymain
Non-existing flags should be created
0x080483f4 33 createdflag
0x08048540 92 mymain
--
0x080483f4 33 createdflag
0x08048540 92 main
0x08048540 92 sym.main
0x08048540 92 mymain
EOF
RUN
