GP-701 fixed stack trace in expand data in selection when crossing address spaces

This commit is contained in:
ghidragon 2024-01-29 16:27:36 -05:00
parent 8327ebd0a1
commit 0daa79b24a
5 changed files with 141 additions and 25 deletions

View file

@ -762,6 +762,28 @@ public class AddressSetTest extends AbstractGenericTest {
assertTrue(!it.hasNext());
}
@Test
public void testForwardRangeIteratorRemove() {
AddressSet set = set(0x100, 0x110, 0x200, 0x210, 0x300, 0x305);
assertEquals(40, set.getNumAddresses());
assertEquals(3, set.getNumAddressRanges());
Iterator<AddressRange> it = set.iterator(true);
Assert.assertEquals(range(0x100, 0x110), it.next());
Assert.assertEquals(range(0x200, 0x210), it.next());
it.remove();
Assert.assertEquals(range(0x300, 0x305), it.next());
assertTrue(!it.hasNext());
it = set.iterator(true);
Assert.assertEquals(range(0x100, 0x110), it.next());
Assert.assertEquals(range(0x300, 0x305), it.next());
assertTrue(!it.hasNext());
assertEquals(23, set.getNumAddresses());
assertEquals(2, set.getNumAddressRanges());
}
@Test
public void testBackwardRangeIterator() {
AddressSet set = set(0x100, 0x110, 0x200, 0x210, 0x300, 0x305);
@ -772,6 +794,28 @@ public class AddressSetTest extends AbstractGenericTest {
assertTrue(!it.hasNext());
}
@Test
public void testBackwardRangeIteratorRemove() {
AddressSet set = set(0x100, 0x110, 0x200, 0x210, 0x300, 0x305);
assertEquals(40, set.getNumAddresses());
assertEquals(3, set.getNumAddressRanges());
Iterator<AddressRange> it = set.iterator(false);
Assert.assertEquals(range(0x300, 0x305), it.next());
Assert.assertEquals(range(0x200, 0x210), it.next());
it.remove();
Assert.assertEquals(range(0x100, 0x110), it.next());
assertTrue(!it.hasNext());
it = set.iterator(false);
Assert.assertEquals(range(0x300, 0x305), it.next());
Assert.assertEquals(range(0x100, 0x110), it.next());
assertTrue(!it.hasNext());
assertEquals(23, set.getNumAddresses());
assertEquals(2, set.getNumAddressRanges());
}
@Test
public void testGetRangeContaining() {
AddressSet set = set(0x100, 0x110, 0x200, 0x210, 0x300, 0x305);