mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-27 23:17:03 +08:00
Merge remote-tracking branch 'origin/GP-0-dragonmacher-test-fixes-2-26-26'
This commit is contained in:
+6
-22
@@ -35,11 +35,8 @@ import ghidra.app.plugin.core.navigation.NextPrevAddressPlugin;
|
|||||||
import ghidra.app.services.ClipboardContentProviderService;
|
import ghidra.app.services.ClipboardContentProviderService;
|
||||||
import ghidra.app.services.ProgramManager;
|
import ghidra.app.services.ProgramManager;
|
||||||
import ghidra.app.util.viewer.field.*;
|
import ghidra.app.util.viewer.field.*;
|
||||||
import ghidra.framework.model.DomainFile;
|
|
||||||
import ghidra.framework.model.DomainFolder;
|
|
||||||
import ghidra.framework.plugintool.PluginTool;
|
import ghidra.framework.plugintool.PluginTool;
|
||||||
import ghidra.program.database.ProgramBuilder;
|
import ghidra.program.database.ProgramBuilder;
|
||||||
import ghidra.program.database.ProgramDB;
|
|
||||||
import ghidra.program.model.address.Address;
|
import ghidra.program.model.address.Address;
|
||||||
import ghidra.program.model.address.AddressSet;
|
import ghidra.program.model.address.AddressSet;
|
||||||
import ghidra.program.model.listing.*;
|
import ghidra.program.model.listing.*;
|
||||||
@@ -48,7 +45,6 @@ import ghidra.program.util.AddressFieldLocation;
|
|||||||
import ghidra.program.util.ProgramSelection;
|
import ghidra.program.util.ProgramSelection;
|
||||||
import ghidra.test.AbstractProgramBasedTest;
|
import ghidra.test.AbstractProgramBasedTest;
|
||||||
import ghidra.test.ToyProgramBuilder;
|
import ghidra.test.ToyProgramBuilder;
|
||||||
import ghidra.util.task.TaskMonitor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test the plugin that deals with cut/paste comments and labels
|
* Test the plugin that deals with cut/paste comments and labels
|
||||||
@@ -57,8 +53,8 @@ public class CopyPasteCommentsTest extends AbstractProgramBasedTest {
|
|||||||
|
|
||||||
private PluginTool toolOne;
|
private PluginTool toolOne;
|
||||||
private PluginTool toolTwo;
|
private PluginTool toolTwo;
|
||||||
private ProgramDB programOne;
|
private Program programOne;
|
||||||
private ProgramDB programTwo;
|
private Program programTwo;
|
||||||
private ProgramManager pmOne;
|
private ProgramManager pmOne;
|
||||||
private ProgramManager pmTwo;
|
private ProgramManager pmTwo;
|
||||||
private CodeBrowserPlugin cb;
|
private CodeBrowserPlugin cb;
|
||||||
@@ -106,33 +102,21 @@ public class CopyPasteCommentsTest extends AbstractProgramBasedTest {
|
|||||||
setupTool(toolTwo);
|
setupTool(toolTwo);
|
||||||
cb2 = getPlugin(toolTwo, CodeBrowserPlugin.class);
|
cb2 = getPlugin(toolTwo, CodeBrowserPlugin.class);
|
||||||
|
|
||||||
DomainFolder rootFolder = env.getProject().getProjectData().getRootFolder();
|
programOne = program;
|
||||||
|
programTwo = buildProgram("sdk2");
|
||||||
Program sdk = program;
|
|
||||||
final DomainFile df = rootFolder.createFile("sdk1", sdk, TaskMonitor.DUMMY);
|
|
||||||
programOne = (ProgramDB) df.getDomainObject(this, true, false, TaskMonitor.DUMMY);
|
|
||||||
env.release(sdk);
|
|
||||||
|
|
||||||
Program sdk2 = buildProgram("sdk2");
|
|
||||||
final DomainFile df2 = rootFolder.createFile("sdk2", sdk2, TaskMonitor.DUMMY);
|
|
||||||
programTwo = (ProgramDB) df2.getDomainObject(this, true, false, TaskMonitor.DUMMY);
|
|
||||||
env.release(sdk2);
|
|
||||||
|
|
||||||
setupProgramOne();
|
setupProgramOne();
|
||||||
setupProgramTwo();
|
setupProgramTwo();
|
||||||
|
|
||||||
pmOne = toolOne.getService(ProgramManager.class);
|
pmOne = toolOne.getService(ProgramManager.class);
|
||||||
runSwing(() -> {
|
runSwing(() -> {
|
||||||
pmOne.openProgram(df);
|
pmOne.openProgram(programOne);
|
||||||
programOne = (ProgramDB) pmOne.getCurrentProgram();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
pmTwo = toolTwo.getService(ProgramManager.class);
|
pmTwo = toolTwo.getService(ProgramManager.class);
|
||||||
runSwing(() -> {
|
runSwing(() -> {
|
||||||
pmTwo.openProgram(df2);
|
pmTwo.openProgram(programTwo);
|
||||||
programTwo = (ProgramDB) pmTwo.getCurrentProgram();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
+2
@@ -128,6 +128,8 @@ public class PersistentOpenCloseManagerTest extends AbstractGhidraHeadedIntegrat
|
|||||||
assertTrue(openCloseMgr.isOpen(addr(0)));
|
assertTrue(openCloseMgr.isOpen(addr(0)));
|
||||||
assertFalse(openCloseMgr.isOpen(addr(100)));
|
assertFalse(openCloseMgr.isOpen(addr(100)));
|
||||||
assertFalse(openCloseMgr.isOpenByDefault());
|
assertFalse(openCloseMgr.isOpenByDefault());
|
||||||
|
|
||||||
|
program.release(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Address addr(long offset) {
|
private Address addr(long offset) {
|
||||||
|
|||||||
+6
-29
@@ -4,9 +4,9 @@
|
|||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
@@ -27,9 +27,6 @@ import ghidra.program.model.listing.Program;
|
|||||||
import ghidra.test.*;
|
import ghidra.test.*;
|
||||||
import ghidra.util.task.TaskMonitor;
|
import ghidra.util.task.TaskMonitor;
|
||||||
|
|
||||||
/**
|
|
||||||
* test for creating a new empty tool with the new front end
|
|
||||||
*/
|
|
||||||
public class CreateDomainObjectTest extends AbstractGhidraHeadedIntegrationTest {
|
public class CreateDomainObjectTest extends AbstractGhidraHeadedIntegrationTest {
|
||||||
|
|
||||||
private final static String PROJECT_NAME1 = "DomainObjTests";
|
private final static String PROJECT_NAME1 = "DomainObjTests";
|
||||||
@@ -38,14 +35,6 @@ public class CreateDomainObjectTest extends AbstractGhidraHeadedIntegrationTest
|
|||||||
private Project project;
|
private Project project;
|
||||||
private String testDir;
|
private String testDir;
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
* @param arg0
|
|
||||||
*/
|
|
||||||
public CreateDomainObjectTest() {
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
|
|
||||||
@@ -65,10 +54,6 @@ public class CreateDomainObjectTest extends AbstractGhidraHeadedIntegrationTest
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Test domain object.
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
@Test
|
@Test
|
||||||
public void testDomainObject() throws Exception {
|
public void testDomainObject() throws Exception {
|
||||||
|
|
||||||
@@ -136,18 +121,14 @@ public class CreateDomainObjectTest extends AbstractGhidraHeadedIntegrationTest
|
|||||||
project.close();
|
project.close();
|
||||||
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
||||||
Program prog = getProgram(project, "Prog2", this);
|
Program prog = getProgram(project, "Prog2", this);
|
||||||
if (prog != null) {
|
assertNull("deleteObject failed", prog);
|
||||||
Assert.fail("deleteObject failed");
|
|
||||||
}
|
|
||||||
|
|
||||||
// test 7 = test create folder
|
// test 7 = test create folder
|
||||||
createFolder(project, "Data");
|
createFolder(project, "Data");
|
||||||
project.close();
|
project.close();
|
||||||
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
||||||
DomainFolder folder = getFolder(project, "Data");
|
DomainFolder folder = getFolder(project, "Data");
|
||||||
if (folder == null) {
|
assertNotNull("Cannot create folder", folder);
|
||||||
Assert.fail("Cannot create folder");
|
|
||||||
}
|
|
||||||
|
|
||||||
// test 8 - test cannot create folder in root
|
// test 8 - test cannot create folder in root
|
||||||
// this is currently ok
|
// this is currently ok
|
||||||
@@ -158,9 +139,7 @@ public class CreateDomainObjectTest extends AbstractGhidraHeadedIntegrationTest
|
|||||||
project.close();
|
project.close();
|
||||||
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
||||||
folder = getFolder(project, "Data");
|
folder = getFolder(project, "Data");
|
||||||
if (folder != null) {
|
assertNull("Cannot delete folder", folder);
|
||||||
Assert.fail("Cannot delete folder");
|
|
||||||
}
|
|
||||||
|
|
||||||
// test 10 - rename folder
|
// test 10 - rename folder
|
||||||
createFolder(project, "Data");
|
createFolder(project, "Data");
|
||||||
@@ -168,9 +147,7 @@ public class CreateDomainObjectTest extends AbstractGhidraHeadedIntegrationTest
|
|||||||
project.close();
|
project.close();
|
||||||
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
project = ProjectTestUtils.getProject(testDir, PROJECT_NAME1);
|
||||||
folder = getFolder(project, "Data2");
|
folder = getFolder(project, "Data2");
|
||||||
if (folder == null) {
|
assertNotNull("Cannot create folder", folder);
|
||||||
Assert.fail("Cannot create folder");
|
|
||||||
}
|
|
||||||
|
|
||||||
// test 11 - test readOnly flag
|
// test 11 - test readOnly flag
|
||||||
createProgramReadOnly(project, "Prog1");
|
createProgramReadOnly(project, "Prog1");
|
||||||
|
|||||||
Reference in New Issue
Block a user