Skip to content

Commit df4dd32

Browse files
committed
GP-0 Corrected test failures related to recent changes.
1 parent 2ae048e commit df4dd32

File tree

6 files changed

+48
-6
lines changed

6 files changed

+48
-6
lines changed

Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/progmgr/ProgramManagerPlugin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,9 +374,11 @@ private void doCloseAllPrograms(List<Program> openPrograms, boolean ignoreChange
374374
for (Program p : openPrograms) {
375375
if (ignoreChanges) {
376376
toRemove.add(p);
377+
continue;
377378
}
378379
else if (p.isClosed()) {
379380
toRemove.add(p);
381+
continue;
380382
}
381383

382384
if (!tool.canCloseDomainObject(p)) {

Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/codebrowser/CodeBrowserScreenMovementTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import docking.widgets.fieldpanel.support.FieldSelection;
3535
import ghidra.app.cmd.data.CreateDataCmd;
3636
import ghidra.app.cmd.data.CreateStructureCmd;
37+
import ghidra.app.events.OpenProgramPluginEvent;
3738
import ghidra.app.events.ProgramSelectionPluginEvent;
3839
import ghidra.app.services.ProgramManager;
3940
import ghidra.app.util.viewer.field.*;
@@ -382,6 +383,9 @@ public void testConnectedBrowsers() throws Exception {
382383

383384
env.connectTools(tool, tool2);
384385

386+
// open same program in second tool - cannot rely on tool connection for this
387+
tool2.firePluginEvent(new OpenProgramPluginEvent("Test", program));
388+
385389
codeBrowser.goToField(addr("0x1006420"), "Address", 0, 0);
386390
assertEquals("01006420", cb2.getCurrentFieldText());
387391

@@ -795,8 +799,7 @@ private void bottomOfFile(final FieldPanel fp1) {
795799
private void resetFormatOptions(CodeBrowserPlugin plugin) {
796800
Options fieldOptions = plugin.getFormatManager().getFieldOptions();
797801
List<String> names = fieldOptions.getOptionNames();
798-
for (int i = 0; i < names.size(); i++) {
799-
String name = names.get(i);
802+
for (String name : names) {
800803
if (!name.startsWith("Format Code")) {
801804
continue;
802805
}

Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/codebrowser/CodeBrowserTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import docking.widgets.fieldpanel.support.*;
3434
import docking.widgets.table.GTable;
3535
import ghidra.app.cmd.data.CreateDataCmd;
36+
import ghidra.app.events.OpenProgramPluginEvent;
3637
import ghidra.app.events.ProgramSelectionPluginEvent;
3738
import ghidra.app.plugin.core.codebrowser.SelectEndpointsAction.RangeEndpoint;
3839
import ghidra.app.plugin.core.navigation.NextPrevAddressPlugin;
@@ -382,6 +383,9 @@ public void testSelectionConnectedBrowsers() throws Exception {
382383

383384
env.connectTools(tool, tool2);
384385

386+
// open same program in second tool - cannot rely on tool connection for this
387+
tool2.firePluginEvent(new OpenProgramPluginEvent("Test", program));
388+
385389
cb.goToField(addr("0x1003a50"), "Bytes", 0, 4);
386390
Point p1 = getCursorPoint();
387391
cb.goToField(addr("0x1003a5e"), "Mnemonic", 0, 0, 2, false);

Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/comments/CommentsPluginTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import generic.test.TestUtils;
3232
import ghidra.GhidraOptions;
3333
import ghidra.app.cmd.data.CreateDataCmd;
34+
import ghidra.app.events.OpenProgramPluginEvent;
3435
import ghidra.app.events.ProgramLocationPluginEvent;
3536
import ghidra.app.plugin.core.codebrowser.CodeBrowserPlugin;
3637
import ghidra.app.plugin.core.navigation.GoToAddressLabelPlugin;
@@ -231,7 +232,10 @@ public void testEolFieldToolInteraction() throws Exception {
231232

232233
env.connectTools(tool, tool2);
233234
env.connectTools(tool2, tool);
234-
env.open(program); // do this again now that the tools are in-sync
235+
env.open(program);
236+
237+
// open same program in second tool - cannot rely on tool connection for this
238+
tool2.firePluginEvent(new OpenProgramPluginEvent("Test", program));
235239

236240
Address addr = addr(0x01006420);
237241
sendProgramLocation(addr, CodeUnit.EOL_COMMENT);

Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/progmgr/MultiTabPluginTest.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,13 @@ public void testCloseTab() throws Exception {
136136
assertNotNull(iconLabel);
137137
Point p = iconLabel.getLocationOnScreen();
138138
clickMouse(iconLabel, MouseEvent.BUTTON1, p.x + 1, p.y + 1, 1, 0);
139+
140+
JDialog dlg = waitForJDialog("Program Changed");
141+
JButton button = findButtonByText(dlg, "Continue");
142+
pressButton(button);
143+
144+
waitForSwing();
145+
139146
assertEquals(2, panel.getTabCount());
140147
}
141148

@@ -160,9 +167,23 @@ public void testCloseAll() throws Exception {
160167
JLabel iconLabel = (JLabel) findComponentByName(tab, "Close");
161168
Point p = iconLabel.getLocationOnScreen();
162169
clickMouse(iconLabel, MouseEvent.BUTTON1, p.x + 1, p.y + 1, 1, 0);
170+
171+
JDialog dlg = waitForJDialog("Program Changed");
172+
JButton button = findButtonByText(dlg, "Continue");
173+
pressButton(button);
163174
}
164175

165-
runSwing(() -> panel.removeProgram(programs[programs.length - 1]));
176+
// Last program does not have a tab
177+
ProgramManagerPlugin programMgr = env.getPlugin(ProgramManagerPlugin.class);
178+
runSwingLater(() -> programMgr.closeProgram());
179+
180+
waitForSwing();
181+
182+
JDialog dlg = waitForJDialog("Program Changed");
183+
JButton button = findButtonByText(dlg, "Continue");
184+
pressButton(button);
185+
186+
waitForSwing();
166187

167188
assertEquals(0, panel.getTabCount());
168189
}

Ghidra/Features/ByteViewer/src/test.slow/java/ghidra/app/plugin/core/byteviewer/ByteViewerConnectedToolBehaviorTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import docking.DefaultActionContext;
2828
import docking.action.ToggleDockingAction;
2929
import docking.widgets.fieldpanel.support.FieldLocation;
30+
import ghidra.app.events.OpenProgramPluginEvent;
3031
import ghidra.app.plugin.core.format.*;
3132
import ghidra.app.plugin.core.navigation.NavigationHistoryPlugin;
3233
import ghidra.app.plugin.core.navigation.NextPrevAddressPlugin;
@@ -70,6 +71,13 @@ public void setUp() throws Exception {
7071
env.connectTools(toolOne, tool2);
7172

7273
program = buildNotepad();
74+
75+
// open program in toolOne
76+
env.open(program);
77+
78+
// open same program in second tool - cannot rely on tool connection for this
79+
tool2.firePluginEvent(new OpenProgramPluginEvent("Test", program));
80+
7381
final ProgramManager pm = toolOne.getService(ProgramManager.class);
7482
runSwing(() -> pm.openProgram(program.getDomainFile()));
7583
}
@@ -223,8 +231,8 @@ private Address getAddr(long offset) {
223231
}
224232

225233
private Address convertToAddr(ByteViewerPlugin plugin, ByteBlockInfo info) {
226-
return ((ProgramByteBlockSet) plugin.getProvider().getByteBlockSet()).getAddress(
227-
info.getBlock(), info.getOffset());
234+
return ((ProgramByteBlockSet) plugin.getProvider().getByteBlockSet())
235+
.getAddress(info.getBlock(), info.getOffset());
228236
}
229237

230238
private boolean byteBlockSelectionEquals(ByteBlockSelection b1, ByteBlockSelection b2) {

0 commit comments

Comments
 (0)