mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 06:32:10 +02:00
Bug 472765: Add extra sourceLookup test
Change-Id: I98c11a2f4e231d6bc0e0bb53ea1e0b3465c9a976
This commit is contained in:
parent
483bd0e7d6
commit
e977bb4953
1 changed files with 38 additions and 0 deletions
|
@ -980,4 +980,42 @@ public class SourceLookupTest extends BaseTestCase {
|
||||||
assertSourceFoundByDirectorOnly();
|
assertSourceFoundByDirectorOnly();
|
||||||
assertInsertBreakpointSuccessful();
|
assertInsertBreakpointSuccessful();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test verifies interaction between director that has two mappers, one with
|
||||||
|
* backend enabled and one without, with the first being the only valid one,
|
||||||
|
* and the second causing the breakpoint installation to fail.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void twoMappersFirstValid() throws Throwable {
|
||||||
|
// This first mapping is valid and should cause to find the source
|
||||||
|
MappingSourceContainer substituteContainer = new MappingSourceContainer("Mappings With Backend");
|
||||||
|
substituteContainer.setIsMappingWithBackendEnabled(true);
|
||||||
|
substituteContainer.addMapEntry(fMapEntrySourceContainerC);
|
||||||
|
AbstractSourceLookupDirector director = setSourceContainer(substituteContainer);
|
||||||
|
|
||||||
|
// Because of the above valid mapping substitution, GDB will provide the proper path
|
||||||
|
// to the source and it will be found no matter what the below mapping is set to.
|
||||||
|
// On the other hand, when setting a breakpoint, we have to make sure that the below
|
||||||
|
// mapping does not change the path to something GDB does not know.
|
||||||
|
// Therefore, we set the below mapping from an invalid compilation path to the proper source path.
|
||||||
|
// This is so that if the below mapping is triggered it will cause us to try to set a breakpoint
|
||||||
|
// in GDB on an invalid path, thus failing the test.
|
||||||
|
// This allows to verify that the first mapping is used once it is found to be valid
|
||||||
|
// and does not fallback to the next mapping.
|
||||||
|
MappingSourceContainer mapContainer = new MappingSourceContainer("Mappings");
|
||||||
|
mapContainer.setIsMappingWithBackendEnabled(false);
|
||||||
|
mapContainer
|
||||||
|
.addMapEntry(new MapEntrySourceContainer(new Path("/from_invalid"), new Path(SOURCE_ABSPATH)));
|
||||||
|
addSourceContainer(director, mapContainer);
|
||||||
|
|
||||||
|
doLaunch(EXEC_PATH + EXEC_AC_NAME);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* because the backend substitution applies, we should be able to find the
|
||||||
|
* source with the director or without it.
|
||||||
|
*/
|
||||||
|
assertSourceFound();
|
||||||
|
assertInsertBreakpointSuccessful();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue