NAME=MAIN_ABI : arm-linux_android_abi detect
FILE=bins/abi_bins/elf/platforms/arm-linux-androideabi-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x00008440 0x00000440 0x00008018 0x00000018 program
0xfffffffe ---------- 0x00009b28 0x00000b28 preinit
0xfffffffe ---------- 0x00009b30 0x00000b30 init
0xfffffffe ---------- 0x00009b38 0x00000b38 init
0xfffffffe ---------- 0x00009b40 0x00000b40 fini
arch     arm
bits     32
machine  ARM
EOF
RUN

NAME=MAIN_ABI : arm-linux_gnu_guneabi detect
FILE=bins/abi_bins/elf/platforms/arm-linux-gnueabi-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x00008438 0x00000438 0x00008018 0x00000018 program
0x00008538 0x00000538 0x00010f0c 0x00000f0c init
0x00008510 0x00000510 0x00010f10 0x00000f10 fini
arch     arm
bits     32
machine  ARM
EOF
RUN

NAME=MAIN_ABI : mips-linux-gnu-echo detect
FILE=bins/abi_bins/elf/platforms/mips-linux-gnu-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x004006a0 0x000006a0 0x00400018 0x00000018 program
arch     mips
bits     32
machine  MIPS R3000 big-endian
EOF
RUN

NAME=MAIN_ABI : mips64-linux-gnueabi detect
FILE=bins/abi_bins/elf/platforms/mips64-linux-gnueabi-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
      vaddr      paddr      hvaddr      haddr type    
------------------------------------------------------
0x120000af0 0x00000af0 0x120000018 0x00000018 program
arch     mips
bits     64
machine  MIPS R3000 big-endian
EOF
RUN

NAME=MAIN_ABI : powerpc-linux-gnu detect
FILE=bins/abi_bins/elf/platforms/powerpc-linux-gnu-symexec-guess
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x10000320 0x00000320 0x10000018 0x00000018 program
arch     ppc
bits     32
machine  PowerPC
EOF
RUN

NAME=MAIN_ABI : powerpc32-linux-gnu detect
FILE=bins/abi_bins/elf/platforms/powerpc32-linux-gnu-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x10000420 0x00000420 0x10000018 0x00000018 program
arch     ppc
bits     32
machine  PowerPC
EOF
RUN

NAME=MAIN_ABI : x86_64-linux-gnu detect
FILE=bins/abi_bins/elf/platforms/x86_64-linux-gnu-echo
CMDS=<<EOF
ie;
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x00400600 0x00000600 0x00400018 0x00000018 program
0x004006c0 0x000006c0 0x00600e10 0x00000e10 init
0x004006a0 0x000006a0 0x00600e18 0x00000e18 fini
arch     x86
bits     64
machine  AMD x86-64 architecture
EOF
RUN

NAME=MAIN_ABI : x86_64-macho detect
FILE=bins/abi_bins/elf/platforms/x86_64-macho-echo
CMDS=<<EOF
ie;
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
      vaddr      paddr     hvaddr      haddr type    
-----------------------------------------------------
0x100000e50 0x00000e50 ---------- 0x000004b8 program
arch     x86
bits     64
machine  x86 64 all
EOF
RUN

NAME=MAIN_ABI : x86-linux-gnu detect
FILE=bins/abi_bins/elf/platforms/x86-linux-gnu-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x08048440 0x00000440 0x08048018 0x00000018 program
0x08048510 0x00000510 0x08049f08 0x00000f08 init
0x080484f0 0x000004f0 0x08049f0c 0x00000f0c fini
arch     x86
bits     32
machine  Intel 80386
EOF
RUN

NAME=MAIN_ABI : i686-w64-mingw32 detect
FILE=bins/abi_bins/pe/platforms/i686-w64-mingw32-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x004014e0 0x000008e0 ---------- 0x000000a8 program
0x004017f0 0x00000bf0 ---------- 0x00002c20 tls
0x004017a0 0x00000ba0 ---------- 0x00002c24 tls
arch     x86
bits     32
machine  i386
EOF
RUN

NAME=MAIN_ABI : x86_64-w64-mingw32 detect
FILE=bins/abi_bins/pe/platforms/x86_64-w64-mingw32-echo
CMDS=<<EOF
ie
iI~arch,machine,bits,vaddr
EOF
EXPECT=<<EOF
     vaddr      paddr     hvaddr      haddr type    
----------------------------------------------------
0x004014d0 0x00000ad0 ---------- 0x000000a8 program
arch     x86
bits     64
machine  AMD 64
EOF
RUN