Skip to content

Commit ac3d1d9

Browse files
authored
Merge pull request SonarOpenCommunity#1023 from guwirth/include-without-extension
test source code provider for include files without extension
2 parents 48ec1ab + 8b118ea commit ac3d1d9

File tree

2 files changed

+75
-20
lines changed

2 files changed

+75
-20
lines changed

cxx-squid/src/test/java/org/sonar/cxx/preprocessor/SourceCodeProviderTest.java

Lines changed: 74 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@
3131
public class SourceCodeProviderTest {
3232

3333
private final SourceCodeProvider codeProvider = new SourceCodeProvider();
34-
private final File expected = new File(new File("src/test/resources/codeprovider/source.hh").getAbsolutePath());
35-
34+
private final File expected1 = new File(new File("src/test/resources/codeprovider/source.hh").getAbsolutePath());
35+
private final File expected2 = new File(new File("src/test/resources/codeprovider/source").getAbsolutePath());
36+
3637
// ////////////////////////////////////////////////////////////////////////////
3738
// Behavior in the absolute path case
3839
@Test
@@ -41,13 +42,13 @@ public void getting_file_with_abspath() {
4142
// working directory and should work the same in the quoted and
4243
// unquoted case
4344

44-
String path = expected.getAbsolutePath();
45+
String path = expected1.getAbsolutePath();
4546
String dummycwd = new File("src/test/resources/codeprovider").getAbsolutePath();
4647

47-
assertEquals(expected, codeProvider.getSourceCodeFile(path, null, true));
48-
assertEquals(expected, codeProvider.getSourceCodeFile(path, null, false));
49-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, true));
50-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, false));
48+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, null, true));
49+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, null, false));
50+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, true));
51+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, false));
5152
}
5253

5354
// ////////////////////////////////////////////////////////////////////////////
@@ -66,10 +67,22 @@ public void getting_file_relpath_case1() {
6667
String includeRoot = new File("src/test/resources/codeprovider").getAbsolutePath();
6768

6869
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
69-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, true));
70-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, false));
70+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, true));
71+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, false));
7172
}
7273

74+
@Test
75+
public void getting_file_relpath_case1_without_extension() {
76+
String baseDir = new File("src/test").getAbsolutePath();
77+
String dummycwd = "/";
78+
String path = "source";
79+
String includeRoot = new File("src/test/resources/codeprovider").getAbsolutePath();
80+
81+
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
82+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, true));
83+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, false));
84+
}
85+
7386
@Test
7487
public void getting_file_relpath_case2() {
7588
String baseDir = new File("src/test").getAbsolutePath();
@@ -78,10 +91,22 @@ public void getting_file_relpath_case2() {
7891
String includeRoot = "resources/codeprovider";
7992

8093
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
81-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, true));
82-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, false));
94+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, true));
95+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, false));
8396
}
8497

98+
@Test
99+
public void getting_file_relpath_case2_without_extension() {
100+
String baseDir = new File("src/test").getAbsolutePath();
101+
String dummycwd = "/";
102+
String path = "source";
103+
String includeRoot = "resources/codeprovider";
104+
105+
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
106+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, true));
107+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, false));
108+
}
109+
85110
@Test
86111
public void getting_file_relpath_case3() {
87112
String baseDir = new File("src/test").getAbsolutePath();
@@ -90,10 +115,22 @@ public void getting_file_relpath_case3() {
90115
String includeRoot = new File("src/test/resources").getAbsolutePath();
91116

92117
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
93-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, true));
94-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, false));
118+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, true));
119+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, false));
95120
}
96121

122+
@Test
123+
public void getting_file_relpath_case3_without_extension() {
124+
String baseDir = new File("src/test").getAbsolutePath();
125+
String dummycwd = "/";
126+
String path = "codeprovider/source";
127+
String includeRoot = new File("src/test/resources").getAbsolutePath();
128+
129+
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
130+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, true));
131+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, false));
132+
}
133+
97134
@Test
98135
public void getting_file_relpath_case4() {
99136
String baseDir = new File("src/test").getAbsolutePath();
@@ -102,39 +139,56 @@ public void getting_file_relpath_case4() {
102139
String includeRoot = "resources";
103140

104141
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
105-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, true));
106-
assertEquals(expected, codeProvider.getSourceCodeFile(path, dummycwd, false));
142+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, true));
143+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, dummycwd, false));
107144
}
108145

146+
@Test
147+
public void getting_file_relpath_case4_without_extension() {
148+
String baseDir = new File("src/test").getAbsolutePath();
149+
String dummycwd = "/";
150+
String path = "codeprovider/source";
151+
String includeRoot = "resources";
152+
153+
codeProvider.setIncludeRoots(Arrays.asList(includeRoot), baseDir);
154+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, true));
155+
assertEquals(expected2, codeProvider.getSourceCodeFile(path, dummycwd, false));
156+
}
157+
109158
// ////////////////////////////////////////////////////////////////////////////
110159
// Special behavior in the quoted case
111160
// Lookup in the current directory. Has to fail for the angle case
112161
@Test
113162
public void getting_file_with_filename_and_cwd() {
114163
String cwd = new File("src/test/resources/codeprovider").getAbsolutePath();
115164
String path = "source.hh";
116-
assertEquals(expected, codeProvider.getSourceCodeFile(path, cwd, true));
165+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, cwd, true));
117166
assertEquals(null, codeProvider.getSourceCodeFile(path, cwd, false));
118167
}
119168

120169
@Test
121170
public void getting_file_with_relpath_and_cwd() {
122171
String cwd = new File("src/test/resources").getAbsolutePath();
123172
String path = "codeprovider/source.hh";
124-
assertEquals(expected, codeProvider.getSourceCodeFile(path, cwd, true));
173+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, cwd, true));
125174
assertEquals(null, codeProvider.getSourceCodeFile(path, cwd, false));
126175
}
127176

128177
@Test
129178
public void getting_file_with_relpath_containing_backsteps_and_cwd() {
130179
String cwd = new File("src/test/resources/codeprovider/folder").getAbsolutePath();
131180
String path = "../source.hh";
132-
assertEquals(expected, codeProvider.getSourceCodeFile(path, cwd, true));
181+
assertEquals(expected1, codeProvider.getSourceCodeFile(path, cwd, true));
133182
assertEquals(null, codeProvider.getSourceCodeFile(path, cwd, false));
134183
}
135184

136185
@Test
137-
public void getting_source_code() throws IOException {
138-
assertEquals("source code", codeProvider.getSourceCode(expected, Charset.defaultCharset()));
186+
public void getting_source_code1() throws IOException {
187+
assertEquals("source code", codeProvider.getSourceCode(expected1, Charset.defaultCharset()));
188+
}
189+
190+
@Test
191+
public void getting_source_code2() throws IOException {
192+
assertEquals("source code", codeProvider.getSourceCode(expected2, Charset.defaultCharset()));
139193
}
140194
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
source code

0 commit comments

Comments
 (0)