blob: 1f11a853df28626bd6931eff1ee7f861f9afd397 [file] [log] [blame]
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +00001; RUN: llvm-rc /V %p/Inputs/parser-correct-everything.rc | FileCheck %s --check-prefix PGOOD
2
3; PGOOD: Icon (meh): "hello.bmp"
4; PGOOD-NEXT: Icon (Icon): "Icon"
5; PGOOD-NEXT: Language: 5, Sublanguage: 12
6; PGOOD-NEXT: StringTable:
7; PGOOD-NEXT: Option: Language: 1, Sublanguage: 1
8; PGOOD-NEXT: Option: Characteristics: 500
9; PGOOD-NEXT: Option: Language: 3, Sublanguage: 4
10; PGOOD-NEXT: Option: Version: 14
11; PGOOD-NEXT: 1 => "hello"
12; PGOOD-NEXT: 2 => "world"
13; PGOOD-NEXT: StringTable:
Marek Sokolowski72aa9372017-08-28 21:59:54 +000014; PGOOD-NEXT: HTML (500): "index.html"
15; PGOOD-NEXT: Cursor (Name): "hello.ico"
Marek Sokolowski7f110522017-08-28 22:58:31 +000016; PGOOD-NEXT: Accelerators (12):
17; PGOOD-NEXT: Option: Version: 5000
18; PGOOD-NEXT: Option: Language: 0, Sublanguage: 2
19; PGOOD-NEXT: Accelerator: "^C" 10
20; PGOOD-NEXT: Accelerator: 14 11
21; PGOOD-NEXT: Accelerator: 5 12 VIRTKEY
22; PGOOD-NEXT: Accelerator: 0 0 ASCII
23; PGOOD-NEXT: Accelerator: 1 1 VIRTKEY CONTROL
24; PGOOD-NEXT: Accelerator: 2 2 VIRTKEY CONTROL
25; PGOOD-NEXT: Accelerator: 3 3 ASCII VIRTKEY NOINVERT ALT SHIFT CONTROL
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +000026; PGOOD-NEXT: Menu (LLVMTest):
27; PGOOD-NEXT: Option: Language: 4, Sublanguage: 1
28; PGOOD-NEXT: Menu list starts
29; PGOOD-NEXT: Popup ("&OneMenu"):
30; PGOOD-NEXT: Menu list starts
31; PGOOD-NEXT: Popup ("Menu&1"):
32; PGOOD-NEXT: Menu list starts
33; PGOOD-NEXT: MenuItem ("Item&1"), ID = 301 CHECKED MENUBREAK
34; PGOOD-NEXT: MenuItem ("Item&2"), ID = 302 CHECKED MENUBARBREAK
35; PGOOD-NEXT: MenuItem ("Item&3"), ID = 303 HELP INACTIVE MENUBREAK
36; PGOOD-NEXT: MenuItem ("Item&4"), ID = 304 GRAYED
37; PGOOD-NEXT: Menu list ends
38; PGOOD-NEXT: Popup ("Menu&2"):
39; PGOOD-NEXT: Menu list starts
40; PGOOD-NEXT: MenuItem ("&A"), ID = 401
41; PGOOD-NEXT: MenuItem ("&B"), ID = 402
42; PGOOD-NEXT: Menu list ends
43; PGOOD-NEXT: Menu list ends
44; PGOOD-NEXT: Popup ("&Items"):
45; PGOOD-NEXT: Menu list starts
46; PGOOD-NEXT: MenuItem ("&Row"), ID = 500
47; PGOOD-NEXT: MenuItem ("&Column"), ID = 501 CHECKED
48; PGOOD-NEXT: Menu separator
49; PGOOD-NEXT: MenuItem ("&Word"), ID = 502
50; PGOOD-NEXT: Menu list ends
51; PGOOD-NEXT: Menu list ends
Marek Sokolowski4ac54d92017-08-29 16:49:59 +000052; PGOOD-NEXT: DialogEx (14): loc: (50, 60), size: [10, 20], help ID: 500
53; PGOOD-NEXT: Option: Language: 1, Sublanguage: 2
54; PGOOD-NEXT: Option: Characteristics: 50
55; PGOOD-NEXT: Option: Version: 100
56; PGOOD-NEXT: Option: Font: size = 12, face = "Arial"
57; PGOOD-NEXT: Option: Caption: "RC parser dialog"
58; PGOOD-NEXT: Option: Style: 332340
59; PGOOD-NEXT: Control (14): LTEXT, title: "Hello world!", loc: (20, 20), size: [50, 50]
60; PGOOD-NEXT: Control (50): RTEXT, title: "Heh", loc: (51, 52), size: [53, 54], style: 55, ext. style: 56
61; PGOOD-NEXT: Control (1): CTEXT, title: "Muuuu", loc: (2, 3), size: [4, 5], style: 6, ext. style: 7, help ID: 8
62; PGOOD-NEXT: Control (1): PUSHBUTTON, title: "Muuuu", loc: (2, 3), size: [4, 5], style: 6, ext. style: 7, help ID: 8
63; PGOOD-NEXT: Control (1): DEFPUSHBUTTON, title: "Muuuu", loc: (2, 3), size: [4, 5], style: 6
64; PGOOD-NEXT: Control (5): EDITTEXT, title: , loc: (1, 2), size: [4, 7], style: 8
65; PGOOD-NEXT: Dialog (25): loc: (1, 2), size: [3, 4], help ID: 0
66; PGOOD-NEXT: DialogEx (26): loc: (1, 2), size: [3, 4], help ID: 0
Marek Sokolowskifb74cb12017-09-28 22:41:38 +000067; PGOOD-NEXT: VersionInfo (1):
68; PGOOD-NEXT: Fixed: FILEVERSION: 1 2 3 4
69; PGOOD-NEXT: Fixed: PRODUCTVERSION: 5 6 7 8
70; PGOOD-NEXT: Fixed: FILEFLAGSMASK: 50
71; PGOOD-NEXT: Fixed: FILEFLAGS: 555
72; PGOOD-NEXT: Fixed: FILEOS: 110
73; PGOOD-NEXT: Fixed: FILETYPE: 555555
74; PGOOD-NEXT: Fixed: FILESUBTYPE: 14
75; PGOOD-NEXT: Start of block (name: )
76; PGOOD-NEXT: Start of block (name: "StringFileInfo")
77; PGOOD-NEXT: Start of block (name: "040904E4")
78; PGOOD-NEXT: "CompanyName" => "a"
79; PGOOD-NEXT: "FileDescription" => "b"
80; PGOOD-NEXT: "FileVersion" => "c"
81; PGOOD-NEXT: "InternalName" => "d"
82; PGOOD-NEXT: "LegalCopyright" => "e"
83; PGOOD-NEXT: "LegalTrademarks1" => "f"
84; PGOOD-NEXT: "LegalTrademarks2" => "g"
85; PGOOD-NEXT: "OriginalFilename" => L"h"
86; PGOOD-NEXT: "ProductName" => "ii" 2 3
87; PGOOD-NEXT: "ProductVersion" =>
88; PGOOD-NEXT: End of block
89; PGOOD-NEXT: End of block
90; PGOOD-NEXT: Start of block (name: "VarFileInfo")
91; PGOOD-NEXT: "Translation" => 1033 1252
92; PGOOD-NEXT: End of block
93; PGOOD-NEXT: End of block
94
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +000095
96
Marek Sokolowski72aa9372017-08-28 21:59:54 +000097; RUN: not llvm-rc /V %p/Inputs/parser-stringtable-no-string.rc 2>&1 | FileCheck %s --check-prefix PSTRINGTABLE1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +000098
99; PSTRINGTABLE1: llvm-rc: Error parsing file: expected string, got }
100
101
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000102; RUN: not llvm-rc /V %p/Inputs/parser-stringtable-weird-option.rc 2>&1 | FileCheck %s --check-prefix PSTRINGTABLE2
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000103
104; PSTRINGTABLE2: llvm-rc: Error parsing file: expected optional statement type, BEGIN or '{', got NONSENSETYPE
105
106
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000107; RUN: not llvm-rc /V %p/Inputs/parser-eof.rc 2>&1 | FileCheck %s --check-prefix PEOF
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000108
109; PEOF: llvm-rc: Error parsing file: expected integer, got <EOF>
110
111
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000112; RUN: not llvm-rc /V %p/Inputs/parser-no-characteristics-arg.rc 2>&1 | FileCheck %s --check-prefix PCHARACTERISTICS1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000113
114; PCHARACTERISTICS1: llvm-rc: Error parsing file: expected integer, got BEGIN
115
116
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000117; RUN: not llvm-rc /V %p/Inputs/parser-nonsense-token.rc 2>&1 | FileCheck %s --check-prefix PNONSENSE1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000118
119; PNONSENSE1: llvm-rc: Error parsing file: expected int or identifier, got &
120
121
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000122; RUN: not llvm-rc /V %p/Inputs/parser-nonsense-type.rc 2>&1 | FileCheck %s --check-prefix PNONSENSE2
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000123
124; PNONSENSE2: llvm-rc: Error parsing file: expected resource type, got WORLD
125
126
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000127; RUN: not llvm-rc /V %p/Inputs/parser-nonsense-type-eof.rc 2>&1 | FileCheck %s --check-prefix PNONSENSE3
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000128
129; PNONSENSE3: llvm-rc: Error parsing file: expected int or identifier, got <EOF>
130
131
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000132; RUN: not llvm-rc /V %p/Inputs/parser-language-no-comma.rc 2>&1 | FileCheck %s --check-prefix PLANGUAGE1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000133
134; PLANGUAGE1: llvm-rc: Error parsing file: expected ',', got 7
135
136
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000137; RUN: not llvm-rc /V %p/Inputs/parser-language-too-many-commas.rc 2>&1 | FileCheck %s --check-prefix PLANGUAGE2
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000138
139; PLANGUAGE2: llvm-rc: Error parsing file: expected integer, got ,
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000140
141
142; RUN: not llvm-rc /V %p/Inputs/parser-html-bad-string.rc 2>&1 | FileCheck %s --check-prefix PHTML1
143
144; PHTML1: llvm-rc: Error parsing file: expected string, got ThisPassesInTheOriginalToolButDocSaysItShouldBeQuoted
145
146
147; RUN: not llvm-rc /V %p/Inputs/parser-html-extra-comma.rc 2>&1 | FileCheck %s --check-prefix PHTML2
148
149; PHTML2: llvm-rc: Error parsing file: expected string, got ,
Marek Sokolowski7f110522017-08-28 22:58:31 +0000150
151
152; RUN: not llvm-rc /V %p/Inputs/parser-accelerators-bad-flag.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS1
153
154; PACCELERATORS1: llvm-rc: Error parsing file: expected ASCII/VIRTKEY/NOINVERT/ALT/SHIFT/CONTROL, got HELLO
155
156
157; RUN: not llvm-rc /V %p/Inputs/parser-accelerators-bad-int-or-string.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS2
158
159; PACCELERATORS2: llvm-rc: Error parsing file: expected int or string, got NotIntOrString
160
161
162; RUN: not llvm-rc /V %p/Inputs/parser-accelerators-no-comma.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS3
163
164; PACCELERATORS3: llvm-rc: Error parsing file: expected int or string, got CONTROL
165
166
167; RUN: not llvm-rc /V %p/Inputs/parser-accelerators-no-comma-2.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS4
168
169; PACCELERATORS4: llvm-rc: Error parsing file: expected ',', got 10
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +0000170
171
172; RUN: not llvm-rc /V %p/Inputs/parser-menu-bad-id.rc 2>&1 | FileCheck %s --check-prefix PMENU1
173
174; PMENU1: llvm-rc: Error parsing file: expected integer, got A
175
176
177; RUN: not llvm-rc /V %p/Inputs/parser-menu-bad-flag.rc 2>&1 | FileCheck %s --check-prefix PMENU2
178
179; PMENU2: llvm-rc: Error parsing file: expected CHECKED/GRAYED/HELP/INACTIVE/MENUBARBREAK/MENUBREAK, got ERRONEOUS
180
181
182; RUN: not llvm-rc /V %p/Inputs/parser-menu-missing-block.rc 2>&1 | FileCheck %s --check-prefix PMENU3
183
184; PMENU3: llvm-rc: Error parsing file: expected '{', got POPUP
185
186
187; RUN: not llvm-rc /V %p/Inputs/parser-menu-misspelled-separator.rc 2>&1 | FileCheck %s --check-prefix PMENU4
188
189; PMENU4: llvm-rc: Error parsing file: expected SEPARATOR or string, got NOTSEPARATOR
Marek Sokolowski4ac54d92017-08-29 16:49:59 +0000190
191
192; RUN: not llvm-rc /V %p/Inputs/parser-dialog-cant-give-helpid.rc 2>&1 | FileCheck %s --check-prefix PDIALOG1
193
194; PDIALOG1: llvm-rc: Error parsing file: expected identifier, got ,
195
196
197; RUN: not llvm-rc /V %p/Inputs/parser-dialog-too-few-args.rc 2>&1 | FileCheck %s --check-prefix PDIALOG2
198
199; PDIALOG2: llvm-rc: Error parsing file: expected ',', got }
200
201
202; RUN: not llvm-rc /V %p/Inputs/parser-dialog-too-many-args.rc 2>&1 | FileCheck %s --check-prefix PDIALOG3
203
204; PDIALOG3: llvm-rc: Error parsing file: expected identifier, got ,
205
206
207; RUN: not llvm-rc /V %p/Inputs/parser-dialog-unknown-type.rc 2>&1 | FileCheck %s --check-prefix PDIALOG4
208
209; PDIALOG4: llvm-rc: Error parsing file: expected control type, END or '}', got UNKNOWN
210
211
212; RUN: not llvm-rc /V %p/Inputs/parser-dialog-unnecessary-string.rc 2>&1 | FileCheck %s --check-prefix PDIALOG5
213
214; PDIALOG5: llvm-rc: Error parsing file: expected integer, got "This shouldn't be here"
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000215
216
217; RUN: not llvm-rc /V %p/Inputs/parser-versioninfo-wrong-fixed.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO1
218
219; PVERSIONINFO1: llvm-rc: Error parsing file: expected fixed VERSIONINFO statement type, got WEIRDFIXED
220
221
222; RUN: not llvm-rc /V %p/Inputs/parser-versioninfo-named-main-block.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO2
223
224; PVERSIONINFO2: llvm-rc: Error parsing file: expected fixed VERSIONINFO statement type, got BLOCK
225
226
227; RUN: not llvm-rc /V %p/Inputs/parser-versioninfo-unnamed-inner-block.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO3
228
229; PVERSIONINFO3: llvm-rc: Error parsing file: expected string, got {
230
231
232; RUN: not llvm-rc /V %p/Inputs/parser-versioninfo-unnamed-value.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO4
233
234; PVERSIONINFO4: llvm-rc: Error parsing file: expected string, got END
235
236
237; RUN: not llvm-rc /V %p/Inputs/parser-versioninfo-bad-type.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO5
238
239; PVERSIONINFO5: llvm-rc: Error parsing file: expected BLOCK or VALUE, got INCORRECT
240
241
242; RUN: not llvm-rc /V %p/Inputs/parser-versioninfo-repeated-fixed.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO6
243
244; PVERSIONINFO6: llvm-rc: Error parsing file: expected yet unread fixed VERSIONINFO statement type, got FILEVERSION