mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 01:39:21 +02:00
Merge remote-tracking branch 'origin/GP-0-dragonmacher-test-fixes-5-21-25'
This commit is contained in:
commit
30b0e80733
4 changed files with 42 additions and 41 deletions
|
@ -934,9 +934,14 @@ public class ProgramBuilder {
|
|||
}
|
||||
|
||||
public void createComment(String address, String comment, int commentType) {
|
||||
CommentType type = CommentType.values()[commentType];
|
||||
createComment(address, comment, type);
|
||||
}
|
||||
|
||||
public void createComment(String address, String comment, CommentType type) {
|
||||
tx(() -> {
|
||||
Listing listing = program.getListing();
|
||||
listing.setComment(addr(address), commentType, comment);
|
||||
listing.setComment(addr(address), type, comment);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@ import ghidra.program.database.ProgramDB;
|
|||
import ghidra.program.model.data.*;
|
||||
import ghidra.test.AbstractGhidraHeadedIntegrationTest;
|
||||
import ghidra.util.InvalidNameException;
|
||||
import ghidra.util.Msg;
|
||||
import ghidra.util.task.TaskMonitor;
|
||||
|
||||
public class DataManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
|
@ -49,10 +48,8 @@ public class DataManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
|||
|
||||
@Test
|
||||
public void testSetName() throws InvalidNameException {
|
||||
String oldName = dataMgr.getName();
|
||||
String newName = "NewName";
|
||||
dataMgr.setName("NewName");
|
||||
|
||||
dataMgr.setName(newName);
|
||||
assertEquals(newName, dataMgr.getName());
|
||||
}
|
||||
|
||||
|
@ -99,16 +96,12 @@ public class DataManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
|||
dataMgr.resolve(new EnumDataType(s3.getCategoryPath(), "Enum", 2), null);
|
||||
dataMgr.resolve(new EnumDataType(s3.getCategoryPath(), "Enum", 2), null);
|
||||
|
||||
dataMgr.resolve(new EnumDataType(s3.getCategoryPath(), "zEnum", 2), null);
|
||||
dataMgr.resolve(new EnumDataType(s3.getCategoryPath(), "zEnum2", 2), null);
|
||||
|
||||
List<DataType> list = new ArrayList<DataType>();
|
||||
dataMgr.findDataTypes("Enum", list);
|
||||
assertEquals(3, list.size());
|
||||
|
||||
list.clear();
|
||||
dataMgr.findDataTypes("Enum1", list);
|
||||
Msg.debug(this, "dts: " + list);
|
||||
|
||||
Category c1 = root.createCategory("c1");
|
||||
dataMgr.resolve(new EnumDataType(c1.getCategoryPath(), "Enum", 2), null);
|
||||
|
@ -468,25 +461,20 @@ public class DataManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
|||
|
||||
@Test
|
||||
public void testResolveDataType() {
|
||||
|
||||
DataTypeManager dtm = new StandAloneDataTypeManager("Test");
|
||||
StandAloneDataTypeManager dtm = new StandAloneDataTypeManager("Test");
|
||||
int id = dtm.startTransaction("");
|
||||
try {
|
||||
DataType byteDT = dtm.resolve(new ByteDataType(), null);
|
||||
|
||||
DataType myByteDT = dataMgr.resolve(byteDT, null);
|
||||
assertTrue(myByteDT == dataMgr.getDataType("/byte"));
|
||||
assertNotNull(myByteDT);
|
||||
assertEquals(myByteDT.getCategoryPath(), CategoryPath.ROOT);
|
||||
}
|
||||
finally {
|
||||
dtm.endTransaction(id, true);
|
||||
}
|
||||
DataType byteDT = dtm.resolve(new ByteDataType(), null);
|
||||
DataType myByteDT = dataMgr.resolve(byteDT, null);
|
||||
assertTrue(myByteDT == dataMgr.getDataType("/byte"));
|
||||
assertNotNull(myByteDT);
|
||||
assertEquals(myByteDT.getCategoryPath(), CategoryPath.ROOT);
|
||||
dtm.endTransaction(id, true);
|
||||
dtm.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testResolveDataType2() throws Exception {
|
||||
DataTypeManager dtm = new StandAloneDataTypeManager("Test");
|
||||
StandAloneDataTypeManager dtm = new StandAloneDataTypeManager("Test");
|
||||
int id = dtm.startTransaction("");
|
||||
Category otherRoot = dataMgr.getRootCategory();
|
||||
Category subc = otherRoot.createCategory("subc");
|
||||
|
@ -501,7 +489,7 @@ public class DataManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
|||
|
||||
@Test
|
||||
public void testResolveDataType3() throws Exception {
|
||||
DataTypeManager dtm = new StandAloneDataTypeManager("Test");
|
||||
StandAloneDataTypeManager dtm = new StandAloneDataTypeManager("Test");
|
||||
int id = dtm.startTransaction("");
|
||||
Category otherRoot = dataMgr.getRootCategory();
|
||||
Category subc = otherRoot.createCategory("subc");
|
||||
|
|
|
@ -459,10 +459,10 @@ public class DiffTest extends DiffTestAdapter {
|
|||
programBuilderDiffTest1.createMemory("d4", "0x400", 0x100);
|
||||
programBuilderDiffTest2.createMemory("d2", "0x200", 0x100);
|
||||
|
||||
programBuilderDiffTest2.createComment("0x01008000", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x01008607", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x01008a99", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x0100a001", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x01008000", "My comment", CommentType.EOL);
|
||||
programBuilderDiffTest2.createComment("0x01008607", "My comment", CommentType.EOL);
|
||||
programBuilderDiffTest2.createComment("0x01008a99", "My comment", CommentType.EOL);
|
||||
programBuilderDiffTest2.createComment("0x0100a001", "My comment", CommentType.EOL);
|
||||
|
||||
openDiff(diffTestP1, diffTestP2);
|
||||
JTree tree = getProgramTree();
|
||||
|
@ -528,10 +528,10 @@ public class DiffTest extends DiffTestAdapter {
|
|||
programBuilderDiffTest1.createMemory("d4", "0x400", 0x100);
|
||||
programBuilderDiffTest2.createMemory("d2", "0x200", 0x100);
|
||||
|
||||
programBuilderDiffTest2.createComment("0x01008000", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x01008607", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x01009943", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x0100a001", "My comment", CodeUnit.EOL_COMMENT);
|
||||
programBuilderDiffTest2.createComment("0x01008000", "My comment", CommentType.EOL);
|
||||
programBuilderDiffTest2.createComment("0x01008607", "My comment", CommentType.EOL);
|
||||
programBuilderDiffTest2.createComment("0x01009943", "My comment", CommentType.EOL);
|
||||
programBuilderDiffTest2.createComment("0x0100a001", "My comment", CommentType.EOL);
|
||||
|
||||
openDiff(diffTestP1, diffTestP2);
|
||||
JTree tree = getProgramTree();
|
||||
|
|
|
@ -71,11 +71,6 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
@Deprecated
|
||||
public static final int REPEATABLE_COMMENT = 4;
|
||||
|
||||
// /**
|
||||
// * Property type for fall through property
|
||||
// */
|
||||
// public static final int FALL_THROUGH = 4;
|
||||
|
||||
/**
|
||||
* Any comment property.
|
||||
*/
|
||||
|
@ -105,11 +100,13 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
|
||||
/**
|
||||
* Get the label for this code unit.
|
||||
* @return the label for this code unit.
|
||||
*/
|
||||
public String getLabel();
|
||||
|
||||
/**
|
||||
* Get the Symbols for this code unit.
|
||||
* @return the Symbols for this code unit.
|
||||
* @throws ConcurrentModificationException if this object is no
|
||||
* longer valid.
|
||||
*/
|
||||
|
@ -117,6 +114,7 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
|
||||
/**
|
||||
* Get the Primary Symbol for this code unit.
|
||||
* @return the Primary Symbol for this code unit.
|
||||
* @throws ConcurrentModificationException if this object is no
|
||||
* longer valid.
|
||||
*/
|
||||
|
@ -124,16 +122,19 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
|
||||
/**
|
||||
* Get the starting address for this code unit.
|
||||
* @return the starting address for this code unit.
|
||||
*/
|
||||
public Address getMinAddress();
|
||||
|
||||
/**
|
||||
* Get the ending address for this code unit.
|
||||
* @return the ending address for this code unit.
|
||||
*/
|
||||
public Address getMaxAddress();
|
||||
|
||||
/**
|
||||
* Get the mnemonic for this code unit, e.g., MOV, JMP
|
||||
* @return the mnemonic for this code unit, e.g., MOV, JMP
|
||||
*/
|
||||
public String getMnemonicString();
|
||||
|
||||
|
@ -143,7 +144,7 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
* @param commentType either EOL_COMMENT, PRE_COMMENT,
|
||||
* POST_COMMENT, or REPEATABLE_COMMENT
|
||||
* @return the comment string of the appropriate type or null if no comment of
|
||||
* that type exists for this codeunit
|
||||
* that type exists for this code unit
|
||||
* @throws IllegalArgumentException if type is not one of the
|
||||
* three types of comments supported
|
||||
* @deprecated use {@link #getComment(CommentType)} instead
|
||||
|
@ -250,7 +251,8 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
public byte[] getBytes() throws MemoryAccessException;
|
||||
|
||||
/**
|
||||
* Copies max(buffer.length, code unit length) bytes into buffer starting at location offset in buffer.
|
||||
* Copies max(buffer.length, code unit length) bytes into buffer starting at the given offset in
|
||||
* {@code buffer}.
|
||||
* @param buffer byte array to copy into
|
||||
* @param bufferOffset offset in byte array the copy will start
|
||||
* @throws MemoryAccessException if the full number of bytes could not be read.
|
||||
|
@ -260,6 +262,7 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
/**
|
||||
* Returns true if address is contained in the range of this codeUnit
|
||||
* @param testAddr the address to test.
|
||||
* @return true if address is contained in the range of this codeUnit
|
||||
*/
|
||||
public boolean contains(Address testAddr);
|
||||
|
||||
|
@ -297,12 +300,14 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
/**
|
||||
* Get the references for the operand index.
|
||||
* @param index operand index (0 is the first operand)
|
||||
* @return the references for the operand index.
|
||||
*/
|
||||
public Reference[] getOperandReferences(int index);
|
||||
|
||||
/**
|
||||
* Get the primary reference for the operand index.
|
||||
* @param index operand index (0 is the first operand)
|
||||
* @return the primary reference for the operand index.
|
||||
*/
|
||||
public Reference getPrimaryReference(int index);
|
||||
|
||||
|
@ -332,15 +337,16 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
|
||||
/**
|
||||
* Get an iterator over all references TO this code unit.
|
||||
* @return an iterator over all references TO this code unit.
|
||||
*/
|
||||
public ReferenceIterator getReferenceIteratorTo();
|
||||
|
||||
/**
|
||||
* Returns the program that generated this CodeUnit.
|
||||
* @return the program that generated this CodeUnit.
|
||||
*/
|
||||
public Program getProgram();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* Gets the external reference (if any) at the opIndex
|
||||
* @param opIndex the operand index to look for external references
|
||||
|
@ -351,6 +357,7 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
/**
|
||||
* Remove external reference (if any) at the given opIndex
|
||||
* opIndex the index of the operand from which to remove any external reference.
|
||||
* @param opIndex the op index
|
||||
*/
|
||||
public void removeExternalReference(int opIndex);
|
||||
|
||||
|
@ -397,6 +404,7 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
|
||||
/**
|
||||
* Get the number of operands for this code unit.
|
||||
* @return the number of operands for this code unit.
|
||||
*/
|
||||
public int getNumOperands();
|
||||
|
||||
|
@ -404,7 +412,7 @@ public interface CodeUnit extends MemBuffer, PropertySet {
|
|||
* Get the Address for the given operand index if one exists. Data
|
||||
* objects have one operand (the value).
|
||||
* @param opIndex index of the operand.
|
||||
* @return An addres if the operand represents a fully qualified
|
||||
* @return An address if the operand represents a fully qualified
|
||||
* address (given the context), or if the operand is a Scalar treated
|
||||
* as an address. Null is returned if no address or scalar exists on that
|
||||
* operand.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue