NAME=Open LE cdogs.exe
FILE=bins/le/cdogs.exe
CMDS=iH~Signature[1]
EXPECT=<<EOF
LE
EOF
RUN

NAME=cdogs.exe entrypoint
FILE=bins/le/cdogs.exe
CMDS=ie:vaddr:quiet
EXPECT=<<EOF
0x00026058
EOF
RUN

NAME=cdogs.exe sections
FILE=bins/le/cdogs.exe
CMDS=iS
EXPECT=<<EOF
     paddr    size      vaddr   vsize align perm name   type flags 
-------------------------------------------------------------------
0x0000d200 0x2d000 0x00010000 0x2d000   0x0 -r-x obj1_1      
0x0003a200  0xfd8c 0x00040000 0x26030   0x0 -rw- obj2_1      
EOF
RUN

NAME=cdogs.exe relocations
FILE=bins/le/cdogs.exe
CMDS=<<EOF
ir > $relocs
cat $relocs~?
cat $relocs~0x00010~?
cat $relocs~0x00011~?
cat $relocs~0x00012~?
cat $relocs~0x00013~?
cat $relocs~0x00014~?
cat $relocs~0x00015~?
cat $relocs~0x00016~?
cat $relocs~0x00017~?
cat $relocs~0x00018~?
cat $relocs~0x00019~?
cat $relocs~0x0001a~?
cat $relocs~0x0001b~?
cat $relocs~0x0001c~?
cat $relocs~0x0001d~?
cat $relocs~0x0001e~?
cat $relocs~0x0001f~?
cat $relocs~0x00020~?
cat $relocs~0x00021~?
cat $relocs~0x00022~?
cat $relocs~0x00023~?
cat $relocs~0x00024~?
cat $relocs~0x00025~?
cat $relocs~0x00026~?
cat $relocs~0x00027~?
cat $relocs~0x00028~?
cat $relocs~0x00029~?
cat $relocs~0x0002a~?
cat $relocs~0x0002b~?
cat $relocs~0x0002c~?
cat $relocs~0x0002d~?
cat $relocs~0x0002e~?
cat $relocs~0x0002f~?
cat $relocs~0x00030~?
cat $relocs~0x00031~?
cat $relocs~0x00032~?
cat $relocs~0x00033~?
cat $relocs~0x00034~?
cat $relocs~0x00035~?
cat $relocs~0x00036~?
cat $relocs~0x00037~?
cat $relocs~0x00038~?
cat $relocs~0x00039~?
cat $relocs~0x0003a~?
cat $relocs~0x0003b~?
cat $relocs~0x0003c~?
cat $relocs~0x0003d~?
cat $relocs~0x0003e~?
cat $relocs~0x0003f~?
cat $relocs~0x00040~?
cat $relocs~0x00041~?
cat $relocs~0x00042~?
cat $relocs~0x00043~?
cat $relocs~0x00044~?
cat $relocs~0x00045~?
cat $relocs~0x00046~?
cat $relocs~0x00047~?
cat $relocs~0x00048~?
cat $relocs~0x00049~?
cat $relocs~0x0004a~?
cat $relocs~0x0004b~?
cat $relocs~0x0004c~?
cat $relocs~0x0004d~?
cat $relocs~0x0004e~?
cat $relocs~0x0004f~?
EOF
EXPECT=<<EOF
5237
151
160
102
133
208
172
337
212
143
325
262
174
219
305
296
330
260
322
409
186
415
502
181
307
380
113
85
240
124
198
179
186
222
159
110
318
274
24
366
356
179
103
128
157
128
8
0
0
282
533
670
17
2
0
0
95
81
45
6
0
0
381
561
588
EOF
RUN

NAME=Open LX GCC.EXE
FILE=bins/le/GCC.EXE
CMDS=iH~Signature[1]
EXPECT=<<EOF
LX
EOF
RUN

NAME=GCC.EXE entrypoint
FILE=bins/le/GCC.EXE
CMDS=ie:vaddr:quiet
EXPECT=<<EOF
0x00010000
EOF
RUN

NAME=GCC.EXE sections
FILE=bins/le/GCC.EXE
CMDS=iS
EXPECT=<<EOF
     paddr   size      vaddr     vsize align perm name   type flags 
--------------------------------------------------------------------
0x00001000 0xf000 0x00010000    0xf000   0x0 -r-x obj1_1      
0x00010000 0x1000 0x00020000    0x2804   0x0 -rw- obj2_1      
0x00000000    0x0 0x00030000 0x2000000   0x0 -rw- obj3_1      
0x00000000    0x0 0x02030000  0x800000   0x0 -rw- obj4_1      
EOF
RUN

NAME=GCC.EXE relocations
FILE=bins/le/GCC.EXE
CMDS=ir
EXPECT=<<EOF
     vaddr      paddr     target type   name         
-----------------------------------------------------
0x00010006 0x00001006 0x02832000 SET_32 emx_1
0x0001000d 0x0000100d 0x02832004 SET_32 emx_2
0x0001d210 0x0000e210 0x02832008 SET_32 doscalls_273
0x0001d234 0x0000e234 0x0283200c SET_32 doscalls_253
0x0001d266 0x0000e266 0x02832010 SET_32 doscalls_283
0x0001d282 0x0000e282 0x02832014 SET_32 doscalls_229
0x0001d2f2 0x0000e2f2 0x02832018 SET_32 doscalls_257
0x0001d389 0x0000e389 0x0283201c SET_32 doscalls_282
0x0001d39f 0x0000e39f 0x02832018 SET_32 doscalls_257
0x0001d3d9 0x0000e3d9 0x02832020 SET_32 doscalls_281
0x0001d3f4 0x0000e3f4 0x02832018 SET_32 doscalls_257
EOF
RUN

NAME=GCC.EXE linked libs
FILE=bins/le/GCC.EXE
CMDS=il
EXPECT=<<EOF
library  
---------
emx
doscalls
EOF
RUN

NAME=Open LX GNUGREP.DLL
FILE=bins/le/GNUGREP.DLL
CMDS=iH~Signature[1]
EXPECT=<<EOF
LX
EOF
RUN

NAME=GNUGREP.DLL entrypoint
FILE=bins/le/GNUGREP.DLL
CMDS=ie:vaddr:quiet
EXPECT=<<EOF
0x00010000
0x00010ddc
EOF
RUN

NAME=GNUGREP.DLL symbol
FILE=bins/le/GNUGREP.DLL
CMDS=is
EXPECT=<<EOF
nth      paddr      vaddr bind   type size lib name            
---------------------------------------------------------------
  1 0x000023dc 0x00010ddc GLOBAL UNK     0     grepmain
  2 0x00000000 0x00043000 GLOBAL UNK     0     imp.EMXLIBC_513
  3 0x00000000 0x00043004 GLOBAL UNK     0     imp.emx_2
  4 0x00000000 0x00043008 GLOBAL UNK     0     imp.EMXLIBC_770
  5 0x00000000 0x0004300c GLOBAL UNK     0     imp.EMXLIBC_712
  6 0x00000000 0x00043010 GLOBAL UNK     0     imp.EMXLIBC_521
  7 0x00000000 0x00043014 GLOBAL UNK     0     imp.EMXLIBC_205
  8 0x00000000 0x00043018 GLOBAL UNK     0     imp.EMXLIBC_402
  9 0x00000000 0x0004301c GLOBAL UNK     0     imp.EMXLIBC_595
 10 0x00000000 0x00043020 GLOBAL UNK     0     imp.EMXLIBC_403
 11 0x00000000 0x00043024 GLOBAL UNK     0     imp.EMXLIBC_534
 12 0x00000000 0x00043028 GLOBAL UNK     0     imp.EMXLIBC_214
 13 0x00000000 0x0004302c GLOBAL UNK     0     imp.EMXLIBC_218
 14 0x00000000 0x00043030 GLOBAL UNK     0     imp.EMXLIBC_219
 15 0x00000000 0x00043034 GLOBAL UNK     0     imp.EMXLIBC_221
 16 0x00000000 0x00043038 GLOBAL UNK     0     imp.EMXLIBC_545
 17 0x00000000 0x0004303c GLOBAL UNK     0     imp.EMXLIBC_801
 18 0x00000000 0x00043040 GLOBAL UNK     0     imp.EMXLIBC_546
 19 0x00000000 0x00043044 GLOBAL UNK     0     imp.EMXLIBC_548
 20 0x00000000 0x00043048 GLOBAL UNK     0     imp.EMXLIBC_228
 21 0x00000000 0x0004304c GLOBAL UNK     0     imp.EMXLIBC_557
 22 0x00000000 0x00043050 GLOBAL UNK     0     imp.EMXLIBC_817
 23 0x00000000 0x00043054 GLOBAL UNK     0     imp.EMXLIBC_705
 24 0x00000000 0x00043058 GLOBAL UNK     0     imp.EMXLIBC_520
 25 0x00000000 0x0004305c GLOBAL UNK     0     imp.EMXLIBC_716
 26 0x00000000 0x00043060 GLOBAL UNK     0     imp.EMXLIBC_525
 27 0x00000000 0x00043064 GLOBAL UNK     0     imp.EMXLIBC_400
 28 0x00000000 0x00043068 GLOBAL UNK     0     imp.EMXLIBC_215
 29 0x00000000 0x0004306c GLOBAL UNK     0     imp.EMXLIBC_541
 30 0x00000000 0x00043070 GLOBAL UNK     0     imp.EMXLIBC_223
 31 0x00000000 0x00043074 GLOBAL UNK     0     imp.EMXLIBC_504
 32 0x00000000 0x00043078 GLOBAL UNK     0     imp.EMXLIBC_700
 33 0x00000000 0x0004307c GLOBAL UNK     0     imp.EMXLIBC_509
 34 0x00000000 0x00043080 GLOBAL UNK     0     imp.EMXLIBC_761
 35 0x00000000 0x00043084 GLOBAL UNK     0     imp.EMXLIBC_315
 36 0x00000000 0x00043088 GLOBAL UNK     0     imp.EMXLIBC_401
 37 0x00000000 0x0004308c GLOBAL UNK     0     imp.EMXLIBC_213
 38 0x00000000 0x00043090 GLOBAL UNK     0     imp.GNUREGEX_4
 39 0x00000000 0x00043094 GLOBAL UNK     0     imp.GNUREGEX_6
 40 0x00000000 0x00043098 GLOBAL UNK     0     imp.GNUREGEX_9
 41 0x00000000 0x0004309c GLOBAL UNK     0     imp.GNUREGEX_12
 42 0x00000000 0x000430a0 GLOBAL UNK     0     imp.EMXLIBC_207
EOF
RUN

NAME=GNUGREP.DLL sections
FILE=bins/le/GNUGREP.DLL
CMDS=iS
EXPECT=<<EOF
     paddr   size      vaddr  vsize align perm name   type flags 
-----------------------------------------------------------------
0x00001600 0x7e00 0x00010000 0x8000   0x0 -r-x obj1_1      
0x00009400  0x200 0x00020000 0x1000   0x0 -r-x obj2_1      
0x00009600  0x200 0x00030000 0x1000   0x0 -r-x obj3_1      
0x00001400  0x200 0x00040000 0x1000   0x0 -rw- obj4_1      
EOF
RUN

NAME=GNUGREP.DLL linked libs
FILE=bins/le/GNUGREP.DLL
CMDS=il
EXPECT=<<EOF
library  
---------
GNUREGEX
EMXLIBC
emx
EOF
RUN

NAME=GNUGREP.DLL relocations
FILE=bins/le/GNUGREP.DLL
CMDS=<<EOF
ir > $relocs
cat $relocs~?
cat $relocs~GNUREGEX~?
cat $relocs~EMXLIBC~?
cat $relocs~emx~?
EOF
EXPECT=<<EOF
1168
8
183
184
EOF
RUN

NAME=LE: corkami cdogs.exe - open
FILE=bins/le/cdogs.exe
TIMEOUT=1320
CMDS=<<EOF
aac
# aaef
aflc
EOF
EXPECT=<<EOF
789
EOF
RUN

NAME=LE: corkami cdogs.exe - entrypoint
FILE=bins/le/cdogs.exe
CMDS=s
EXPECT=<<EOF
0x26058
EOF
RUN

NAME=LE: corkami cdogs.exe - pi 1
FILE=bins/le/cdogs.exe
CMDS=pi 1
EXPECT=<<EOF
jmp 0x260d0
EOF
RUN

NAME=DOSEXT.EXE open extender binary
FILE=bins/le/DOSEXT.EXE
CMDS=iH~header offset
EXPECT=<<EOF
MZ header offset: 0x352a4
LE header offset: 0x3803c
EOF
RUN

NAME=hellolx.dll unpack iterated page
FILE=bins/le/hellolx.dll
CMDS=p8 12 @ 0x20004
EXPECT=<<EOF
68656c6c6f206c7820646c6c
EOF
RUN

NAME=sdl.dll unpack compressed page
FILE=bins/le/sdl.dll
CMDS=p8 8 @ 0x20000
EXPECT=<<EOF
ccebfd9090909000
EOF
RUN

NAME=sdl.dll 16:32 fixup
FILE=bins/le/sdl.dll
CMDS=p8 6 @ 0x1000B
EXPECT=<<EOF
595005000200
EOF
RUN

NAME=sdl.dll 32 bit relative fixup
FILE=bins/le/sdl.dll
CMDS=p8 4 @ 0x202bd
EXPECT=<<EOF
3fad0500
EOF
RUN

NAME=sdl.dll 32 bit absolute fixup
FILE=bins/le/sdl.dll
CMDS=p8 4 @ 0x20b32
EXPECT=<<EOF
69010600
EOF
RUN
