Skip to content

Commit 31771cd

Browse files
author
jan
committed
add tests for #1696 (build should fail)
This commits adds a test for #1696 (actually expanding a existing tests). Because the issue dooes not show on linux the test succeeds on my windows system. However the build is on a linux system so this commit is expected to fail the build. I'm still pushing it to get the test on my Linux system to fix it. I know I could create a branch and push to the branch ... but as I have been the only contributer to this repository the last 12 months nobody should suffer ;-)
1 parent ec20b80 commit 31771cd

File tree

4 files changed

+43
-10
lines changed

4 files changed

+43
-10
lines changed

io.sloeber.tests/src/io/sloeber/core/BuildTests.java

+12-6
Original file line numberDiff line numberDiff line change
@@ -233,18 +233,24 @@ public void createDefaultInoProject() throws Exception {
233233
*
234234
* @throws Exception
235235
*/
236-
@Test
237-
public void issue1047_Board_Names_Can_Be_used_as_Strings() throws Exception {
238-
MCUBoard unoBoard = ESP8266.nodeMCU();
236+
@ParameterizedTest
237+
@MethodSource("issue1047_Board_Names_Can_Be_used_as_StringsData")
238+
public void issue1047_Board_Names_Can_Be_used_as_Strings(String projectName, MCUBoard board) throws Exception {
239239

240-
String projectName = "issue1047_Board_Names_Can_Be_used_as_Strings";
241-
IPath templateFolder = Shared.getTemplateFolder(projectName);
240+
IPath templateFolder = Shared.getTemplateFolder("issue1047_Board_Names_Can_Be_used_as_Strings");
242241
CodeDescription codeDescriptor = CodeDescription.createCustomTemplate(templateFolder);
243-
IProject theTestProject = SloeberProject.createArduinoProject(projectName, null, unoBoard.getBoardDescriptor(),
242+
IProject theTestProject = SloeberProject.createArduinoProject(projectName, null, board.getBoardDescriptor(),
244243
codeDescriptor, new CompileDescription(), new NullProgressMonitor());
245244
theTestProject.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
246245
assertNull(Shared.hasBuildErrors(theTestProject));
246+
}
247247

248+
public static Stream<Arguments> issue1047_Board_Names_Can_Be_used_as_StringsData() throws Exception {
249+
List<Arguments> ret = new LinkedList<>();
250+
ret.add(Arguments.of("issue1047_Leonardo_Board_Names_Can_Be_used_as_Strings", Arduino.leonardo()));
251+
ret.add(Arguments.of("issue1047_Zero_Board_Names_Can_Be_used_as_Strings", Arduino.zeroNatviePort()));
252+
ret.add(Arguments.of("issue1047_ESP32S3_Board_Names_Can_Be_used_as_Strings", ESP32.ESP32S3()));
253+
return ret.stream();
248254
}
249255

250256
/**

io.sloeber.tests/src/io/sloeber/providers/ESP32.java

+14
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ public ESP32(String boardName, Map<String, String> options) {
3535
setAttributes();
3636
}
3737

38+
private ESP32(String providerName, String architectureName, String boardID) {
39+
this.myBoardDescriptor = BoardsManager.getBoardDescription(packageURL, providerName, architectureName,
40+
boardID, null);
41+
if (this.myBoardDescriptor == null) {
42+
fail(boardID + " Board not found");
43+
}
44+
this.myBoardDescriptor.setUploadPort("none");
45+
setAttributes();
46+
}
47+
3848
public ESP32(BoardDescription boardDesc) {
3949
myBoardDescriptor = boardDesc;
4050
myBoardDescriptor.setUploadPort("none");
@@ -57,4 +67,8 @@ public MCUBoard createMCUBoard(BoardDescription boardDesc) {
5767
return new ESP32(boardDesc);
5868
}
5969

70+
public static Object ESP32S3() {
71+
return new ESP32(provider, architectureName, "esp32s3");
72+
}
73+
6074
}

io.sloeber.tests/src/templates/CreateAndCompileTest/sketch.cpp

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
#include "Arduino.h"
22

33
#ifdef ARDUINO_BOARD
4-
char mychar1[] = ARDUINO_BOARD;
4+
char mychar[] = ARDUINO_BOARD;
55
#endif
6-
76
#ifdef USB_MANUFACTURER
87
char mychar2[] = USB_MANUFACTURER;
98
#endif
109
#ifdef USB_PRODUCT
1110
char mychar3[] = USB_PRODUCT;
1211
#endif
12+
#ifdef ARDUINO_HOST_OS
13+
char mychar4[] = ARDUINO_HOST_OS;
14+
#endif
15+
#ifdef ARDUINO_VARIANT
16+
char mychar5[] = ARDUINO_VARIANT;
17+
#endif
18+
1319

1420

1521

io.sloeber.tests/src/templates/issue1047_Board_Names_Can_Be_used_as_Strings/sketch.ino

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
#include "Arduino.h"
22

3+
#ifdef ARDUINO_BOARD
34
char mychar[] = ARDUINO_BOARD;
4-
5-
5+
#endif
66
#ifdef USB_MANUFACTURER
77
char mychar2[] = USB_MANUFACTURER;
88
#endif
99
#ifdef USB_PRODUCT
1010
char mychar3[] = USB_PRODUCT;
1111
#endif
12+
#ifdef ARDUINO_HOST_OS
13+
char mychar4[] = ARDUINO_HOST_OS;
14+
#endif
15+
#ifdef ARDUINO_VARIANT
16+
char mychar5[] = ARDUINO_VARIANT;
17+
#endif
18+
1219

1320

1421

0 commit comments

Comments
 (0)