From 15f42f341487647b998fbe82022c448bc063e7da Mon Sep 17 00:00:00 2001 From: "Le T.Hung" Date: Tue, 18 Apr 2023 15:28:46 +0700 Subject: [PATCH] Improve TC defined in XML API --- swtbot_test/src/model/Application.java | 6 ++++ swtbot_test/src/model/Project.java | 12 +++---- swtbot_test/src/model/ProjectModel.java | 2 +- .../CreateAllAzureProjectBuildAllTest.java | 30 ++++++++++++++--- swtbot_test/src/testcase/TCExecute.java | 11 +------ swtbot_test/src/testcase/TrialTest.java | 11 +++---- swtbot_test/src/utilities/BuildUtility.java | 10 ++---- swtbot_test/src/utilities/PGUtility.java | 33 +++++++++---------- swtbot_test/src/utilities/Utility.java | 6 ++-- swtbot_test/xml/testcase.xml | 32 +++++++++++++----- 10 files changed, 90 insertions(+), 63 deletions(-) diff --git a/swtbot_test/src/model/Application.java b/swtbot_test/src/model/Application.java index 8331bd2..9860db4 100644 --- a/swtbot_test/src/model/Application.java +++ b/swtbot_test/src/model/Application.java @@ -12,6 +12,7 @@ public class Application { private String appId; private int appOrder; + private boolean skipApp = false; private Collection languages = new ArrayList<>(); private Collection configuration = new ArrayList<>(); private Collection targets = new ArrayList<>(); @@ -46,8 +47,13 @@ public int getApplicationOrder() { return appOrder; } + public boolean isSkipApp() { + return skipApp; + } + private void parseAttribute(Element element) { appId = element.getAttribute("id"); + skipApp = Boolean.parseBoolean(element.getAttribute("skipapp")); try { appOrder = Integer.parseInt(element.getAttribute("order")); } catch (Exception e) { diff --git a/swtbot_test/src/model/Project.java b/swtbot_test/src/model/Project.java index 6377aa8..7d65a48 100644 --- a/swtbot_test/src/model/Project.java +++ b/swtbot_test/src/model/Project.java @@ -11,7 +11,7 @@ public class Project { private String id; private String projectName; private Collection groupSettings = new ArrayList<>(); - private Application app; + private Collection apps = new ArrayList<>(); public Project(Element element) { parseAttribute(element); @@ -26,7 +26,7 @@ public Project(Element element) { } else if ("group".equalsIgnoreCase(name)) { addGroupSetting(new GroupSetting(childElement)); } else if ("application".equalsIgnoreCase(name)) { - setApplication(new Application(childElement)); + addApplication(new Application(childElement)); } } } @@ -61,11 +61,11 @@ public GroupSetting getGroupSettingById(String id) { return null; } - private void setApplication(Application app) { - this.app = app; + private void addApplication(Application app) { + apps.add(app); } - public Application getApp() { - return app; + public Collection getApps() { + return apps; } } diff --git a/swtbot_test/src/model/ProjectModel.java b/swtbot_test/src/model/ProjectModel.java index bfb96a0..0803d98 100644 --- a/swtbot_test/src/model/ProjectModel.java +++ b/swtbot_test/src/model/ProjectModel.java @@ -7,7 +7,7 @@ import parameters.ProjectParameters.BuildType; public class ProjectModel { - private String language; + private String language = "C"; // default C project private String familyName; private String projectName; private String toolchain; diff --git a/swtbot_test/src/testcase/CreateAllAzureProjectBuildAllTest.java b/swtbot_test/src/testcase/CreateAllAzureProjectBuildAllTest.java index e897f20..f4fcb58 100644 --- a/swtbot_test/src/testcase/CreateAllAzureProjectBuildAllTest.java +++ b/swtbot_test/src/testcase/CreateAllAzureProjectBuildAllTest.java @@ -2,7 +2,11 @@ import java.io.File; +import org.eclipse.swt.widgets.Display; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; +import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; import org.junit.BeforeClass; import org.junit.FixMethodOrder; import org.junit.Test; @@ -22,6 +26,7 @@ @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class CreateAllAzureProjectBuildAllTest { private static SWTWorkbenchBot bot; + private static SWTBotShell workbenchShell; @BeforeClass @@ -29,11 +34,28 @@ public static void beforeClass() throws Exception { bot = new SWTWorkbenchBot(); PlatformModel.loadPlatformModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, Constants.PLATFORM_XML_FILE))); RTOSManager.loadRTOSModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, Constants.RTOS_PG_XML_FILE))); + + // initialize the SWTBot + bot = new SWTWorkbenchBot(); + Display.getDefault().syncExec(new Runnable() { + + @Override + public void run() { + bot.getDisplay().getActiveShell().setMaximized(true); + } + }); + SWTBotPreferences.TIMEOUT = 20000; + SWTBotPreferences.PLAYBACK_DELAY = 30; + closeWelcomePage(); + workbenchShell = bot.activeShell(); } - @Test - public void TC_011_closeWelcome() throws Exception { - bot.viewByTitle("Welcome").close(); + private static void closeWelcomePage() { + for (SWTBotView view : bot.views()) { + if (view.getTitle().equals("Welcome")) { + view.close(); + } + } } @Test @@ -123,7 +145,7 @@ public void TC_181_PG_Bootloader() throws Exception { @Test public void TC_191_BuildAll() throws Exception { - BuildUtility.buildAll(); + BuildUtility.buildAll(workbenchShell); } } \ No newline at end of file diff --git a/swtbot_test/src/testcase/TCExecute.java b/swtbot_test/src/testcase/TCExecute.java index 8a230b9..b6e3a9b 100644 --- a/swtbot_test/src/testcase/TCExecute.java +++ b/swtbot_test/src/testcase/TCExecute.java @@ -16,23 +16,16 @@ import common.Constants; import common.LogUtil; -import model.ProjectModel; import model.RTOSManager; import model.TC; import model.TCManager; -import parameters.ProjectParameters.RTOSApplication; -import parameters.ProjectParameters.RTOSType; -import parameters.ProjectParameters.RTOSVersion; -import parameters.ProjectParameters.TargetBoard; import platform.PlatformModel; -import utilities.PGUtility; import utilities.Utility; @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class TCExecute { private static SWTWorkbenchBot bot; private static SWTBotShell workbenchShell; - private static ProjectModel model; private static Collection tces; @BeforeClass @@ -41,8 +34,6 @@ public static void beforeClass() throws Exception { PlatformModel .loadPlatformModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, Constants.PLATFORM_XML_FILE))); RTOSManager.loadRTOSModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, Constants.RTOS_PG_XML_FILE))); - model = PGUtility.prepareProjectModel(RTOSType.AZURE, RTOSVersion.Azure_6_2_1, RTOSApplication.AZURE_IOT_ADU, - Constants.GCC_TOOLCHAIN, TargetBoard.BOARD_CK_RX65N); TCManager.loadRTOSModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, Constants.TC_XML_FILE))); tces = TCManager.getAllTCes(); @@ -74,7 +65,7 @@ public void TC_00_execute () throws ParseException { workbenchShell.setFocus(); Utility.changeRTOSLocation(); for (TC tc : tces) { - Utility.executeTCStep(tc); + Utility.executeTCStep(tc, workbenchShell); } } } diff --git a/swtbot_test/src/testcase/TrialTest.java b/swtbot_test/src/testcase/TrialTest.java index 7e68502..413ba47 100644 --- a/swtbot_test/src/testcase/TrialTest.java +++ b/swtbot_test/src/testcase/TrialTest.java @@ -1,7 +1,6 @@ package testcase; import java.io.File; - import org.eclipse.swt.widgets.Display; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; @@ -14,7 +13,6 @@ import common.Constants; import common.LogUtil; -import model.ProjectModel; import model.RTOSManager; import parameters.ProjectParameters.RTOSApplication; import parameters.ProjectParameters.RTOSType; @@ -28,7 +26,6 @@ public class TrialTest { private static SWTWorkbenchBot bot; private static SWTBotShell workbenchShell; - private static ProjectModel model; @BeforeClass public static void beforeClass() throws Exception { @@ -36,8 +33,6 @@ public static void beforeClass() throws Exception { PlatformModel .loadPlatformModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, Constants.PLATFORM_XML_FILE))); RTOSManager.loadRTOSModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, Constants.RTOS_PG_XML_FILE))); - model = PGUtility.prepareProjectModel(RTOSType.AZURE, RTOSVersion.Azure_6_2_1, RTOSApplication.AZURE_IOT_ADU, - Constants.GCC_TOOLCHAIN, TargetBoard.BOARD_CK_RX65N); // initialize the SWTBot bot = new SWTWorkbenchBot(); @@ -66,6 +61,10 @@ private static void closeWelcomePage() { public void TC_02_createProject() { workbenchShell.setFocus(); Utility.changeRTOSLocation(); - PGUtility.createProject(RTOSType.AZURE, RTOSVersion.Azure_6_2_1, RTOSApplication.AZURE_IOT_ADU); + PGUtility.createProject(RTOSType.AZURE, RTOSVersion.Azure_6_2_1, RTOSApplication.AZURE_BARE, + Constants.GCC_TOOLCHAIN, TargetBoard.BOARD_CK_RX65N); + workbenchShell.setFocus(); + //build All + bot.menu(workbenchShell).menu("Project").menu("Build All").click(); } } diff --git a/swtbot_test/src/utilities/BuildUtility.java b/swtbot_test/src/utilities/BuildUtility.java index d9ae1e1..9bb32bb 100644 --- a/swtbot_test/src/utilities/BuildUtility.java +++ b/swtbot_test/src/utilities/BuildUtility.java @@ -3,10 +3,8 @@ import java.util.ArrayList; import java.util.List; -import org.eclipse.jface.bindings.keys.KeyStroke; -import org.eclipse.jface.bindings.keys.ParseException; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; -import org.eclipse.swtbot.swt.finder.keyboard.Keystrokes; +import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem; import common.Constants; @@ -112,9 +110,7 @@ public static void deleteProject(ProjectModel model) { } - public static void buildAll() throws ParseException { - bot.sleep(3000); - bot.shell().pressShortcut(Keystrokes.CTRL, Keystrokes.ALT, KeyStroke.getInstance("B")); - bot.sleep(3000); + public static void buildAll(SWTBotShell shell){ + bot.menu(shell).menu("Project").menu("Build All").click(); } } diff --git a/swtbot_test/src/utilities/PGUtility.java b/swtbot_test/src/utilities/PGUtility.java index c6096be..afa8032 100644 --- a/swtbot_test/src/utilities/PGUtility.java +++ b/swtbot_test/src/utilities/PGUtility.java @@ -164,19 +164,16 @@ public static Collection prepareProjectModel(TC tc) { GroupSetting toolSetting = project.getGroupSettingById("toolchain"); GroupSetting deviceSetting = project.getGroupSettingById("device"); GroupSetting configSetting = project.getGroupSettingById("configuration"); - if (toolSetting != null) { - for (Toolchain toolchain : toolSetting.getToolchains()) { - if (deviceSetting == null) { - continue; - } - for (Board board : deviceSetting.getBoards()) { + if (toolSetting == null) { + return results; + } + for (Toolchain toolchain : toolSetting.getToolchains()) { + if (deviceSetting == null) { + continue; + } + for (Board board : deviceSetting.getBoards()) { + for (Application app : project.getApps()) { ProjectModel model = new ProjectModel(); - if (deviceSetting.getBoards().size() == 1) { - model.setProjectName(project.getProjectName()); - } else { - model.setProjectName( - project.getProjectName() + "_" + toolchain.getName() + "_" + getProjectNameByBoard(board.getBoard())); - } if (toolSetting.getLanguage() != null) { model.setLanguage(toolSetting.getLanguage().getId()); } @@ -193,11 +190,13 @@ public static Collection prepareProjectModel(TC tc) { } else { model.setBuildType(BuildType.HARDWARE, true); } - if (project.getApp() != null) { - model.setApplication(project.getApp().getApplicationId()); - model.setApplicationOrder(project.getApp().getApplicationOrder()); - model.setRXCLinkerFile(getRXCLinkerFile(project.getApp().getLinkerFiles(), toolchain.getName(), board.getBoard())); - } + model.setProjectName(app.getApplicationId() + "_" + toolchain.getName() + "_" + + getProjectNameByBoard(board.getBoard())); + model.setApplication(app.getApplicationId()); + model.setApplicationOrder(app.getApplicationOrder()); + model.setSkipApplication(app.isSkipApp()); + model.setRXCLinkerFile( + getRXCLinkerFile(app.getLinkerFiles(), toolchain.getName(), board.getBoard())); results.add(model); } } diff --git a/swtbot_test/src/utilities/Utility.java b/swtbot_test/src/utilities/Utility.java index 85dae05..6f8eb83 100644 --- a/swtbot_test/src/utilities/Utility.java +++ b/swtbot_test/src/utilities/Utility.java @@ -399,7 +399,7 @@ public static void updateRXCLinkerSection(ProjectModel model, String rxcLinkerFi dialogBot.waitUntil(Conditions.shellCloses(reDialog)); } - public static void executeTCStep(TC tc) throws ParseException { + public static void executeTCStep(TC tc, SWTBotShell shell) throws ParseException { // create project or import project or using current project Collection result = null; for (Project project : tc.getProjects()) { @@ -428,8 +428,8 @@ public int compare(Action o1, Action o2) { Utility.changeBoard(model, null, null, true, false); } } - } else if (action.getActionId().equalsIgnoreCase("buildproject")) { - BuildUtility.buildAll(); + } else if (action.getActionId().equalsIgnoreCase("buildAll")) { + BuildUtility.buildAll(shell); } } } diff --git a/swtbot_test/xml/testcase.xml b/swtbot_test/xml/testcase.xml index 0771363..cab55bc 100644 --- a/swtbot_test/xml/testcase.xml +++ b/swtbot_test/xml/testcase.xml @@ -2,24 +2,38 @@ - adu - GCC - CCRX + AzureRTOS 6.2.1_rel-rx-1.0.0 CK-RX65N - RSKRX65N-2MB + + CloudKitRX65N - - + + + + + + + + + GCC + + AzureRTOS + 6.2.1_rel-rx-1.0.0 + + + CK-RX65N - + + + - - + \ No newline at end of file