mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
Merge remote-tracking branch 'origin/GP-0_Dan_testFixes-2024-02-02-1'
This commit is contained in:
commit
33f90ba1c1
4 changed files with 23 additions and 4 deletions
|
@ -63,6 +63,15 @@ public interface ValueDecoder {
|
|||
default -> "<ERROR: default>";
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object toValue(Value value) {
|
||||
Object obj = ValueDecoder.super.toValue(value);
|
||||
if (obj instanceof byte[] va) {
|
||||
return NumericUtilities.convertBytesToString(va, ":");
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
};
|
||||
|
||||
default Address toAddress(Addr addr, boolean required) {
|
||||
|
@ -105,8 +114,7 @@ public interface ValueDecoder {
|
|||
case STRING_VALUE -> value.getStringValue();
|
||||
case BOOL_ARR_VALUE -> ArrayUtils.toPrimitive(
|
||||
value.getBoolArrValue().getArrList().stream().toArray(Boolean[]::new));
|
||||
case BYTES_VALUE -> NumericUtilities
|
||||
.convertBytesToString(value.getBytesValue().toByteArray(), ":");
|
||||
case BYTES_VALUE -> value.getBytesValue().toByteArray();
|
||||
case CHAR_ARR_VALUE -> value.getCharArrValue().toCharArray();
|
||||
case SHORT_ARR_VALUE -> ArrayUtils.toPrimitive(
|
||||
value.getShortArrValue()
|
||||
|
|
|
@ -224,6 +224,10 @@ public abstract class AbstractGhidraHeadedDebuggerTest
|
|||
return new AddressRangeImpl(addr(program, min), addr(program, max));
|
||||
}
|
||||
|
||||
protected static AddressRange rng(Address min, long length) throws AddressOverflowException {
|
||||
return new AddressRangeImpl(min, length);
|
||||
}
|
||||
|
||||
protected static AddressSetView set(AddressRange... ranges) {
|
||||
AddressSet set = new AddressSet();
|
||||
for (AddressRange rng : ranges) {
|
||||
|
@ -232,6 +236,13 @@ public abstract class AbstractGhidraHeadedDebuggerTest
|
|||
return set;
|
||||
}
|
||||
|
||||
protected static AddressRange quantize(AddressRange rng, long page) {
|
||||
AddressSpace space = rng.getAddressSpace();
|
||||
long min = Long.divideUnsigned(rng.getMinAddress().getOffset(), page) * page;
|
||||
long max = Long.divideUnsigned(rng.getMaxAddress().getOffset() + page - 1, page) * page - 1;
|
||||
return new AddressRangeImpl(space.getAddress(min), space.getAddress(max));
|
||||
}
|
||||
|
||||
public static Language getToyBE64Language() {
|
||||
try {
|
||||
return DefaultLanguageService.getLanguageService()
|
||||
|
|
|
@ -369,7 +369,7 @@ public class DbgEngCommandsTest extends AbstractDbgEngTraceRmiTest {
|
|||
Entry<TraceAddressSnapRange, TraceMemoryState> entry =
|
||||
tb.trace.getMemoryManager().getMostRecentStateEntry(snap, addr);
|
||||
assertEquals(Map.entry(new ImmutableTraceAddressSnapRange(
|
||||
new AddressRangeImpl(addr, 16), Lifespan.at(0)), TraceMemoryState.ERROR), entry);
|
||||
rng(addr, 16), Lifespan.at(0)), TraceMemoryState.ERROR), entry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -409,7 +409,7 @@ public class GdbCommandsTest extends AbstractGdbTraceRmiTest {
|
|||
Entry<TraceAddressSnapRange, TraceMemoryState> entry =
|
||||
tb.trace.getMemoryManager().getMostRecentStateEntry(snap, addr);
|
||||
assertEquals(Map.entry(new ImmutableTraceAddressSnapRange(
|
||||
new AddressRangeImpl(addr, 10), Lifespan.at(0)), TraceMemoryState.ERROR), entry);
|
||||
quantize(rng(addr, 10), 4096), Lifespan.at(0)), TraceMemoryState.ERROR), entry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue