GP-5221 handle relative paths in dwarf source info

This commit is contained in:
James 2025-01-06 16:54:41 -05:00
parent 860c754484
commit 60a7d049b1
5 changed files with 274 additions and 69 deletions

View file

@ -52,11 +52,48 @@ public class SourceFileTest extends AbstractSourceFileTest {
}
@Test
public void testPathNormalization() {
public void testPathNormalizationLinux() {
assertEquals("/src/dir1/dir2/file.c",
new SourceFile("/src/test/../dir1/test/../dir2/file.c").getPath());
}
@Test(expected = IllegalArgumentException.class)
public void testInteriorPathNormalizationLinux() {
new SourceFile("/src/../../../file.c");
}
@Test(expected = IllegalArgumentException.class)
public void testInteriorPathNormalizationLinuxUtilsMethod() {
SourceFileUtils.getSourceFileFromPathString("/src/../../../file.c");
}
@Test(expected = IllegalArgumentException.class)
public void testInteriorPathNormalizationWindows() {
new SourceFile("/c:/src/../../../file.c");
}
@Test
public void testFixDwarfRelativePath() {
String baseDirName = "root_dir";
assertEquals("/src/file.c",
SourceFileUtils.fixDwarfRelativePath("/src/file.c", baseDirName));
assertEquals("/file.c",
SourceFileUtils.fixDwarfRelativePath("/src/../file.c", baseDirName));
assertEquals("/root_dir/file.c",
SourceFileUtils.fixDwarfRelativePath("./file.c", baseDirName));
assertEquals("/root_dir_1/file.c",
SourceFileUtils.fixDwarfRelativePath("/../file.c", baseDirName));
assertEquals("/root_dir_2/file.c",
SourceFileUtils.fixDwarfRelativePath("/.././../file.c", baseDirName));
assertEquals("/root_dir_1/file.c",
SourceFileUtils.fixDwarfRelativePath("./../file.c", baseDirName));
}
@Test(expected = IllegalArgumentException.class)
public void testInteriorPathNormalizationWindowsUtilsMethod() {
SourceFileUtils.getSourceFileFromPathString("c:\\src\\..\\..\\..\\file.c");
}
@Test
public void testGetFilename() {
assertEquals("file.c", new SourceFile("/src/test/file.c").getFilename());