1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.github.maven_nar.cpptasks.parser;
21
22 import java.io.CharArrayReader;
23 import java.io.IOException;
24
25 import junit.framework.TestCase;
26
27
28
29
30 public final class TestCParser extends TestCase {
31
32
33
34
35
36
37 public TestCParser(final String name) {
38 super(name);
39 }
40
41
42
43
44
45
46
47 public void testImmediateImportBracket() throws IOException {
48 final CharArrayReader reader = new CharArrayReader("#import <foo.h> nowhatever ".toCharArray());
49 final CParser parser = new CParser();
50 parser.parse(reader);
51 final String[] includes = parser.getIncludes();
52 assertEquals(includes.length, 1);
53 assertEquals("foo.h", includes[0]);
54 }
55
56
57
58
59
60
61
62 public void testImmediateImportQuote() throws IOException {
63 final CharArrayReader reader = new CharArrayReader("#import \"foo.h\" ".toCharArray());
64 final CParser parser = new CParser();
65 parser.parse(reader);
66 final String[] includes = parser.getIncludes();
67 assertEquals(includes.length, 1);
68 assertEquals("foo.h", includes[0]);
69 }
70
71
72
73
74
75
76
77 public void testImmediateIncludeBracket() throws IOException {
78 final CharArrayReader reader = new CharArrayReader("#include <foo.h> ".toCharArray());
79 final CParser parser = new CParser();
80 parser.parse(reader);
81 final String[] includes = parser.getIncludes();
82 assertEquals(includes.length, 1);
83 assertEquals("foo.h", includes[0]);
84 }
85
86
87
88
89
90
91
92 public void testImmediateIncludeQuote() throws IOException {
93 final CharArrayReader reader = new CharArrayReader("#include \"foo.h\" ".toCharArray());
94 final CParser parser = new CParser();
95 parser.parse(reader);
96 final String[] includes = parser.getIncludes();
97 assertEquals(includes.length, 1);
98 assertEquals("foo.h", includes[0]);
99 }
100
101
102
103
104
105
106
107 public void testIncompleteImmediateImportBracket() throws IOException {
108 final CharArrayReader reader = new CharArrayReader("#import <foo.h ".toCharArray());
109 final CParser parser = new CParser();
110 parser.parse(reader);
111 final String[] includes = parser.getIncludes();
112 assertEquals(includes.length, 0);
113 }
114
115
116
117
118
119
120
121 public void testIncompleteImmediateImportQuote() throws IOException {
122 final CharArrayReader reader = new CharArrayReader("#import \"foo.h ".toCharArray());
123 final CParser parser = new CParser();
124 parser.parse(reader);
125 final String[] includes = parser.getIncludes();
126 assertEquals(includes.length, 0);
127 }
128
129
130
131
132
133
134
135 public void testIncompleteImmediateIncludeBracket() throws IOException {
136 final CharArrayReader reader = new CharArrayReader("#include <foo.h ".toCharArray());
137 final CParser parser = new CParser();
138 parser.parse(reader);
139 final String[] includes = parser.getIncludes();
140 assertEquals(includes.length, 0);
141 }
142
143
144
145
146
147
148
149 public void testIncompleteImmediateIncludeQuote() throws IOException {
150 final CharArrayReader reader = new CharArrayReader("#include \"foo.h ".toCharArray());
151 final CParser parser = new CParser();
152 parser.parse(reader);
153 final String[] includes = parser.getIncludes();
154 assertEquals(includes.length, 0);
155 }
156
157
158
159
160
161
162
163 public void testLeadingSpace() throws IOException {
164 final CharArrayReader reader = new CharArrayReader(" #include \"foo.h\" ".toCharArray());
165 final CParser parser = new CParser();
166 parser.parse(reader);
167 final String[] includes = parser.getIncludes();
168 assertEquals(includes.length, 1);
169 assertEquals("foo.h", includes[0]);
170 }
171
172
173
174
175
176
177
178 public void testLeadingTab() throws IOException {
179 final CharArrayReader reader = new CharArrayReader("\t#include \"foo.h\" ".toCharArray());
180 final CParser parser = new CParser();
181 parser.parse(reader);
182 final String[] includes = parser.getIncludes();
183 assertEquals(includes.length, 1);
184 assertEquals("foo.h", includes[0]);
185 }
186
187
188
189
190
191
192
193 public void testNoQuoteOrBracket() throws IOException {
194 final CharArrayReader reader = new CharArrayReader("#include foo.h ".toCharArray());
195 final CParser parser = new CParser();
196 parser.parse(reader);
197 final String[] includes = parser.getIncludes();
198 assertEquals(includes.length, 0);
199 }
200
201
202
203
204
205
206
207 public void testNotFirstWhitespace() throws IOException {
208 final CharArrayReader reader = new CharArrayReader("//#include \"foo.h\"".toCharArray());
209 final CParser parser = new CParser();
210 parser.parse(reader);
211 final String[] includes = parser.getIncludes();
212 assertEquals(includes.length, 0);
213 }
214
215 }