use of io.sloeber.core.api.CodeDescription in project arduino-eclipse-plugin by Sloeber.
the class RegressionTest method issue1047_Board_Names_Can_Be_used_as_Strings.
/**
* support void loop{};
*
* @throws Exception
*/
@Test
public void issue1047_Board_Names_Can_Be_used_as_Strings() throws Exception {
MCUBoard unoBoard = ESP8266.nodeMCU();
String projectName = "issue1047_Board_Names_Can_Be_used_as_Strings";
IPath templateFolder = Shared.getTemplateFolder(projectName);
CodeDescription codeDescriptor = CodeDescription.createCustomTemplate(templateFolder);
try {
IProject theTestProject = SloeberProject.createArduinoProject(projectName, null, unoBoard.getBoardDescriptor(), codeDescriptor, new CompileDescription(), new NullProgressMonitor());
// for the indexer
Shared.waitForAllJobsToFinish();
theTestProject.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
if (Shared.hasBuildErrors(theTestProject)) {
fail("Failed to compile the project:" + projectName + " issue1047 is not fixed");
}
} catch (Exception e) {
e.printStackTrace();
fail("Failed to create the project:" + projectName);
return;
}
}
use of io.sloeber.core.api.CodeDescription in project arduino-eclipse-plugin by Sloeber.
the class RegressionTest method openAndClosePreservesSettings.
/**
* open and close a project should keep the compileDescription and
* BoardDescriotion
*
* @throws Exception
*/
@Test
public void openAndClosePreservesSettings() throws Exception {
BoardDescription unoBoardid = Arduino.uno().getBoardDescriptor();
IProject theTestProject = null;
String projectName = "openAndClose";
CodeDescription codeDescriptor = new CodeDescription(CodeDescription.CodeTypes.defaultCPP);
CompileDescription inCompileDescription = getBunkersCompileDescription();
theTestProject = SloeberProject.createArduinoProject(projectName, null, unoBoardid, codeDescriptor, inCompileDescription, new NullProgressMonitor());
// Read the data we want to test
// for the indexer
Shared.waitForAllJobsToFinish();
SloeberProject sloeberDesc = SloeberProject.getSloeberProject(theTestProject);
ICProjectDescription projDesc = CoreModel.getDefault().getProjectDescription(theTestProject);
ICConfigurationDescription confDesc = projDesc.getActiveConfiguration();
BoardDescription createdBoardDesc = sloeberDesc.getBoardDescription(confDesc.getName(), false);
CompileDescription createdCompileDesc = sloeberDesc.getCompileDescription(confDesc.getName(), false);
// close and reopen the project
theTestProject.close(null);
// just wait a while
Thread.sleep(1000);
Shared.waitForAllJobsToFinish();
theTestProject.open(null);
Shared.waitForAllJobsToFinish();
// read the data we want to test
sloeberDesc = SloeberProject.getSloeberProject(theTestProject);
projDesc = CoreModel.getDefault().getProjectDescription(theTestProject);
confDesc = projDesc.getActiveConfiguration();
BoardDescription reopenedBoardDesc = sloeberDesc.getBoardDescription(confDesc.getName(), false);
CompileDescription reopenedCompileDesc = sloeberDesc.getCompileDescription(confDesc.getName(), false);
// check the data is equal
boolean createBoardsDiff = !unoBoardid.equals(createdBoardDesc);
boolean createCompileDiff = !inCompileDescription.equals(createdCompileDesc);
boolean openBoardsDiff = !reopenedBoardDesc.equals(createdBoardDesc);
boolean openCompileDiff = !reopenedCompileDesc.equals(createdCompileDesc);
if (createBoardsDiff || createCompileDiff) {
fail("Created project does not match creation parameters.");
}
if (openBoardsDiff || openCompileDiff) {
fail("Opened project does not match closed project parameters.");
}
// also do a build
// for the indexer
Shared.waitForAllJobsToFinish();
theTestProject.build(IncrementalProjectBuilder.FULL_BUILD, null);
if (Shared.hasBuildErrors(theTestProject)) {
fail("Failed to compile the project:" + projectName);
}
}
use of io.sloeber.core.api.CodeDescription in project arduino-eclipse-plugin by Sloeber.
the class RegressionTest method create_CPP_based_Sloeber_Project.
@Test
public void create_CPP_based_Sloeber_Project() throws Exception {
BoardDescription unoBoardid = Arduino.uno().getBoardDescriptor();
IProject theTestProject = null;
String projectName = "createCPPProject";
CodeDescription codeDescriptor = CodeDescription.createDefaultCPP();
try {
theTestProject = SloeberProject.createArduinoProject(projectName, null, unoBoardid, codeDescriptor, new CompileDescription(), new NullProgressMonitor());
// for the indexer
Shared.waitForAllJobsToFinish();
theTestProject.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
if (Shared.hasBuildErrors(theTestProject)) {
fail("Failed to compile the project:" + projectName + " CPP project no longer work");
}
} catch (Exception e) {
e.printStackTrace();
fail("Failed to create the project:" + projectName);
return;
}
}
use of io.sloeber.core.api.CodeDescription in project arduino-eclipse-plugin by Sloeber.
the class RegressionTest method closeProjectRemovesPropertiesSloeber.
@Test
public void closeProjectRemovesPropertiesSloeber() throws Exception {
String DummyData = "a object";
String projectName = "closeProjectRemovesPropertiesSloeber";
QualifiedName qualifiedName = new QualifiedName("io.sloebertest", projectName);
BoardDescription unoBoardid = Arduino.uno().getBoardDescriptor();
CodeDescription codeDescriptor = new CodeDescription(CodeDescription.CodeTypes.defaultCPP);
CompileDescription inCompileDescription = getBunkersCompileDescription();
IProject project = SloeberProject.createArduinoProject(projectName, null, unoBoardid, codeDescriptor, inCompileDescription, new NullProgressMonitor());
// Read the data we want to test
// for the indexer
Shared.waitForAllJobsToFinish();
// project.open(null);
project.setSessionProperty(qualifiedName, DummyData);
project.close(null);
project.open(null);
Object projData = project.getSessionProperty(qualifiedName);
if (projData != null) {
fail("non persistent projectdescription properties behave persistent during project close open in Sloeber");
}
}
use of io.sloeber.core.api.CodeDescription in project arduino-eclipse-plugin by Sloeber.
the class CreateAndCompileExamplesTest method examples.
@SuppressWarnings("rawtypes")
@Parameters(name = "{0}")
public static Collection examples() {
WaitForInstallerToFinish();
Preferences.setUseBonjour(false);
MCUBoard[] myBoards = { Arduino.leonardo(), Arduino.uno(), Arduino.esplora(), Adafruit.feather(), Arduino.adafruitnCirquitPlayground(), ESP8266.nodeMCU(), Arduino.primo(), Arduino.mega2560Board(), Arduino.gemma(), Arduino.zeroProgrammingPort(), Arduino.mkrfox1200(), Arduino.due() };
LinkedList<Object[]> examples = new LinkedList<>();
TreeMap<String, IPath> exampleFolders = LibraryManager.getAllLibraryExamples();
for (Map.Entry<String, IPath> curexample : exampleFolders.entrySet()) {
ArrayList<IPath> paths = new ArrayList<>();
paths.add(new Path(curexample.getValue().toString()));
CodeDescription codeDescriptor = CodeDescription.createExample(false, paths);
String fqn = curexample.getKey();
Example example = new Example(fqn, curexample.getValue());
// with the current amount of examples only do one
MCUBoard board = Example.pickBestBoard(example, myBoards);
if (board != null) {
BoardDescription curBoard = board.getBoardDescriptor();
if (curBoard != null) {
Object[] theData = new Object[] { Shared.getCounterName(fqn.trim()), curBoard, codeDescriptor };
examples.add(theData);
}
}
}
return examples;
}
Aggregations