mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +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>";
|
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) {
|
default Address toAddress(Addr addr, boolean required) {
|
||||||
|
@ -105,8 +114,7 @@ public interface ValueDecoder {
|
||||||
case STRING_VALUE -> value.getStringValue();
|
case STRING_VALUE -> value.getStringValue();
|
||||||
case BOOL_ARR_VALUE -> ArrayUtils.toPrimitive(
|
case BOOL_ARR_VALUE -> ArrayUtils.toPrimitive(
|
||||||
value.getBoolArrValue().getArrList().stream().toArray(Boolean[]::new));
|
value.getBoolArrValue().getArrList().stream().toArray(Boolean[]::new));
|
||||||
case BYTES_VALUE -> NumericUtilities
|
case BYTES_VALUE -> value.getBytesValue().toByteArray();
|
||||||
.convertBytesToString(value.getBytesValue().toByteArray(), ":");
|
|
||||||
case CHAR_ARR_VALUE -> value.getCharArrValue().toCharArray();
|
case CHAR_ARR_VALUE -> value.getCharArrValue().toCharArray();
|
||||||
case SHORT_ARR_VALUE -> ArrayUtils.toPrimitive(
|
case SHORT_ARR_VALUE -> ArrayUtils.toPrimitive(
|
||||||
value.getShortArrValue()
|
value.getShortArrValue()
|
||||||
|
|
|
@ -224,6 +224,10 @@ public abstract class AbstractGhidraHeadedDebuggerTest
|
||||||
return new AddressRangeImpl(addr(program, min), addr(program, max));
|
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) {
|
protected static AddressSetView set(AddressRange... ranges) {
|
||||||
AddressSet set = new AddressSet();
|
AddressSet set = new AddressSet();
|
||||||
for (AddressRange rng : ranges) {
|
for (AddressRange rng : ranges) {
|
||||||
|
@ -232,6 +236,13 @@ public abstract class AbstractGhidraHeadedDebuggerTest
|
||||||
return set;
|
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() {
|
public static Language getToyBE64Language() {
|
||||||
try {
|
try {
|
||||||
return DefaultLanguageService.getLanguageService()
|
return DefaultLanguageService.getLanguageService()
|
||||||
|
|
|
@ -369,7 +369,7 @@ public class DbgEngCommandsTest extends AbstractDbgEngTraceRmiTest {
|
||||||
Entry<TraceAddressSnapRange, TraceMemoryState> entry =
|
Entry<TraceAddressSnapRange, TraceMemoryState> entry =
|
||||||
tb.trace.getMemoryManager().getMostRecentStateEntry(snap, addr);
|
tb.trace.getMemoryManager().getMostRecentStateEntry(snap, addr);
|
||||||
assertEquals(Map.entry(new ImmutableTraceAddressSnapRange(
|
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 =
|
Entry<TraceAddressSnapRange, TraceMemoryState> entry =
|
||||||
tb.trace.getMemoryManager().getMostRecentStateEntry(snap, addr);
|
tb.trace.getMemoryManager().getMostRecentStateEntry(snap, addr);
|
||||||
assertEquals(Map.entry(new ImmutableTraceAddressSnapRange(
|
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