Merge remote-tracking branch 'origin/GP-0_Dan_testFixes-2024-02-02-1'

This commit is contained in:
Ryan Kurtz 2024-02-02 09:57:10 -05:00
commit 33f90ba1c1
4 changed files with 23 additions and 4 deletions

View file

@ -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()

View file

@ -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()

View file

@ -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);
} }
} }

View file

@ -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);
} }
} }