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

View file

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

View file

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

View file

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