1NAME=tifdir imports and sections
2FILE=bins/coff/tif_dir.obj
3CMDS=<<EOF
4ii
5iS
6EOF
7EXPECT=<<EOF
8[Imports]
9nth vaddr      bind type lib name
10---------------------------------
110   ---------- NONE FUNC     __TIFFmalloc
121   ---------- NONE FUNC     __TIFFrealloc
132   ---------- NONE FUNC     __TIFFmemset
143   ---------- NONE FUNC     __TIFFmemcpy
154   ---------- NONE FUNC     __TIFFfree
165   ---------- NONE FUNC     _TIFFFindField
176   ---------- NONE FUNC     _TIFFFieldWithTag
187   ---------- NONE FUNC     _TIFFReadDirectory
198   ---------- NONE FUNC     _TIFFErrorExt
209   ---------- NONE FUNC     _TIFFWarningExt
2110  ---------- NONE FUNC     _TIFFSwabShort
2211  ---------- NONE FUNC     _TIFFSwabLong
2312  ---------- NONE FUNC     _TIFFSwabLong8
2413  ---------- NONE FUNC     __TIFFGetFields
2514  ---------- NONE FUNC     __TIFFGetExifFields
2615  ---------- NONE FUNC     __TIFFSetupFields
2716  ---------- NONE FUNC     __TIFFFillStriles
2817  ---------- NONE FUNC     __TIFFNoPostDecode
2918  ---------- NONE FUNC     sym.imp.BitData
3019  ---------- NONE FUNC     sym.imp.BitData
3120  ---------- NONE FUNC     sym.imp.BitData
3221  ---------- NONE FUNC     sym.imp.BitData
3322  ---------- NONE FUNC     _TIFFSetCompressionScheme
3423  ---------- NONE FUNC     __TIFFDataSize
3524  ---------- NONE FUNC     __TIFFCheckMalloc
3625  ---------- NONE UNK      __fltused
37
38[Sections]
39
40nth paddr         size vaddr        vsize perm name
41---------------------------------------------------
420   0x000001cc    0x2f 0x00000000    0x2f ---- .drectve-0
431   0x000001fb  0x8670 0x00000030  0x8670 -r-- .debug$S-1
442   0x0000ad73    0x70 0x000086a0    0x70 -r-- .debug$T-2
453   0x0000ade3   0x625 0x00008710   0x625 -rw- .data-3
464   0x0000b408    0x54 0x00008d40    0x54 -r-- .rdata-4
475   0x00000000     0x8 0x00008da0     0x8 -rw- .bss-5
486   0x0000b45c  0x2895 0x00008db0  0x2895 -r-x .text$mn-6
497   0x0000e967     0x8 0x0000b650     0x8 -r-- .rdata-7
508   0x0000e96f     0x4 0x0000b660     0x4 -r-- .rdata-8
519   0x0000e973     0x8 0x0000b670     0x8 -r-- .rdata-9
5210  0x0000e97b     0x4 0x0000b680     0x4 -r-- .rdata-10
53
54EOF
55RUN
56
57NAME=tiny coff
58FILE=bins/coff/coff.obj
59CMDS=om;is;ir
60EXPECT=<<EOF
61 2 fd: 3 +0x00000064 0x00000000 - 0x00000026 r-x fmap..text_0
62 1 fd: 3 +0x0000008b 0x00000030 - 0x0000004b r-- fmap..data_1
63[Symbols]
64
65nth paddr      vaddr      bind   type size lib name
66---------------------------------------------------
670   ---------- ---------- NONE   UNK  4        imp.MessageBoxA
680   ---------- ---------- NONE   UNK  4        imp.ExitProcess
690   0x00000064 0x00000000 LOCAL  SECT 4        .text
700   0x00000064 0x00000000 GLOBAL FUNC 4        main
710   0x0000008b 0x00000030 LOCAL  SECT 4        .data
72[Relocations]
73
74vaddr      paddr      type   name
75---------------------------------
760x00000009 0x0000006d ADD_32 .data
770x00000010 0x00000074 ADD_32 .data
780x0000001c 0x00000080 ADD_32 MessageBoxA
790x00000023 0x00000087 ADD_32 ExitProcess
80
81
824 relocations
83EOF
84RUN
85
86NAME=tiny coff2
87FILE=bins/coff/coff2.obj
88CMDS=<<EOF
89om
90is~text
91s sym.__1FooBar__QAE_XZ
92pd 2
93EOF
94EXPECT=<<EOF
95 9 fd: 3 +0x0000017c 0x00000000 - 0x000000ee --- fmap..drectve_0
96 8 fd: 3 +0x0000026b 0x000000f0 - 0x00000b9f r-- fmap..debug_S_1
97 7 fd: 3 +0x00000d1b 0x00000ba0 - 0x00000c13 r-- fmap..debug_T_2
98 6 fd: 3 +0x00000d8f 0x00000c20 - 0x00000c4c r-x fmap..text_mn_3
99 5 fd: 3 +0x00000dbc 0x00000c50 - 0x00000d23 r-- fmap..debug_S_4
100 4 fd: 3 +0x00000ec2 0x00000d30 - 0x00000d59 r-x fmap..text_mn_5
101 3 fd: 3 +0x00000eec 0x00000d60 - 0x00000e33 r-- fmap..debug_S_6
102 2 fd: 3 +0x00000ff2 0x00000e40 - 0x00000e43 r-- fmap..rtc_IMZ_7
103 1 fd: 3 +0x00001000 0x00000e50 - 0x00000e53 r-- fmap..rtc_TMZ_8
1040   0x00000d8f 0x00000c20 LOCAL  SECT 4        .text$mn
1050   0x00000ec2 0x00000d30 LOCAL  SECT 4        .text$mn
106            ;-- section..text_mn_5:
107            ;-- .text$mn:
108            ;-- ??1FooBar@@QAE@XZ:
109            0x00000d30      55             push ebp                    ; [05] -r-x section size 42 named .text$mn-5
110            0x00000d31      8bec           mov ebp, esp
111EOF
112RUN
113
114NAME=patched reloc x86
115ARGS=-e io.cache=1
116FILE=bins/coff/tif_dir.obj
117CMDS=<<EOF
118af @ sym._TIFFGetField
119pd 1 @ reloc._TIFFVGetField-1
120axt @ sym._TIFFVGetField
121pd 1 @ sym._TIFFVGetField+0xe
122pd 1 @ sym.imp._TIFFFindField
123EOF
124EXPECT=<<EOF
125|           0x00008dbd      e80e000000     call sym._TIFFVGetField     ; RELOC 32 _TIFFVGetField @ 0x00008dd0
126sym._TIFFGetField 0x8dbd [CALL] call sym._TIFFVGetField
127|           0x00008dde      e8ad280000     call _TIFFFindField
128            ; CALL XREF from sym._TIFFVGetField @ 0x8dde
129            ;-- reloc._TIFFFindField:
130            ;-- _TIFFFindField:
131            0x0000b690      .dword 0x00000000                          ; RELOC 32 _TIFFFindField
132EOF
133RUN
134
135NAME=patching REL32 amd64
136ARGS=-e io.cache=1
137FILE=bins/coff/coff.obj
138CMDS=<<EOF
139pd 2 @ sym.main+6
140EOF
141EXPECT=<<EOF
142            0x00000006      4c8d05230000.  lea r8, [0x00000030]        ; sym..data ; "Win64 assembly"; RELOC 32 .data @ 0x00000030
143            0x0000000d      488d152b0000.  lea rdx, [0x0000003f]       ; str.Coffee_time_ ; "Coffee time!"; RELOC 32 .data @ 0x00000030 + 0xf
144EOF
145RUN
146