blob: f54311202aa6ef822aec9c4878ee8ee08ecfba33 [file] [log] [blame]
Marek Sokolowski8f193432017-09-29 17:14:09 +00001; RUN: llvm-rc /dry-run /V %p/Inputs/parser-correct-everything.rc | FileCheck %s --check-prefix PGOOD
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +00002
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
Marek Sokolowskib5f39a02017-09-29 00:14:18 +000094; PGOOD-NEXT: User-defined (type: MYTYPE, name: MYNAME): "filename"
95; PGOOD-NEXT: User-defined (type: 600, name: 500): "other filename"
96; PGOOD-NEXT: User-defined (type: INTEGERS, name: HELLO): data = 1 2 3 4
97; PGOOD-NEXT: User-defined (type: STRINGS, name: HELLO): data = "1" "2" "3" "4"
98; PGOOD-NEXT: User-defined (type: MIXED, name: 4): data = 1 "2" 3 "4"
99
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000100
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000101
102
Marek Sokolowski8f193432017-09-29 17:14:09 +0000103; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-stringtable-no-string.rc 2>&1 | FileCheck %s --check-prefix PSTRINGTABLE1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000104
105; PSTRINGTABLE1: llvm-rc: Error parsing file: expected string, got }
106
107
Marek Sokolowski8f193432017-09-29 17:14:09 +0000108; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-stringtable-weird-option.rc 2>&1 | FileCheck %s --check-prefix PSTRINGTABLE2
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000109
110; PSTRINGTABLE2: llvm-rc: Error parsing file: expected optional statement type, BEGIN or '{', got NONSENSETYPE
111
112
Marek Sokolowski8f193432017-09-29 17:14:09 +0000113; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-eof.rc 2>&1 | FileCheck %s --check-prefix PEOF
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000114
Marek Sokolowski7e89ee72017-09-28 23:53:25 +0000115; PEOF: llvm-rc: Error parsing file: expected '-', '~', integer or '(', got <EOF>
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000116
117
Marek Sokolowski8f193432017-09-29 17:14:09 +0000118; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-no-characteristics-arg.rc 2>&1 | FileCheck %s --check-prefix PCHARACTERISTICS1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000119
Marek Sokolowski7e89ee72017-09-28 23:53:25 +0000120; PCHARACTERISTICS1: llvm-rc: Error parsing file: expected '-', '~', integer or '(', got BEGIN
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000121
122
Marek Sokolowski8f193432017-09-29 17:14:09 +0000123; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-nonsense-token.rc 2>&1 | FileCheck %s --check-prefix PNONSENSE1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000124
125; PNONSENSE1: llvm-rc: Error parsing file: expected int or identifier, got &
126
127
Marek Sokolowski8f193432017-09-29 17:14:09 +0000128; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-nonsense-type.rc 2>&1 | FileCheck %s --check-prefix PNONSENSE2
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000129
Marek Sokolowskib5f39a02017-09-29 00:14:18 +0000130; PNONSENSE2: llvm-rc: Error parsing file: expected filename, '{' or BEGIN, got <EOF>
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000131
132
Marek Sokolowski8f193432017-09-29 17:14:09 +0000133; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-nonsense-type-eof.rc 2>&1 | FileCheck %s --check-prefix PNONSENSE3
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000134
135; PNONSENSE3: llvm-rc: Error parsing file: expected int or identifier, got <EOF>
136
137
Marek Sokolowski8f193432017-09-29 17:14:09 +0000138; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-language-no-comma.rc 2>&1 | FileCheck %s --check-prefix PLANGUAGE1
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000139
140; PLANGUAGE1: llvm-rc: Error parsing file: expected ',', got 7
141
142
Marek Sokolowski8f193432017-09-29 17:14:09 +0000143; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-language-too-many-commas.rc 2>&1 | FileCheck %s --check-prefix PLANGUAGE2
Marek Sokolowski5cd3d5c2017-08-18 18:24:17 +0000144
Marek Sokolowski7e89ee72017-09-28 23:53:25 +0000145; PLANGUAGE2: llvm-rc: Error parsing file: expected '-', '~', integer or '(', got ,
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000146
147
Marek Sokolowski8f193432017-09-29 17:14:09 +0000148; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-html-bad-string.rc 2>&1 | FileCheck %s --check-prefix PHTML1
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000149
150; PHTML1: llvm-rc: Error parsing file: expected string, got ThisPassesInTheOriginalToolButDocSaysItShouldBeQuoted
151
152
Marek Sokolowski8f193432017-09-29 17:14:09 +0000153; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-html-extra-comma.rc 2>&1 | FileCheck %s --check-prefix PHTML2
Marek Sokolowski72aa9372017-08-28 21:59:54 +0000154
155; PHTML2: llvm-rc: Error parsing file: expected string, got ,
Marek Sokolowski7f110522017-08-28 22:58:31 +0000156
157
Marek Sokolowski8f193432017-09-29 17:14:09 +0000158; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-accelerators-bad-flag.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS1
Marek Sokolowski7f110522017-08-28 22:58:31 +0000159
160; PACCELERATORS1: llvm-rc: Error parsing file: expected ASCII/VIRTKEY/NOINVERT/ALT/SHIFT/CONTROL, got HELLO
161
162
Marek Sokolowski8f193432017-09-29 17:14:09 +0000163; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-accelerators-bad-int-or-string.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS2
Marek Sokolowski7f110522017-08-28 22:58:31 +0000164
165; PACCELERATORS2: llvm-rc: Error parsing file: expected int or string, got NotIntOrString
166
167
Marek Sokolowski8f193432017-09-29 17:14:09 +0000168; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-accelerators-no-comma.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS3
Marek Sokolowski7f110522017-08-28 22:58:31 +0000169
170; PACCELERATORS3: llvm-rc: Error parsing file: expected int or string, got CONTROL
171
172
Marek Sokolowski8f193432017-09-29 17:14:09 +0000173; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-accelerators-no-comma-2.rc 2>&1 | FileCheck %s --check-prefix PACCELERATORS4
Marek Sokolowski7f110522017-08-28 22:58:31 +0000174
175; PACCELERATORS4: llvm-rc: Error parsing file: expected ',', got 10
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +0000176
177
Marek Sokolowski8f193432017-09-29 17:14:09 +0000178; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-menu-bad-id.rc 2>&1 | FileCheck %s --check-prefix PMENU1
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +0000179
Marek Sokolowski7e89ee72017-09-28 23:53:25 +0000180; PMENU1: llvm-rc: Error parsing file: expected '-', '~', integer or '(', got A
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +0000181
182
Marek Sokolowski8f193432017-09-29 17:14:09 +0000183; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-menu-bad-flag.rc 2>&1 | FileCheck %s --check-prefix PMENU2
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +0000184
185; PMENU2: llvm-rc: Error parsing file: expected CHECKED/GRAYED/HELP/INACTIVE/MENUBARBREAK/MENUBREAK, got ERRONEOUS
186
187
Marek Sokolowski8f193432017-09-29 17:14:09 +0000188; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-menu-missing-block.rc 2>&1 | FileCheck %s --check-prefix PMENU3
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +0000189
190; PMENU3: llvm-rc: Error parsing file: expected '{', got POPUP
191
192
Marek Sokolowski8f193432017-09-29 17:14:09 +0000193; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-menu-misspelled-separator.rc 2>&1 | FileCheck %s --check-prefix PMENU4
Marek Sokolowski99ecb0e2017-08-28 23:46:30 +0000194
195; PMENU4: llvm-rc: Error parsing file: expected SEPARATOR or string, got NOTSEPARATOR
Marek Sokolowski4ac54d92017-08-29 16:49:59 +0000196
197
Marek Sokolowski8f193432017-09-29 17:14:09 +0000198; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-dialog-cant-give-helpid.rc 2>&1 | FileCheck %s --check-prefix PDIALOG1
Marek Sokolowski4ac54d92017-08-29 16:49:59 +0000199
200; PDIALOG1: llvm-rc: Error parsing file: expected identifier, got ,
201
202
Marek Sokolowski8f193432017-09-29 17:14:09 +0000203; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-dialog-too-few-args.rc 2>&1 | FileCheck %s --check-prefix PDIALOG2
Marek Sokolowski4ac54d92017-08-29 16:49:59 +0000204
205; PDIALOG2: llvm-rc: Error parsing file: expected ',', got }
206
207
Marek Sokolowski8f193432017-09-29 17:14:09 +0000208; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-dialog-too-many-args.rc 2>&1 | FileCheck %s --check-prefix PDIALOG3
Marek Sokolowski4ac54d92017-08-29 16:49:59 +0000209
210; PDIALOG3: llvm-rc: Error parsing file: expected identifier, got ,
211
212
Marek Sokolowski8f193432017-09-29 17:14:09 +0000213; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-dialog-unknown-type.rc 2>&1 | FileCheck %s --check-prefix PDIALOG4
Marek Sokolowski4ac54d92017-08-29 16:49:59 +0000214
215; PDIALOG4: llvm-rc: Error parsing file: expected control type, END or '}', got UNKNOWN
216
217
Marek Sokolowski8f193432017-09-29 17:14:09 +0000218; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-dialog-unnecessary-string.rc 2>&1 | FileCheck %s --check-prefix PDIALOG5
Marek Sokolowski4ac54d92017-08-29 16:49:59 +0000219
Marek Sokolowski7e89ee72017-09-28 23:53:25 +0000220; PDIALOG5: llvm-rc: Error parsing file: expected '-', '~', integer or '(', got "This shouldn't be here"
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000221
222
Marek Sokolowski8f193432017-09-29 17:14:09 +0000223; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-versioninfo-wrong-fixed.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO1
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000224
225; PVERSIONINFO1: llvm-rc: Error parsing file: expected fixed VERSIONINFO statement type, got WEIRDFIXED
226
227
Marek Sokolowski8f193432017-09-29 17:14:09 +0000228; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-versioninfo-named-main-block.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO2
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000229
230; PVERSIONINFO2: llvm-rc: Error parsing file: expected fixed VERSIONINFO statement type, got BLOCK
231
232
Marek Sokolowski8f193432017-09-29 17:14:09 +0000233; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-versioninfo-unnamed-inner-block.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO3
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000234
235; PVERSIONINFO3: llvm-rc: Error parsing file: expected string, got {
236
237
Marek Sokolowski8f193432017-09-29 17:14:09 +0000238; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-versioninfo-unnamed-value.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO4
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000239
240; PVERSIONINFO4: llvm-rc: Error parsing file: expected string, got END
241
242
Marek Sokolowski8f193432017-09-29 17:14:09 +0000243; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-versioninfo-bad-type.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO5
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000244
245; PVERSIONINFO5: llvm-rc: Error parsing file: expected BLOCK or VALUE, got INCORRECT
246
247
Marek Sokolowski8f193432017-09-29 17:14:09 +0000248; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-versioninfo-repeated-fixed.rc 2>&1 | FileCheck %s --check-prefix PVERSIONINFO6
Marek Sokolowskifb74cb12017-09-28 22:41:38 +0000249
250; PVERSIONINFO6: llvm-rc: Error parsing file: expected yet unread fixed VERSIONINFO statement type, got FILEVERSION
Marek Sokolowskib5f39a02017-09-29 00:14:18 +0000251
252
Marek Sokolowski8f193432017-09-29 17:14:09 +0000253; RUN: not llvm-rc /dry-run /V %p/Inputs/parser-user-invalid-contents.rc 2>&1 | FileCheck %s --check-prefix PUSER1
Marek Sokolowskib5f39a02017-09-29 00:14:18 +0000254
255; PUSER1: llvm-rc: Error parsing file: expected int or string, got InvalidToken