mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GP-0: Fix tests.
This commit is contained in:
parent
ba30f4b0bb
commit
5654daa89d
7 changed files with 30 additions and 18 deletions
|
@ -150,7 +150,7 @@ public class DBTraceObject extends DBAnnotatedObject implements TraceObject {
|
|||
}
|
||||
};
|
||||
private CachedLifespanValues cachedLifespanValues = null;
|
||||
private MutableLifeSet cachedLife = null;
|
||||
private volatile MutableLifeSet cachedLife = null;
|
||||
|
||||
public DBTraceObject(DBTraceObjectManager manager, DBCachedObjectStore<?> store,
|
||||
DBRecord record) {
|
||||
|
@ -223,11 +223,11 @@ public class DBTraceObject extends DBAnnotatedObject implements TraceObject {
|
|||
}
|
||||
}
|
||||
MutableLifeSet result = new DefaultLifeSet();
|
||||
// NOTE: connected ranges should already be coalesced
|
||||
// No need to apply discreet domain
|
||||
getCanonicalParents(Lifespan.ALL).forEach(v -> result.add(v.getLifespan()));
|
||||
cachedLife = result;
|
||||
return result;
|
||||
synchronized (result) {
|
||||
return DefaultLifeSet.copyOf(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,8 @@ import java.util.function.Predicate;
|
|||
import db.DBRecord;
|
||||
import ghidra.program.model.address.AddressFactory;
|
||||
import ghidra.program.model.address.AddressSetView;
|
||||
import ghidra.trace.database.target.ValueSpace.AddressDimension;
|
||||
import ghidra.trace.database.target.ValueSpace.EntryKeyDimension;
|
||||
import ghidra.trace.model.Lifespan;
|
||||
import ghidra.util.database.*;
|
||||
import ghidra.util.database.spatial.AbstractConstraintsTree;
|
||||
|
@ -58,7 +60,14 @@ public class DBTraceObjectValueRStarTree extends AbstractHyperRStarTree< //
|
|||
|
||||
public AddressSetView getAddressSetView(Lifespan at,
|
||||
Predicate<? super InternalTraceObjectValue> predicate) {
|
||||
return new DBTraceObjectValueMapAddressSetView(factory, lock, this, predicate);
|
||||
return new DBTraceObjectValueMapAddressSetView(factory, lock,
|
||||
this.reduce(TraceObjectValueQuery.intersecting(
|
||||
EntryKeyDimension.INSTANCE.absoluteMin(),
|
||||
EntryKeyDimension.INSTANCE.absoluteMax(),
|
||||
at,
|
||||
AddressDimension.INSTANCE.absoluteMin(),
|
||||
AddressDimension.INSTANCE.absoluteMax())),
|
||||
predicate);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,8 @@
|
|||
*/
|
||||
package ghidra.trace.database.memory;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
|
@ -23,6 +24,7 @@ import java.util.Set;
|
|||
import org.junit.*;
|
||||
|
||||
import db.Transaction;
|
||||
import ghidra.program.model.address.AddressSet;
|
||||
import ghidra.program.model.lang.LanguageID;
|
||||
import ghidra.test.AbstractGhidraHeadlessIntegrationTest;
|
||||
import ghidra.trace.database.ToyDBTraceBuilder;
|
||||
|
@ -151,8 +153,9 @@ public abstract class AbstractDBTraceMemoryManagerRegionsTest
|
|||
Set.of(TraceMemoryFlag.READ, TraceMemoryFlag.EXECUTE));
|
||||
}
|
||||
|
||||
assertEquals(b.set(b.range(0x1000, 0x1fff)), memory.getRegionsAddressSet(0));
|
||||
assertEquals(b.set(), memory.getRegionsAddressSet(-1));
|
||||
assertEquals(b.set(b.range(0x1000, 0x1fff)),
|
||||
new AddressSet(memory.getRegionsAddressSet(0)));
|
||||
assertEquals(b.set(), new AddressSet(memory.getRegionsAddressSet(-1)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -164,8 +167,9 @@ public abstract class AbstractDBTraceMemoryManagerRegionsTest
|
|||
Set.of(TraceMemoryFlag.READ, TraceMemoryFlag.EXECUTE));
|
||||
}
|
||||
|
||||
assertEquals(b.set(b.range(0x1000, 0x1fff)), memory.getRegionsAddressSetWith(0, r -> true));
|
||||
assertEquals(b.set(), memory.getRegionsAddressSetWith(-1, r -> true));
|
||||
assertEquals(b.set(), memory.getRegionsAddressSetWith(0, r -> false));
|
||||
assertEquals(b.set(b.range(0x1000, 0x1fff)),
|
||||
new AddressSet(memory.getRegionsAddressSetWith(0, r -> true)));
|
||||
assertEquals(b.set(), new AddressSet(memory.getRegionsAddressSetWith(-1, r -> true)));
|
||||
assertEquals(b.set(), new AddressSet(memory.getRegionsAddressSetWith(0, r -> false)));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue