aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/cc/lexer/preprocessor.test
blob: 13b8bafd9b309ff36e0cf0689dbee6e49fb68823 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# file      : unit-tests/cc/lexer/preprocessor.test
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

# Test preprocessor lines.
#

: normal
:
$* <<EOI
#pragma message("abc")
EOI

: multiline
:
$* <<EOI
#pragma message \
( \
"abc" \
)
EOI

: comment
:
$* <<EOI
#pragma foo /*
bar
baz
*/
#pragma foo // bar baz
EOI

: line
:
$* -l <<EOI >>EOO
;
# 1 "test.cxx" 2
;
  ;
# 4
;
#line 8 "z:\\tmp\\test.hxx"
;
#line 10
;
# 5 "test.cxx"
;
EOI
';' stdin:1:1
';' test.cxx:1:1
';' test.cxx:2:3
';' test.cxx:4:1
';' z:\tmp\test.hxx:8:1
';' z:\tmp\test.hxx:10:1
';' test.cxx:5:1
EOO

: include
:
$* <<EOI 2>>EOE != 0
#include <foo/bar>
EOI
stdin:1:1: error: unexpected #include directive
EOE

: nested
:
$* <<EOI >>EOO
#define FOO(x) #y
;
EOI
';'
EOO