mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 17:11:11 -09:00
GP-0 fix timing issue in EncodedStringsDialog test
This commit is contained in:
@@ -22,37 +22,36 @@ import java.nio.charset.StandardCharsets;
|
|||||||
|
|
||||||
import org.junit.*;
|
import org.junit.*;
|
||||||
|
|
||||||
|
import docking.ActionContext;
|
||||||
import docking.action.DockingActionIf;
|
import docking.action.DockingActionIf;
|
||||||
import ghidra.framework.plugintool.PluginTool;
|
|
||||||
import ghidra.program.database.ProgramDB;
|
import ghidra.program.database.ProgramDB;
|
||||||
import ghidra.program.model.address.*;
|
import ghidra.program.model.address.AddressRange;
|
||||||
|
import ghidra.program.model.address.AddressRangeImpl;
|
||||||
import ghidra.program.model.data.AbstractStringDataType;
|
import ghidra.program.model.data.AbstractStringDataType;
|
||||||
import ghidra.program.model.listing.Data;
|
import ghidra.program.model.listing.Data;
|
||||||
import ghidra.program.model.mem.MemoryBlock;
|
import ghidra.program.model.mem.MemoryBlock;
|
||||||
import ghidra.test.*;
|
import ghidra.test.AbstractProgramBasedTest;
|
||||||
|
import ghidra.test.ToyProgramBuilder;
|
||||||
import ghidra.util.Swing;
|
import ghidra.util.Swing;
|
||||||
|
|
||||||
public class EncodedStringsDialogTest extends AbstractGhidraHeadedIntegrationTest {
|
public class EncodedStringsDialogTest extends AbstractProgramBasedTest {
|
||||||
private TestEnv env;
|
|
||||||
private ProgramDB program;
|
|
||||||
private PluginTool tool;
|
|
||||||
private MemoryBlock ram;
|
private MemoryBlock ram;
|
||||||
private DockingActionIf encodedStringsAction;
|
private DockingActionIf encodedStringsAction;
|
||||||
private EncodedStringsDialog dialog;
|
private EncodedStringsDialog dialog;
|
||||||
private EncodedStringsTableModel tableModel;
|
private EncodedStringsTableModel tableModel;
|
||||||
private EncodedStringsPlugin plugin;
|
private EncodedStringsPlugin plugin;
|
||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
env = new TestEnv();
|
initialize();
|
||||||
program = buildProgram();
|
|
||||||
ram = program.getMemory().getBlock("RAM");
|
ram = program.getMemory().getBlock("RAM");
|
||||||
tool = env.launchDefaultTool(program);
|
|
||||||
plugin = env.addPlugin(EncodedStringsPlugin.class);
|
plugin = env.addPlugin(EncodedStringsPlugin.class);
|
||||||
encodedStringsAction = plugin.getSearchForEncodedStringsAction();
|
encodedStringsAction = plugin.getSearchForEncodedStringsAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ProgramDB buildProgram() throws Exception {
|
@Override
|
||||||
|
protected ProgramDB getProgram() throws Exception {
|
||||||
ToyProgramBuilder builder = new ToyProgramBuilder("String Examples", false);
|
ToyProgramBuilder builder = new ToyProgramBuilder("String Examples", false);
|
||||||
builder.createMemory("RAM", "0x0", 0x500);
|
builder.createMemory("RAM", "0x0", 0x500);
|
||||||
|
|
||||||
@@ -78,10 +77,13 @@ public class EncodedStringsDialogTest extends AbstractGhidraHeadedIntegrationTes
|
|||||||
return builder.getProgram();
|
return builder.getProgram();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Address addr(long offset) {
|
private ActionContext getCBAC() {
|
||||||
return ram.getStart().getNewAddress(offset);
|
return runSwing(() -> {
|
||||||
|
return codeBrowser.getProvider().getActionContext(null);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
closeDialog();
|
closeDialog();
|
||||||
@@ -99,7 +101,7 @@ public class EncodedStringsDialogTest extends AbstractGhidraHeadedIntegrationTes
|
|||||||
private void showDialog(AddressRange range) {
|
private void showDialog(AddressRange range) {
|
||||||
closeDialog();
|
closeDialog();
|
||||||
makeSelection(tool, program, range.getMinAddress(), range.getMaxAddress());
|
makeSelection(tool, program, range.getMinAddress(), range.getMaxAddress());
|
||||||
performAction(encodedStringsAction, false);
|
performAction(encodedStringsAction, getCBAC(), false);
|
||||||
dialog = waitForDialogComponent(EncodedStringsDialog.class);
|
dialog = waitForDialogComponent(EncodedStringsDialog.class);
|
||||||
tableModel = dialog.getStringModel();
|
tableModel = dialog.getStringModel();
|
||||||
waitForTableModel(tableModel);
|
waitForTableModel(tableModel);
|
||||||
|
|||||||
Reference in New Issue
Block a user