mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-24 03:09:36 +08:00
Merge remote-tracking branch 'origin/GP-0-dragonmacher-test-fixes-8-24-23'
This commit is contained in:
-30
@@ -20,8 +20,6 @@ import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import docking.widgets.fieldpanel.field.*;
|
||||
import docking.widgets.fieldpanel.support.*;
|
||||
import generic.theme.GThemeDefaults.Colors.Palette;
|
||||
@@ -36,7 +34,6 @@ import ghidra.program.model.address.Address;
|
||||
import ghidra.program.model.listing.*;
|
||||
import ghidra.program.util.*;
|
||||
import ghidra.util.HelpLocation;
|
||||
import ghidra.util.StringUtilities;
|
||||
import ghidra.util.bean.field.AnnotatedTextFieldElement;
|
||||
|
||||
/**
|
||||
@@ -359,10 +356,6 @@ public class EolCommentFieldFactory extends FieldFactory {
|
||||
AttributedString currentPrefixString, boolean showPrefix, boolean wordWrap,
|
||||
int nextRow) {
|
||||
|
||||
if (wordWrap) {
|
||||
comments = adjustCommentsForWrapping(comments);
|
||||
}
|
||||
|
||||
List<FieldElement> fieldElements = new ArrayList<>();
|
||||
if (comments.length == 0) {
|
||||
return fieldElements;
|
||||
@@ -393,33 +386,10 @@ public class EolCommentFieldFactory extends FieldFactory {
|
||||
return fieldElements;
|
||||
}
|
||||
|
||||
private String[] adjustCommentsForWrapping(String[] comments) {
|
||||
List<String> list = new ArrayList<>();
|
||||
int lastComment = comments.length - 1;
|
||||
for (int i = 0; i < lastComment; i++) {
|
||||
String string = comments[i];
|
||||
if (!StringUtils.isBlank(string) && !StringUtilities.endsWithWhiteSpace(string)) {
|
||||
list.add(string + " ");
|
||||
}
|
||||
else {
|
||||
list.add(string);
|
||||
}
|
||||
}
|
||||
if (lastComment >= 0) {
|
||||
list.add(comments[lastComment]);
|
||||
}
|
||||
comments = list.toArray(new String[list.size()]);
|
||||
return comments;
|
||||
}
|
||||
|
||||
private List<FieldElement> convertToRefFieldElements(String[] comments, Program program,
|
||||
AttributedString currentPrefixString, boolean showPrefix, boolean wordWrap,
|
||||
boolean showRefAddress, Address refAddress, int nextRow) {
|
||||
|
||||
if (wordWrap) {
|
||||
comments = adjustCommentsForWrapping(comments);
|
||||
}
|
||||
|
||||
int numCommentLines = comments.length;
|
||||
List<FieldElement> fieldElements = new ArrayList<>();
|
||||
if (numCommentLines == 0) {
|
||||
|
||||
+2
-2
@@ -262,8 +262,8 @@ public class CommentsPluginTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(17, browser.getCurrentFieldLoction().getRow());
|
||||
assertEquals(4, browser.getCurrentFieldLoction().getCol());
|
||||
|
||||
assertEquals(3, browser2.getCurrentFieldLoction().getRow());
|
||||
assertEquals(46, browser2.getCurrentFieldLoction().getCol());
|
||||
assertEquals(4, browser2.getCurrentFieldLoction().getRow());
|
||||
assertEquals(4, browser2.getCurrentFieldLoction().getCol());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+2
-1
@@ -133,7 +133,8 @@ public class MemoryMapProvider1Test extends AbstractGhidraHeadedIntegrationTest
|
||||
String name = action.getName();
|
||||
if (name.equals("Add Block") || name.equals("Merge Blocks") ||
|
||||
name.equals("Delete Block") || name.equals("Set Image Base") ||
|
||||
name.equals("Memory Map") || name.equals("Close Window")) {
|
||||
name.equals("Memory Map") || name.equals("Close Window") ||
|
||||
name.equals("Make Selection")) {
|
||||
assertTrue("Action should be enabled for a multi-row selection - '" + name + "'",
|
||||
action.isEnabled());
|
||||
}
|
||||
|
||||
+3
-9
@@ -236,7 +236,7 @@ public class ListingPanelTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(EolCommentFieldLocation.class, loc.getClass());
|
||||
bfloc = (EolCommentFieldLocation) loc;
|
||||
assertEquals(0, bfloc.getRow());
|
||||
assertEquals(72, bfloc.getCharOffset());
|
||||
assertEquals(70, bfloc.getCharOffset());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -257,7 +257,7 @@ public class ListingPanelTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
env.showTool();
|
||||
|
||||
ListingField f = (ListingField) l.getField(4);
|
||||
assertEquals(comment1 + " " + comment2, f.getText());
|
||||
assertEquals(comment1 + " " + comment2, f.getText());
|
||||
|
||||
FieldFactory ff = f.getFieldFactory();
|
||||
RowColLocation rc = f.textOffsetToScreenLocation(3);
|
||||
@@ -306,13 +306,7 @@ public class ListingPanelTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
showTool(tool);
|
||||
|
||||
AtomicReference<AddressSetView> addresses = new AtomicReference<>();
|
||||
CodeViewerService cvs = tool.getService(CodeViewerService.class);
|
||||
cvs.addListingDisplayListener(new AddressSetDisplayListener() {
|
||||
@Override
|
||||
public void visibleAddressesChanged(AddressSetView visibleAddresses) {
|
||||
addresses.set(visibleAddresses);
|
||||
}
|
||||
});
|
||||
cvs.addListingDisplayListener(visibleAddresses -> addresses.set(visibleAddresses));
|
||||
|
||||
assertNull(addresses.get());
|
||||
cvs.goTo(new ProgramLocation(program, addr(0x1008000)), false);
|
||||
|
||||
+5
-1
@@ -134,7 +134,11 @@ public class VerticalLayoutTextField implements TextField {
|
||||
StringBuilder buf = new StringBuilder();
|
||||
int n = elements.size() - 1;
|
||||
for (int i = 0; i < n; i++) {
|
||||
buf.append(elements.get(i).getText()).append(delimiter);
|
||||
String text = elements.get(i).getText();
|
||||
buf.append(text);
|
||||
if (!text.endsWith(delimiter)) { // prevent 2 spaces between merged lines
|
||||
buf.append(delimiter);
|
||||
}
|
||||
}
|
||||
buf.append(elements.get(n).getText());
|
||||
return buf.toString();
|
||||
|
||||
+18
-18
@@ -492,15 +492,15 @@ public class CompositeVerticalLayoutTextFieldTest extends AbstractGenericTest {
|
||||
|
||||
assertEquals(4, field.getNumRows());
|
||||
|
||||
assertEquals("This is a line", field.getFieldElement(0, 0).getText());
|
||||
assertEquals("with multiple", field.getFieldElement(1, 0).getText());
|
||||
assertEquals("words for", field.getFieldElement(2, 0).getText());
|
||||
assertEquals("This is a line ", field.getFieldElement(0, 0).getText());
|
||||
assertEquals("with multiple ", field.getFieldElement(1, 0).getText());
|
||||
assertEquals("words for ", field.getFieldElement(2, 0).getText());
|
||||
assertEquals("wrapping", field.getFieldElement(3, 0).getText());
|
||||
|
||||
// note: the final 'data' row becomes 4 'screen' rows
|
||||
assertEquals(15, field.getNumCols(0));
|
||||
assertEquals(14, field.getNumCols(1));
|
||||
assertEquals(10, field.getNumCols(2));
|
||||
assertEquals(16, field.getNumCols(0));
|
||||
assertEquals(15, field.getNumCols(1));
|
||||
assertEquals(11, field.getNumCols(2));
|
||||
assertEquals(9, field.getNumCols(3));
|
||||
}
|
||||
|
||||
@@ -511,15 +511,15 @@ public class CompositeVerticalLayoutTextFieldTest extends AbstractGenericTest {
|
||||
|
||||
assertEquals(4, field.getNumRows());
|
||||
|
||||
assertEquals("This is line", field.getFieldElement(0, 0).getText());
|
||||
assertEquals("This is line ", field.getFieldElement(0, 0).getText());
|
||||
assertEquals("one", field.getFieldElement(1, 0).getText());
|
||||
assertEquals("This is line", field.getFieldElement(2, 0).getText());
|
||||
assertEquals("This is line ", field.getFieldElement(2, 0).getText());
|
||||
assertEquals("two", field.getFieldElement(3, 0).getText());
|
||||
|
||||
// note: the final 'data' row becomes 4 'screen' rows
|
||||
assertEquals(13, field.getNumCols(0));
|
||||
assertEquals(14, field.getNumCols(0));
|
||||
assertEquals(4, field.getNumCols(1));
|
||||
assertEquals(13, field.getNumCols(2));
|
||||
assertEquals(14, field.getNumCols(2));
|
||||
assertEquals(4, field.getNumCols(3));
|
||||
}
|
||||
|
||||
@@ -535,17 +535,17 @@ public class CompositeVerticalLayoutTextFieldTest extends AbstractGenericTest {
|
||||
|
||||
assertEquals(5, field.getNumRows());
|
||||
|
||||
assertEquals("This is line", field.getFieldElement(0, 0).getText());
|
||||
assertEquals("This is line ", field.getFieldElement(0, 0).getText());
|
||||
assertEquals("one", field.getFieldElement(1, 0).getText());
|
||||
assertEquals("This line does not wrap", field.getFieldElement(2, 0).getText());
|
||||
assertEquals("This is line", field.getFieldElement(3, 0).getText());
|
||||
assertEquals("This is line ", field.getFieldElement(3, 0).getText());
|
||||
assertEquals("two", field.getFieldElement(4, 0).getText());
|
||||
|
||||
// note: the final 'data' row becomes 5 'screen' rows
|
||||
assertEquals(13, field.getNumCols(0));
|
||||
assertEquals(14, field.getNumCols(0));
|
||||
assertEquals(4, field.getNumCols(1));
|
||||
assertEquals(14, field.getNumCols(2));
|
||||
assertEquals(13, field.getNumCols(3));
|
||||
assertEquals(14, field.getNumCols(3));
|
||||
assertEquals(4, field.getNumCols(4));
|
||||
}
|
||||
|
||||
@@ -565,8 +565,8 @@ public class CompositeVerticalLayoutTextFieldTest extends AbstractGenericTest {
|
||||
|
||||
assertEquals(row1, field.getFieldElement(0, 0).getText());
|
||||
assertEquals(row2, field.getFieldElement(1, 0).getText());
|
||||
assertEquals("3: wrapped", field.getFieldElement(2, 0).getText());
|
||||
assertEquals("row: This field", field.getFieldElement(3, 0).getText());
|
||||
assertEquals("3: wrapped ", field.getFieldElement(2, 0).getText());
|
||||
assertEquals("row: This field ", field.getFieldElement(3, 0).getText());
|
||||
assertEquals("will wrap", field.getFieldElement(4, 0).getText());
|
||||
|
||||
// not sure how to get this from the field
|
||||
@@ -575,8 +575,8 @@ public class CompositeVerticalLayoutTextFieldTest extends AbstractGenericTest {
|
||||
assertEquals(clippedLength, field.getNumCols(1));
|
||||
|
||||
// note: the final 'data' row becomes 3 'screen' rows
|
||||
assertEquals(11, field.getNumCols(2));
|
||||
assertEquals(16, field.getNumCols(3));
|
||||
assertEquals(12, field.getNumCols(2));
|
||||
assertEquals(17, field.getNumCols(3));
|
||||
assertEquals(10, field.getNumCols(4));
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,11 @@ import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
|
||||
import db.Transaction;
|
||||
import generic.Unique;
|
||||
import generic.test.category.NightlyCategory;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.TraceRmiAcceptor;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.TraceRmiHandler;
|
||||
import ghidra.app.plugin.core.debug.utils.ManagedDomainObject;
|
||||
@@ -50,6 +52,7 @@ import ghidra.trace.model.target.*;
|
||||
import ghidra.trace.model.time.TraceSnapshot;
|
||||
import ghidra.util.Msg;
|
||||
|
||||
@Category(NightlyCategory.class) // this may actually be an @PortSensitive test
|
||||
public class GdbCommandsTest extends AbstractGdbTraceRmiTest {
|
||||
|
||||
//@Test
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
*/
|
||||
package agent.gdb.rmi;
|
||||
|
||||
import static org.hamcrest.Matchers.greaterThan;
|
||||
import static org.hamcrest.Matchers.instanceOf;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
@@ -24,7 +23,9 @@ import java.util.List;
|
||||
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
|
||||
import generic.test.category.NightlyCategory;
|
||||
import ghidra.app.plugin.core.debug.utils.ManagedDomainObject;
|
||||
import ghidra.dbg.target.TargetExecutionStateful.TargetExecutionState;
|
||||
import ghidra.dbg.testutil.DummyProc;
|
||||
@@ -37,6 +38,7 @@ import ghidra.trace.model.memory.TraceMemorySpace;
|
||||
import ghidra.trace.model.target.TraceObject;
|
||||
import ghidra.trace.model.time.TraceSnapshot;
|
||||
|
||||
@Category(NightlyCategory.class) // this may actually be an @PortSensitive test
|
||||
public class GdbHooksTest extends AbstractGdbTraceRmiTest {
|
||||
private static final long RUN_TIMEOUT_MS = 20000;
|
||||
private static final long RETRY_MS = 500;
|
||||
|
||||
@@ -23,9 +23,11 @@ import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
|
||||
import db.Transaction;
|
||||
import generic.Unique;
|
||||
import generic.test.category.NightlyCategory;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.RemoteMethod;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.ValueDecoder;
|
||||
import ghidra.app.plugin.core.debug.utils.ManagedDomainObject;
|
||||
@@ -48,6 +50,7 @@ import ghidra.trace.model.modules.TraceModule;
|
||||
import ghidra.trace.model.target.TraceObject;
|
||||
import ghidra.trace.model.target.TraceObjectValue;
|
||||
|
||||
@Category(NightlyCategory.class) // this may actually be an @PortSensitive test
|
||||
public class GdbMethodsTest extends AbstractGdbTraceRmiTest {
|
||||
|
||||
@Test
|
||||
|
||||
@@ -27,8 +27,10 @@ import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
|
||||
import generic.Unique;
|
||||
import generic.test.category.NightlyCategory;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.TraceRmiAcceptor;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.TraceRmiHandler;
|
||||
import ghidra.app.plugin.core.debug.utils.ManagedDomainObject;
|
||||
@@ -46,6 +48,7 @@ import ghidra.trace.model.target.*;
|
||||
import ghidra.trace.model.time.TraceSnapshot;
|
||||
import ghidra.util.Msg;
|
||||
|
||||
@Category(NightlyCategory.class) // this may actually be an @PortSensitive test
|
||||
public class LldbCommandsTest extends AbstractLldbTraceRmiTest {
|
||||
|
||||
//@Test
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
*/
|
||||
package agent.lldb.rmi;
|
||||
|
||||
import static org.hamcrest.Matchers.greaterThan;
|
||||
import static org.hamcrest.Matchers.instanceOf;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
@@ -25,7 +24,9 @@ import java.util.Objects;
|
||||
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
|
||||
import generic.test.category.NightlyCategory;
|
||||
import ghidra.app.plugin.core.debug.utils.ManagedDomainObject;
|
||||
import ghidra.dbg.testutil.DummyProc;
|
||||
import ghidra.dbg.util.PathPattern;
|
||||
@@ -38,6 +39,7 @@ import ghidra.trace.model.memory.TraceMemorySpace;
|
||||
import ghidra.trace.model.target.TraceObject;
|
||||
import ghidra.trace.model.time.TraceSnapshot;
|
||||
|
||||
@Category(NightlyCategory.class) // this may actually be an @PortSensitive test
|
||||
public class LldbHooksTest extends AbstractLldbTraceRmiTest {
|
||||
private static final long RUN_TIMEOUT_MS = 20000;
|
||||
private static final long RETRY_MS = 500;
|
||||
|
||||
@@ -15,15 +15,16 @@
|
||||
*/
|
||||
package agent.lldb.rmi;
|
||||
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.hamcrest.Matchers.greaterThan;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
|
||||
import generic.Unique;
|
||||
import generic.test.category.NightlyCategory;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.RemoteMethod;
|
||||
import ghidra.app.plugin.core.debug.service.rmi.trace.ValueDecoder;
|
||||
import ghidra.app.plugin.core.debug.utils.ManagedDomainObject;
|
||||
@@ -42,6 +43,7 @@ import ghidra.trace.model.modules.TraceModule;
|
||||
import ghidra.trace.model.target.TraceObject;
|
||||
import ghidra.trace.model.target.TraceObjectValue;
|
||||
|
||||
@Category(NightlyCategory.class) // this may actually be an @PortSensitive test
|
||||
public class LldbMethodsTest extends AbstractLldbTraceRmiTest {
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user