Skip to content

Commit

Permalink
Merge pull request #4 from nam-ng/dev
Browse files Browse the repository at this point in the history
update model and refactor API
  • Loading branch information
Hung-LeThai authored Apr 6, 2023
2 parents 8067100 + e22faa5 commit dd8512d
Show file tree
Hide file tree
Showing 17 changed files with 428 additions and 106 deletions.
4 changes: 4 additions & 0 deletions swtbot_test/src/common/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,8 @@ public class Constants {
public static final String CCRX_TOOLCHAIN = "CCRX";
public static final String FAMILY_DEVICE_RX = "RX";
public static final String FAMILY_DEVICE_RZ = "RZ";

// XML path
public static final String PLATFORM_XML_FILE = "xml/platformdata.xml";
public static final String RTOS_PG_XML_FILE = "xml/rtospg.xml";
}
40 changes: 40 additions & 0 deletions swtbot_test/src/model/AbstractNode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package model;

import java.util.ArrayList;
import java.util.Collection;

import org.w3c.dom.Element;

public class AbstractNode {
private Collection<String> toolchains = new ArrayList<>();
private Collection<String> boards = new ArrayList<>();

protected void parseFilter(String name, Element element) {
switch (name) {
case "toolchain":
addToolchains(element.getTextContent());
break;
case "board":
addBoard(element.getTextContent());
break;
default:
return;
}
}

private void addToolchains(String toolchain) {
toolchains.add(toolchain);
}

public Collection<String> getToolchains() {
return toolchains;
}

private void addBoard(String board) {
boards.add(board);
}

public Collection<String> getBoards() {
return boards;
}
}
21 changes: 16 additions & 5 deletions swtbot_test/src/model/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
public class Application {
private String appId;
private int appOrder;
private ProjectConfiguration configuration;
private Collection<Language> languages = new ArrayList<>();
private Collection<ProjectConfiguration> configuration = new ArrayList<>();
private Collection<Target> targets = new ArrayList<>();

public Application(Element element) {
Expand All @@ -24,9 +25,11 @@ public Application(Element element) {
Element childElement = (Element) childNode;
String name = childElement.getTagName();
if ("projectconfiguration".equalsIgnoreCase(name)) {
setProjectConfiguration(new ProjectConfiguration(childElement));
addProjectConfiguration(new ProjectConfiguration(childElement));
} else if ("target".equalsIgnoreCase(name)) {
addTarget(new Target(childElement));
} else if ("language".equalsIgnoreCase(name)) {
addLanguage(new Language(childElement));
}
}
}
Expand All @@ -50,12 +53,12 @@ private void parseAttribute(Element element) {
}
}

public ProjectConfiguration getProjectConfiguration() {
public Collection<ProjectConfiguration> getProjectConfiguration() {
return configuration;
}

private void setProjectConfiguration(ProjectConfiguration config) {
configuration = config;
private void addProjectConfiguration(ProjectConfiguration config) {
configuration.add(config);
}

public Collection<Target> getTargets() {
Expand All @@ -66,4 +69,12 @@ private void addTarget(Target target) {
targets.add(target);
}

public Collection<Language> getLanguages() {
return languages;
}

private void addLanguage(Language item) {
languages.add(item);
}

}
31 changes: 31 additions & 0 deletions swtbot_test/src/model/Language.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package model;

import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Language extends AbstractNode {
private String id;

public Language(Element element) {
parseAttribute(element);
NodeList children = element.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
Node childNode = children.item(i);
if (childNode.getNodeType() == Node.ELEMENT_NODE) {
Element childElement = (Element) childNode;
String name = childElement.getTagName();
parseFilter(name, childElement);
}
}
}

private void parseAttribute(Element element) {
id = element.getAttribute("id");
}

public String getId() {
return id;
}

}
4 changes: 3 additions & 1 deletion swtbot_test/src/model/ProjectConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class ProjectConfiguration {
public class ProjectConfiguration extends AbstractNode {
private Collection<Config> configs = new ArrayList<>();

public ProjectConfiguration(Element element) {
Expand All @@ -19,6 +19,8 @@ public ProjectConfiguration(Element element) {
String name = childElement.getTagName();
if ("config".equalsIgnoreCase(name)) {
configs.add(new Config(childElement));
} else {
parseFilter(name, childElement);
}
}
}
Expand Down
32 changes: 25 additions & 7 deletions swtbot_test/src/model/ProjectModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@
import parameters.ProjectParameters.BuildType;

public class ProjectModel {
private String language;
private String familyName;
private String projectName;
private String toolchain;
private String toolchainVersion;
private String board;
private String rtosType;
private String rtosVersion;
Expand All @@ -32,7 +34,7 @@ public boolean isUseHardwareDebugConfiguration() {
}
for (Entry<String, Boolean> entry : buildType.entrySet()) {
if (entry.getKey().equalsIgnoreCase(BuildType.HARDWARE)) {
return entry.getValue();
return true;
}
}
return false;
Expand All @@ -44,7 +46,7 @@ public boolean isUseDebugConfiguration() {
}
for (Entry<String, Boolean> entry : buildType.entrySet()) {
if (entry.getKey().equalsIgnoreCase(BuildType.DEBUG)) {
return entry.getValue();
return true;
}
}
return false;
Expand All @@ -56,7 +58,7 @@ public boolean isUseReleaseConfiguration() {
}
for (Entry<String, Boolean> entry : buildType.entrySet()) {
if (entry.getKey().equalsIgnoreCase(BuildType.RELEASE)) {
return entry.getValue();
return true;
}
}
return false;
Expand Down Expand Up @@ -122,6 +124,17 @@ public String getToolchain() {
return toolchain;
}

public void setToolchain(String toolchain) {
this.toolchain = toolchain;
}

public String getToolchainVersion() {
return toolchainVersion;
}

public void setToolchainVersion(String version) {
toolchainVersion = version;
}
public String getApplication() {
return rtosApplication;
}
Expand All @@ -135,12 +148,9 @@ public int getApplicationOrder() {
}

public void setApplicationOrder(int order) {
this.applicationOrder=order;
applicationOrder = order;
}

public void setToolchain(String toolchain) {
this.toolchain = toolchain;
}

public void setSkipApplication(boolean skipApp) {
skipApplication = skipApp;
Expand All @@ -150,4 +160,12 @@ public boolean isSkipApplication() {
return skipApplication;
}

public String getLanguage() {
return language;
}

public void setLanguage(String language) {
this.language = language;
}

}
17 changes: 17 additions & 0 deletions swtbot_test/src/model/RTOSManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,4 +91,21 @@ public static Application getApplication(String rtosType, String versionId, Stri
}
return version.getApplicationById(appId);
}

public static Application getApplication(String rtosType, String versionId, String appId, String toolchain, String board) {
RTOSVersion version = getVersionById(rtosType, versionId);
if (version == null) {
return null;
}
Application app = version.getApplicationById(appId);
if (app == null) {
return null;
}
for (Target target : app.getTargets()) {
if (target.getSupportedToolchainNames().contains(toolchain) && target.getSupportedBoardNames().contains(board)) {
return app;
}
}
return null;
}
}
21 changes: 18 additions & 3 deletions swtbot_test/src/model/Target.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import org.w3c.dom.NodeList;

public class Target {
private Collection<String> toolchains = new ArrayList<>();
private Collection<Toolchain> toolchains = new ArrayList<>();
private Collection<Board> boards = new ArrayList<>();

public Target(Element element) {
Expand All @@ -19,20 +19,35 @@ public Target(Element element) {
Element childElement = (Element) childNode;
String name = childElement.getTagName();
if ("toolchain".equalsIgnoreCase(name)) {
toolchains.add(childElement.getTextContent());
toolchains.add(new Toolchain(childElement));
} else if ("board".equalsIgnoreCase(name)) {
boards.add(new Board(childElement));
}
}
}
}

public Collection<String> getSupportedToolchains() {
public Collection<Toolchain> getSupportedToolchains() {
return toolchains;
}

public Collection<Board> getSupportedBoards() {
return boards;
}

public Collection<String> getSupportedToolchainNames() {
Collection<String> names = new ArrayList<>();
for (Toolchain item : toolchains) {
names.add(item.getName());
}
return names;
}

public Collection<String> getSupportedBoardNames() {
Collection<String> names = new ArrayList<>();
for (Board item : boards) {
names.add(item.getBoard());
}
return names;
}
}
25 changes: 25 additions & 0 deletions swtbot_test/src/model/Toolchain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package model;

import org.w3c.dom.Element;

public class Toolchain {
private String version;
private String name;

public Toolchain(Element element) {
parseAttribute(element);
name = element.getTextContent();
}

private void parseAttribute(Element element) {
version = element.getAttribute("version");
}

public String getVersion() {
return version;
}

public String getName() {
return name;
}
}
3 changes: 3 additions & 0 deletions swtbot_test/src/parameters/ProjectParameters.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ public class RTOSApplication {

public class TargetBoard {
public static final String CUSTOM = "Custom";
public static final String BOARD_RSK_RX65N_2MB = "RSKRX65N-2MB";
public static final String BOARD_CK_RX65N = "CK-RX65N";
}

public class ToolchainType {
Expand Down Expand Up @@ -108,6 +110,7 @@ public class ButtonAction {

public class LabelName {
public static final String LABEL_PROJECT_NAME = "&Project name:";
public static final String LABEL_TOOLCHAIN_VERSION = "&Toolchain Version:";
public static final String LABEL_RTOS = "&RTOS:";
public static final String LABEL_RTOS_VERSION = "&RTOS Version:";
public static final String LABEL_TARGET_BOARD = "&Target Board:";
Expand Down
12 changes: 6 additions & 6 deletions swtbot_test/src/parameters/parameter.properties
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
ContextMenuBuildConfigurations=Build Configurations
ContextMenuBuildProject=Build Project
DefaultProjectName=Project_Testing
GCCMenuActiveDebug=2 Debug
CCRXMenuActiveDebug=2 Debug (Debug)
GCCMenuActiveHardwareDebug=1 HardwareDebug
CCRXMenuActiveHardwareDebug=1 HardwareDebug (Debug on hardware)
GCCMenuActiveRelease=3 Release
CCRXMenuActiveRelease=3 Release (Release - No Debug)
GCCMenuActiveDebug=Debug
CCRXMenuActiveDebug=Debug (Debug)
GCCMenuActiveHardwareDebug=HardwareDebug
CCRXMenuActiveHardwareDebug=HardwareDebug (Debug on hardware)
GCCMenuActiveRelease=Release
CCRXMenuActiveRelease=Release (Release - No Debug)
MenuSetActive=Set Active
Message_Build_Successfully=Build Finished. 0 errors
ToolchainVersionCCRX=v3.04.00
Expand Down
8 changes: 4 additions & 4 deletions swtbot_test/src/swtbot_test/SampleTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.junit.Test;
import org.junit.runners.MethodSorters;

import common.Constants;
import common.LogUtil;
import model.RTOSManager;
import parameters.ProjectParameters.RTOSApplication;
Expand All @@ -21,14 +22,13 @@
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class SampleTest {
private static SWTWorkbenchBot bot;
private static final String PLATFORM_XML_FILE = "xml/platformdata.xml";
private static final String RTOS_PG_XML_FILE = "xml/rtospg.xml";


@BeforeClass
public static void beforeClass() throws Exception {
bot = new SWTWorkbenchBot();
PlatformModel.loadPlatformModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, PLATFORM_XML_FILE)));
RTOSManager.loadRTOSModel(new File(Utility.getBundlePath(LogUtil.PLUGIN_ID, RTOS_PG_XML_FILE)));
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)));
}

@Test
Expand Down
Loading

0 comments on commit dd8512d

Please sign in to comment.