summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-rc
diff options
context:
space:
mode:
authorMarek Sokolowski <mnbvmar@gmail.com>2017-09-29 19:07:44 +0000
committerMarek Sokolowski <mnbvmar@gmail.com>2017-09-29 19:07:44 +0000
commit22fccd6408549d114a747cb1d8fb8363e59db6c9 (patch)
tree3852989f58b16c978ba4a94a20238a87dfc9d1ae /llvm/test/tools/llvm-rc
parent2b7fa1c6f648f5c1d441bb3ff97f090afa275735 (diff)
downloadbcm5719-llvm-22fccd6408549d114a747cb1d8fb8363e59db6c9.tar.gz
bcm5719-llvm-22fccd6408549d114a747cb1d8fb8363e59db6c9.zip
[llvm-rc] Serialize ACCELERATORS to .res files (serialization, pt 2).
This allows llvm-rc to serialize ACCELERATORS resources. Additionally, as this is the first type of resource to support basic optional resource statements (LANGUAGE, CHARACTERISTICS, VERSION), ACCELERATORS statement documentation: msdn.microsoft.com/en-us/library/windows/desktop/aa380610.aspx Accelerator table structure documentation: msdn.microsoft.com/en-us/library/windows/desktop/ms648010.aspx Optional resource statement fields are described in: msdn.microsoft.com/en-us/library/windows/desktop/ms648027.aspx Thanks for Nico Weber for his original work in this area. Differential Revision: https://reviews.llvm.org/D37824 llvm-svn: 314549
Diffstat (limited to 'llvm/test/tools/llvm-rc')
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-alt.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-control.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-shift.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-virtkey.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-id.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-key-id.rc3
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-control-nonalpha.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-long-virtkey.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-caret.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-type.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-only-caret.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-long.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-short.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators-virtual-nonalpha.rc4
-rw-r--r--llvm/test/tools/llvm-rc/Inputs/tag-accelerators.rc114
-rw-r--r--llvm/test/tools/llvm-rc/tag-accelerators.test157
16 files changed, 326 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-alt.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-alt.rc
new file mode 100644
index 00000000000..363263bfe4c
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-alt.rc
@@ -0,0 +1,4 @@
+2 ACCELERATORS {
+ "A", 15, ASCII, ALT
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-control.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-control.rc
new file mode 100644
index 00000000000..42d6a979253
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-control.rc
@@ -0,0 +1,4 @@
+2 ACCELERATORS {
+ "A", 15, ASCII, CONTROL
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-shift.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-shift.rc
new file mode 100644
index 00000000000..0e0daff10a5
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-shift.rc
@@ -0,0 +1,4 @@
+2 ACCELERATORS {
+ "A", 15, ASCII, SHIFT
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-virtkey.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-virtkey.rc
new file mode 100644
index 00000000000..35f8cd65354
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-ascii-virtkey.rc
@@ -0,0 +1,4 @@
+2 ACCELERATORS {
+ "A", 15, ASCII, VIRTKEY
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-id.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-id.rc
new file mode 100644
index 00000000000..c4bf97939bf
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-id.rc
@@ -0,0 +1,4 @@
+1 ACCELERATORS {
+ "A", 1234567, VIRTKEY
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-key-id.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-key-id.rc
new file mode 100644
index 00000000000..94b1b7cd0f5
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-bad-key-id.rc
@@ -0,0 +1,3 @@
+9 ACCELERATORS {
+ 1234567, 0, VIRTKEY
+}
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-control-nonalpha.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-control-nonalpha.rc
new file mode 100644
index 00000000000..d9c083fa0d6
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-control-nonalpha.rc
@@ -0,0 +1,4 @@
+100 ACCELERATORS {
+ "^5", 1, ASCII
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-long-virtkey.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-long-virtkey.rc
new file mode 100644
index 00000000000..e8c24b62cb1
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-long-virtkey.rc
@@ -0,0 +1,4 @@
+100 ACCELERATORS {
+ "^X", 10, VIRTKEY
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-caret.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-caret.rc
new file mode 100644
index 00000000000..24798008018
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-caret.rc
@@ -0,0 +1,4 @@
+50 ACCELERATORS {
+ "XY", 1, ASCII
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-type.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-type.rc
new file mode 100644
index 00000000000..5ee134eaa5f
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-no-type.rc
@@ -0,0 +1,4 @@
+5 ACCELERATORS {
+ 10, 42
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-only-caret.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-only-caret.rc
new file mode 100644
index 00000000000..48c313f84c7
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-only-caret.rc
@@ -0,0 +1,4 @@
+555 ACCELERATORS {
+ "^", 100
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-long.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-long.rc
new file mode 100644
index 00000000000..79fd326de5e
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-long.rc
@@ -0,0 +1,4 @@
+12 ACCELERATORS {
+ "Hello", 5, ASCII
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-short.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-short.rc
new file mode 100644
index 00000000000..96f75557e38
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-too-short.rc
@@ -0,0 +1,4 @@
+10 ACCELERATORS {
+ "", 12, VIRTKEY
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-virtual-nonalpha.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-virtual-nonalpha.rc
new file mode 100644
index 00000000000..210d3cbfb8a
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators-virtual-nonalpha.rc
@@ -0,0 +1,4 @@
+42 ACCELERATORS {
+ "]", 1, VIRTKEY
+}
+
diff --git a/llvm/test/tools/llvm-rc/Inputs/tag-accelerators.rc b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators.rc
new file mode 100644
index 00000000000..90e7f926cc0
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/Inputs/tag-accelerators.rc
@@ -0,0 +1,114 @@
+1 ACCELERATORS
+VERSION 700
+LANGUAGE 5, 1
+{
+ "a", 3
+ "a", 4, ASCII
+ "a", 5, VIRTKEY
+ "A", 6
+ "A", 7, ASCII
+ "A", 8, VIRTKEY
+ "1", 9
+ "1", 10, ASCII
+ "1", 11, VIRTKEY
+ "$", 12
+ "$", 13, ASCII
+ "]", 15
+ "]", 16, ASCII
+ "^a", 18
+ "^a", 19, ASCII
+ 0, 37, ASCII
+ 0, 38, VIRTKEY
+ 1, 40, ASCII
+ 1, 41, VIRTKEY
+ 127, 43, ASCII
+ 127, 44, VIRTKEY
+ 128, 46, ASCII
+ 128, 47, VIRTKEY
+ 255, 49, ASCII
+ 255, 50, VIRTKEY
+ 256, 52, ASCII
+ 256, 53, VIRTKEY
+ "^A", 66
+ "^A", 67, ASCII
+ 54321, 70, ASCII
+ 54321, 71, VIRTKEY
+}
+
+2 ACCELERATORS {
+ 42, 0, ASCII
+ 42, 1, VIRTKEY
+ 42, 2, ASCII, NOINVERT
+ 42, 3, VIRTKEY, NOINVERT
+ 42, 4, VIRTKEY, CONTROL
+ 42, 5, VIRTKEY, SHIFT
+ 42, 6, VIRTKEY, ALT
+ 42, 7, VIRTKEY, NOINVERT, CONTROL
+ 42, 8, VIRTKEY, NOINVERT, SHIFT
+ 42, 9, VIRTKEY, NOINVERT, ALT
+ 42, 10, VIRTKEY, CONTROL, SHIFT
+ 42, 11, VIRTKEY, CONTROL, ALT
+ 42, 12, VIRTKEY, SHIFT, ALT
+ 42, 13, VIRTKEY, NOINVERT, CONTROL, SHIFT
+ 42, 14, VIRTKEY, NOINVERT, CONTROL, ALT
+ 42, 15, VIRTKEY, NOINVERT, SHIFT, ALT
+ 42, 16, VIRTKEY, CONTROL, SHIFT, ALT
+ 42, 17, VIRTKEY, NOINVERT, CONTROL, SHIFT, ALT
+ "f", 18, ASCII
+ "f", 19, VIRTKEY
+ "f", 20, ASCII, NOINVERT
+ "f", 21, VIRTKEY, NOINVERT
+ "f", 22, VIRTKEY, CONTROL
+ "f", 23, VIRTKEY, SHIFT
+ "f", 24, VIRTKEY, ALT
+ "f", 25, VIRTKEY, NOINVERT, CONTROL
+ "f", 26, VIRTKEY, NOINVERT, SHIFT
+ "f", 27, VIRTKEY, NOINVERT, ALT
+ "f", 28, VIRTKEY, CONTROL, SHIFT
+ "f", 29, VIRTKEY, CONTROL, ALT
+ "f", 30, VIRTKEY, SHIFT, ALT
+ "f", 31, VIRTKEY, NOINVERT, CONTROL, SHIFT
+ "f", 32, VIRTKEY, NOINVERT, CONTROL, ALT
+ "f", 33, VIRTKEY, NOINVERT, SHIFT, ALT
+ "f", 34, VIRTKEY, CONTROL, SHIFT, ALT
+ "f", 35, VIRTKEY, NOINVERT, CONTROL, SHIFT, ALT
+ "U", 36, ASCII
+ "U", 37, VIRTKEY
+ "U", 38, ASCII, NOINVERT
+ "U", 39, VIRTKEY, NOINVERT
+ "U", 40, VIRTKEY, CONTROL
+ "U", 41, VIRTKEY, SHIFT
+ "U", 42, VIRTKEY, ALT
+ "U", 43, VIRTKEY, NOINVERT, CONTROL
+ "U", 44, VIRTKEY, NOINVERT, SHIFT
+ "U", 45, VIRTKEY, NOINVERT, ALT
+ "U", 46, VIRTKEY, CONTROL, SHIFT
+ "U", 47, VIRTKEY, CONTROL, ALT
+ "U", 48, VIRTKEY, SHIFT, ALT
+ "U", 49, VIRTKEY, NOINVERT, CONTROL, SHIFT
+ "U", 50, VIRTKEY, NOINVERT, CONTROL, ALT
+ "U", 51, VIRTKEY, NOINVERT, SHIFT, ALT
+ "U", 52, VIRTKEY, CONTROL, SHIFT, ALT
+ "U", 53, VIRTKEY, NOINVERT, CONTROL, SHIFT, ALT
+ "7", 54, ASCII
+ "7", 55, VIRTKEY
+ "7", 56, ASCII, NOINVERT
+ "7", 57, VIRTKEY, NOINVERT
+ "7", 58, VIRTKEY, CONTROL
+ "7", 59, VIRTKEY, SHIFT
+ "7", 60, VIRTKEY, ALT
+ "7", 61, VIRTKEY, NOINVERT, CONTROL
+ "7", 62, VIRTKEY, NOINVERT, SHIFT
+ "7", 63, VIRTKEY, NOINVERT, ALT
+ "7", 64, VIRTKEY, CONTROL, SHIFT
+ "7", 65, VIRTKEY, CONTROL, ALT
+ "7", 66, VIRTKEY, SHIFT, ALT
+ "7", 67, VIRTKEY, NOINVERT, CONTROL, SHIFT
+ "7", 68, VIRTKEY, NOINVERT, CONTROL, ALT
+ "7", 69, VIRTKEY, NOINVERT, SHIFT, ALT
+ "7", 70, VIRTKEY, CONTROL, SHIFT, ALT
+ "7", 71, VIRTKEY, NOINVERT, CONTROL, SHIFT, ALT
+ "^j", 72, ASCII
+ "^j", 73, ASCII, NOINVERT
+}
+
diff --git a/llvm/test/tools/llvm-rc/tag-accelerators.test b/llvm/test/tools/llvm-rc/tag-accelerators.test
new file mode 100644
index 00000000000..093a0bddbb6
--- /dev/null
+++ b/llvm/test/tools/llvm-rc/tag-accelerators.test
@@ -0,0 +1,157 @@
+; RUN: llvm-rc /FO %t %p/Inputs/tag-accelerators.rc
+; RUN: llvm-readobj %t | FileCheck %s --check-prefix=ACCELERATORS
+
+; ACCELERATORS: Resource type (int): 9
+; ACCELERATORS-NEXT: Resource name (int): 1
+; ACCELERATORS-NEXT: Data version: 0
+; ACCELERATORS-NEXT: Memory flags: 0x30
+; ACCELERATORS-NEXT: Language ID: 1029
+; ACCELERATORS-NEXT: Version (major): 0
+; ACCELERATORS-NEXT: Version (minor): 700
+; ACCELERATORS-NEXT: Characteristics: 0
+; ACCELERATORS-NEXT: Data size: 248
+; ACCELERATORS-NEXT: Data: (
+; ACCELERATORS-NEXT: 0000: 00006100 03000000 00006100 04000000 |..a.......a.....|
+; ACCELERATORS-NEXT: 0010: 01004100 05000000 00004100 06000000 |..A.......A.....|
+; ACCELERATORS-NEXT: 0020: 00004100 07000000 01004100 08000000 |..A.......A.....|
+; ACCELERATORS-NEXT: 0030: 00003100 09000000 00003100 0A000000 |..1.......1.....|
+; ACCELERATORS-NEXT: 0040: 01003100 0B000000 00002400 0C000000 |..1.......$.....|
+; ACCELERATORS-NEXT: 0050: 00002400 0D000000 00005D00 0F000000 |..$.......].....|
+; ACCELERATORS-NEXT: 0060: 00005D00 10000000 00000100 12000000 |..].............|
+; ACCELERATORS-NEXT: 0070: 00000100 13000000 00000000 25000000 |............%...|
+; ACCELERATORS-NEXT: 0080: 01000000 26000000 00000100 28000000 |....&.......(...|
+; ACCELERATORS-NEXT: 0090: 01000100 29000000 00007F00 2B000000 |....).......+...|
+; ACCELERATORS-NEXT: 00A0: 01007F00 2C000000 00008000 2E000000 |....,...........|
+; ACCELERATORS-NEXT: 00B0: 01008000 2F000000 0000FF00 31000000 |..../.......1...|
+; ACCELERATORS-NEXT: 00C0: 0100FF00 32000000 00000001 34000000 |....2.......4...|
+; ACCELERATORS-NEXT: 00D0: 01000001 35000000 00000100 42000000 |....5.......B...|
+; ACCELERATORS-NEXT: 00E0: 00000100 43000000 000031D4 46000000 |....C.....1.F...|
+; ACCELERATORS-NEXT: 00F0: 810031D4 47000000 |..1.G...|
+; ACCELERATORS-NEXT: )
+
+; ACCELERATORS-DAG: Resource type (int): 9
+; ACCELERATORS-NEXT: Resource name (int): 2
+; ACCELERATORS-NEXT: Data version: 0
+; ACCELERATORS-NEXT: Memory flags: 0x30
+; ACCELERATORS-NEXT: Language ID: 1033
+; ACCELERATORS-NEXT: Version (major): 0
+; ACCELERATORS-NEXT: Version (minor): 0
+; ACCELERATORS-NEXT: Characteristics: 0
+; ACCELERATORS-NEXT: Data size: 592
+; ACCELERATORS-NEXT: Data: (
+; ACCELERATORS-NEXT: 0000: 00002A00 00000000 01002A00 01000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0010: 02002A00 02000000 03002A00 03000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0020: 09002A00 04000000 05002A00 05000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0030: 11002A00 06000000 0B002A00 07000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0040: 07002A00 08000000 13002A00 09000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0050: 0D002A00 0A000000 19002A00 0B000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0060: 15002A00 0C000000 0F002A00 0D000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0070: 1B002A00 0E000000 17002A00 0F000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0080: 1D002A00 10000000 1F002A00 11000000 |..*.......*.....|
+; ACCELERATORS-NEXT: 0090: 00006600 12000000 01004600 13000000 |..f.......F.....|
+; ACCELERATORS-NEXT: 00A0: 02006600 14000000 03004600 15000000 |..f.......F.....|
+; ACCELERATORS-NEXT: 00B0: 09004600 16000000 05004600 17000000 |..F.......F.....|
+; ACCELERATORS-NEXT: 00C0: 11004600 18000000 0B004600 19000000 |..F.......F.....|
+; ACCELERATORS-NEXT: 00D0: 07004600 1A000000 13004600 1B000000 |..F.......F.....|
+; ACCELERATORS-NEXT: 00E0: 0D004600 1C000000 19004600 1D000000 |..F.......F.....|
+; ACCELERATORS-NEXT: 00F0: 15004600 1E000000 0F004600 1F000000 |..F.......F.....|
+; ACCELERATORS-NEXT: 0100: 1B004600 20000000 17004600 21000000 |..F. .....F.!...|
+; ACCELERATORS-NEXT: 0110: 1D004600 22000000 1F004600 23000000 |..F.".....F.#...|
+; ACCELERATORS-NEXT: 0120: 00005500 24000000 01005500 25000000 |..U.$.....U.%...|
+; ACCELERATORS-NEXT: 0130: 02005500 26000000 03005500 27000000 |..U.&.....U.'...|
+; ACCELERATORS-NEXT: 0140: 09005500 28000000 05005500 29000000 |..U.(.....U.)...|
+; ACCELERATORS-NEXT: 0150: 11005500 2A000000 0B005500 2B000000 |..U.*.....U.+...|
+; ACCELERATORS-NEXT: 0160: 07005500 2C000000 13005500 2D000000 |..U.,.....U.-...|
+; ACCELERATORS-NEXT: 0170: 0D005500 2E000000 19005500 2F000000 |..U.......U./...|
+; ACCELERATORS-NEXT: 0180: 15005500 30000000 0F005500 31000000 |..U.0.....U.1...|
+; ACCELERATORS-NEXT: 0190: 1B005500 32000000 17005500 33000000 |..U.2.....U.3...|
+; ACCELERATORS-NEXT: 01A0: 1D005500 34000000 1F005500 35000000 |..U.4.....U.5...|
+; ACCELERATORS-NEXT: 01B0: 00003700 36000000 01003700 37000000 |..7.6.....7.7...|
+; ACCELERATORS-NEXT: 01C0: 02003700 38000000 03003700 39000000 |..7.8.....7.9...|
+; ACCELERATORS-NEXT: 01D0: 09003700 3A000000 05003700 3B000000 |..7.:.....7.;...|
+; ACCELERATORS-NEXT: 01E0: 11003700 3C000000 0B003700 3D000000 |..7.<.....7.=...|
+; ACCELERATORS-NEXT: 01F0: 07003700 3E000000 13003700 3F000000 |..7.>.....7.?...|
+; ACCELERATORS-NEXT: 0200: 0D003700 40000000 19003700 41000000 |..7.@.....7.A...|
+; ACCELERATORS-NEXT: 0210: 15003700 42000000 0F003700 43000000 |..7.B.....7.C...|
+; ACCELERATORS-NEXT: 0220: 1B003700 44000000 17003700 45000000 |..7.D.....7.E...|
+; ACCELERATORS-NEXT: 0230: 1D003700 46000000 1F003700 47000000 |..7.F.....7.G...|
+; ACCELERATORS-NEXT: 0240: 00000A00 48000000 82000A00 49000000 |....H.......I...|
+; ACCELERATORS-NEXT: )
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-bad-id.rc 2>&1 | FileCheck %s --check-prefix BADID
+
+; BADID: llvm-rc: Error in ACCELERATORS statement (ID 1):
+; BADID-NEXT: ACCELERATORS entry ID (1234567) does not fit in 16 bits.
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-ascii-virtkey.rc 2>&1 | FileCheck %s --check-prefix ASCII1
+
+; ASCII1: llvm-rc: Error in ACCELERATORS statement (ID 2):
+; ASCII1-NEXT: Accelerator ID 15: Accelerator can't be both ASCII and VIRTKEY
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-ascii-control.rc 2>&1 | FileCheck %s --check-prefix ASCII2
+
+; ASCII2: llvm-rc: Error in ACCELERATORS statement (ID 2):
+; ASCII2-NEXT: Accelerator ID 15: Can only apply ALT, SHIFT or CONTROL to VIRTKEY accelerators
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-ascii-shift.rc 2>&1 | FileCheck %s --check-prefix ASCII3
+
+; ASCII3: llvm-rc: Error in ACCELERATORS statement (ID 2):
+; ASCII3-NEXT: Accelerator ID 15: Can only apply ALT, SHIFT or CONTROL to VIRTKEY accelerators
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-ascii-alt.rc 2>&1 | FileCheck %s --check-prefix ASCII4
+
+; ASCII4: llvm-rc: Error in ACCELERATORS statement (ID 2):
+; ASCII4-NEXT: Accelerator ID 15: Can only apply ALT, SHIFT or CONTROL to VIRTKEY accelerators
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-bad-key-id.rc 2>&1 | FileCheck %s --check-prefix BADKEYID
+
+; BADKEYID: llvm-rc: Error in ACCELERATORS statement (ID 9):
+; BADKEYID-NEXT: Numeric event key ID (1234567) does not fit in 16 bits.
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-too-short.rc 2>&1 | FileCheck %s --check-prefix LENGTH1
+
+; LENGTH1: llvm-rc: Error in ACCELERATORS statement (ID 10):
+; LENGTH1-NEXT: Accelerator ID 12: Accelerator string events should have length 1 or 2
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-too-long.rc 2>&1 | FileCheck %s --check-prefix LENGTH2
+
+; LENGTH2: llvm-rc: Error in ACCELERATORS statement (ID 12):
+; LENGTH2-NEXT: Accelerator ID 5: Accelerator string events should have length 1 or 2
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-only-caret.rc 2>&1 | FileCheck %s --check-prefix CARET1
+
+; CARET1: llvm-rc: Error in ACCELERATORS statement (ID 555):
+; CARET1-NEXT: Accelerator ID 100: No character following '^' in accelerator event
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-no-caret.rc 2>&1 | FileCheck %s --check-prefix CARET2
+
+; CARET2: llvm-rc: Error in ACCELERATORS statement (ID 50):
+; CARET2-NEXT: Accelerator ID 1: Event string should be one-character, possibly preceded by '^'
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-long-virtkey.rc 2>&1 | FileCheck %s --check-prefix CARET3
+
+; CARET3: llvm-rc: Error in ACCELERATORS statement (ID 100):
+; CARET3-NEXT: Accelerator ID 10: VIRTKEY accelerator events can't be preceded by '^'
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-control-nonalpha.rc 2>&1 | FileCheck %s --check-prefix NONALPHA1
+
+; NONALPHA1: llvm-rc: Error in ACCELERATORS statement (ID 100):
+; NONALPHA1-NEXT: Accelerator ID 1: Control character accelerator event should be alphabetic
+
+
+; RUN: not llvm-rc /FO %t %p/Inputs/tag-accelerators-virtual-nonalpha.rc 2>&1 | FileCheck %s --check-prefix NONALPHA2
+
+; NONALPHA2: llvm-rc: Error in ACCELERATORS statement (ID 42):
+; NONALPHA2-NEXT: Accelerator ID 1: Non-alphanumeric characters cannot describe virtual keys
OpenPOWER on IntegriCloud