8
8
import java .util .HashSet ;
9
9
import java .util .Map ;
10
10
11
- import org .eclipse .cdt .core .model .ICModelMarker ;
12
- import org .eclipse .core .resources .IMarker ;
13
11
import org .eclipse .core .resources .IProject ;
14
- import org .eclipse .core .resources .IResource ;
15
12
import org .eclipse .core .resources .IncrementalProjectBuilder ;
16
13
import org .eclipse .core .runtime .CoreException ;
17
14
import org .eclipse .core .runtime .NullProgressMonitor ;
18
- import org .eclipse .core .runtime .jobs .IJobManager ;
19
- import org .eclipse .core .runtime .jobs .Job ;
20
15
import org .junit .BeforeClass ;
21
16
import org .junit .Test ;
22
17
import org .junit .runner .RunWith ;
@@ -36,8 +31,6 @@ public class CreateAndCompile {
36
31
private String mPlatform ;
37
32
private String mJsonFileName ;
38
33
private static int mCounter = 0 ;
39
- private static String teensyInstall = "D:/arduino/arduino-1.6.9 - Teensy 1.29/hardware" ;
40
- private static String teensyBoards_txt = teensyInstall + "/teensy/avr/boards.txt" ;
41
34
42
35
public CreateAndCompile (String jsonFileName , String packageName , String platform , String boardID , String options ) {
43
36
this .mBoardID = boardID ;
@@ -149,10 +142,16 @@ public static Collection boards() {
149
142
150
143
// arrow SAMD
151
144
{ "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Fox_atmel_ice" , "" }, //
152
- { "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Fox_sam_ice" , "" }, //
153
145
{ "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Fox_native" , "" }, //
146
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Fox3_atmel_ice" , "" }, //
147
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Fox3_native" , "" }, //
148
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Lion_atmel_ice" , "" }, //
149
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Lion_native" , "" }, //
150
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Dragonfly_atmel_ice" , "" }, //
151
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "SmartEverything_Dragonfly_native" , "" }, //
152
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "adi_atmel_ice" , "" }, //
153
+ { "package_index.json" , "Arrow" , "Arrow Boards" , "adi_native" , "" }, //
154
154
{ "package_index.json" , "Arrow" , "Arrow Boards" , "NetTrotter_atmel_ice" , "" }, //
155
- { "package_index.json" , "Arrow" , "Arrow Boards" , "NetTrotter_sam_ice" , "" }, //
156
155
{ "package_index.json" , "Arrow" , "Arrow Boards" , "NetTrotter_native" , "" }, //
157
156
158
157
// atmel-avr-xminis
@@ -164,32 +163,31 @@ public static Collection boards() {
164
163
165
164
// ATTinyCore
166
165
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx41" ,
167
- "chip=841\n clock=8internal\n =bod= disable) " }, //
166
+ "chip=841\n clock=8internal\n bod= disable\n LTO=enable " }, //
168
167
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny841opti" ,
169
- "clock=8internal\n =bod=1v8" }, //
168
+ "clock=8internal\n =bod=1v8\n LTO=enable " }, //
170
169
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny1634" ,
171
- "clock=8internal\n =bod=1v8" }, //
170
+ "clock=8internal\n =bod=1v8\n LTO=enable " }, //
172
171
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny1634opti" ,
173
- "clock=8internal\n bod=2v7" }, //
172
+ "clock=8internal\n bod=2v7\n LTO=enable " }, //
174
173
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny828" ,
175
- "clock=8internal\n =bod=2v7" }, //
176
- { "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny828opti" , "bod=2v7\n vcc=3v3" }, //
174
+ "clock=8internal\n =bod=2v7\n LTO=enable" }, //
175
+ { "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny828opti" ,
176
+ "bod=2v7\n vcc=3v3\n LTO=enable" }, //
177
177
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx5" ,
178
- "chip=85\n clock=20external\n bod=2v7\n TimerClockSource=default" }, //
178
+ "chip=85\n clock=20external\n bod=2v7\n TimerClockSource=default\n LTO=enable " }, //
179
179
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx4" ,
180
- "chip=44\n clock=6external\n bod=2v7\n pinmapping=new" }, //
180
+ "chip=44\n clock=6external\n bod=2v7\n pinmapping=new\n LTO=disable " }, //
181
181
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx61" ,
182
- "chip=261\n clock=1internal\n bod=2v7\n TimerClockSource=pll" }, //
183
- { "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny167opti" ,
184
- "clock=16external\n bod=2v7\n pinmapping=new" }, //
185
- { "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attiny87opti" ,
186
- "clock=16external\n bod=2v7\n pinmapping=new" }, //
182
+ "chip=261\n clock=1internal\n bod=2v7\n TimerClockSource=pll\n LTO=enable" }, //
183
+ { "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx7opti" ,
184
+ "clock=16external\n bod=2v7\n pinmapping=new\n LTO=enable" }, //
187
185
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx7" ,
188
- "chip=87\n clock=12external\n bod=2v7\n pinmapping=new" }, //
186
+ "chip=87\n clock=12external\n bod=2v7\n pinmapping=new\n LTO=enable " }, //
189
187
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx8" ,
190
- "chip=88\n clock=1internal\n bod=2v7" }, //
188
+ "chip=88\n clock=1internal\n bod=2v7\n LTO=enable " }, //
191
189
{ "package_drazzy.com_index.json" , "ATTinyCore" , "ATTinyCore" , "attinyx313" ,
192
- "chip=4313\n clock=5internal\n bod=2v7\n INITIALIZE_SECONDARY_TIMERS=1" }, //
190
+ "chip=4313\n clock=5internal\n bod=2v7\n INITIALIZE_SECONDARY_TIMERS=1\n LTO=enable " }, //
193
191
194
192
// chipKIT
195
193
{ "package_chipkit_index.json" , "chipKIT" , "chipKIT" , "cerebot32mx4" , "" }, //
@@ -269,7 +267,7 @@ public static Collection boards() {
269
267
{ "package_digistump_index.json" , "digistump" , "Digistump AVR Boards" , "digispark-tiny1" , "" }, //
270
268
271
269
// digistump oak (needs MSVCR100.dll to be added to
272
- // tools/ digistump/esptool2/[version]
270
+ // digistump/tools /esptool2/[version]
273
271
// folder
274
272
{ "package_digistump_index.json" , "digistump" , "Oak by Digistump" , "oak1" ,
275
273
"CpuFrequency=80\n UploadTool=oak\n FlashSize=OAK\n RomConfig=Full" }, //
@@ -364,6 +362,9 @@ public static Collection boards() {
364
362
"" }, //
365
363
366
364
// redbear
365
+ // needs a workaround in platform.txt
366
+ // see
367
+ // https://github.com/jantje/arduino-eclipse-plugin/issues/546
367
368
{ "package_redbear_index.json" , "RedBear" , "RedBear Duo (32-bits ARM Cortex-M3)" , "RedBear_Duo_native" ,
368
369
"" }, //
369
370
{ "package_redbear_index.json" , "RedBear" , "RedBear Duo (32-bits ARM Cortex-M3)" , "RedBear_Duo" , "" }, //
@@ -398,11 +399,11 @@ public static Collection boards() {
398
399
{ "package_sparkfun_index.json" , "SparkFun" , "SparkFun AVR Boards" , "atmega128rfa1" , "" }, //
399
400
400
401
// Teensy
401
- { "local" , teensyBoards_txt , "" , "teensy31" , "usb=serial\n speed=96\n keys=en-us" }, //
402
- { "local" , teensyBoards_txt , "" , "teensy30" , "usb=serial\n speed=96\n keys=en-us" }, //
403
- { "local" , teensyBoards_txt , "" , "teensyLC" , "usb=serial\n l\n speed=48\n keys=en-us" }, //
404
- { "local" , teensyBoards_txt , "" , "teensypp2" , "usb=serial\n speed=16\n keys=en-us" }, //
405
- { "local" , teensyBoards_txt , "" , "teensy2" , "usb=serial\n speed=16\n keys=en-us" }, //
402
+ { "local" , Shared . teensyBoards_txt , "" , "teensy31" , "usb=serial\n speed=96\n keys=en-us" }, //
403
+ { "local" , Shared . teensyBoards_txt , "" , "teensy30" , "usb=serial\n speed=96\n keys=en-us" }, //
404
+ { "local" , Shared . teensyBoards_txt , "" , "teensyLC" , "usb=serial\n l\n speed=48\n keys=en-us" }, //
405
+ { "local" , Shared . teensyBoards_txt , "" , "teensypp2" , "usb=serial\n speed=16\n keys=en-us" }, //
406
+ { "local" , Shared . teensyBoards_txt , "" , "teensy2" , "usb=serial\n speed=16\n keys=en-us" }, //
406
407
407
408
// TeeOnArdu avr
408
409
{ "package_adafruit_index.json" , "TeeOnArdu" , "Adafruit TeeOnArdu" , "TeeOnArdu" ,
@@ -425,24 +426,7 @@ public static Collection boards() {
425
426
@ BeforeClass
426
427
public static void WaitForInstallerToFinish () {
427
428
installAdditionalBoards ();
428
- waitForAllJobsToFinish ();
429
- }
430
-
431
- public static void waitForAllJobsToFinish () {
432
- try {
433
- Thread .sleep (10000 );
434
-
435
- IJobManager jobMan = Job .getJobManager ();
436
-
437
- while (!jobMan .isIdle ()) {
438
- Thread .sleep (5000 );
439
- }
440
- // As nothing is running now we can start installing
441
-
442
- } catch (InterruptedException e ) {
443
- e .printStackTrace ();
444
- fail ("can not find installerjob" );
445
- }
429
+ Shared .waitForAllJobsToFinish ();
446
430
}
447
431
448
432
public static void installAdditionalBoards () {
@@ -514,7 +498,7 @@ public static void installAdditionalBoards() {
514
498
"https://zevero.github.io/avr_boot/package_zevero_avr_boot_index.json" , };
515
499
BoardsManager .addPackageURLs (new HashSet <>(Arrays .asList (packageUrlsToAdd )), true );
516
500
BoardsManager .installAllLatestPlatforms ();
517
- BoardsManager .referenceLocallInstallation (teensyInstall );
501
+ BoardsManager .referenceLocallInstallation (Shared . teensyInstall );
518
502
}
519
503
520
504
@ Test
@@ -540,15 +524,15 @@ public static void BuildAndVerify(BoardDescriptor boardid) {
540
524
541
525
theTestProject = boardid .createProject (projectName , null , ConfigurationDescriptor .getDefaultDescriptors (),
542
526
codeDescriptor , monitor );
543
- waitForAllJobsToFinish (); // for the indexer
527
+ Shared . waitForAllJobsToFinish (); // for the indexer
544
528
} catch (Exception e ) {
545
529
e .printStackTrace ();
546
530
fail ("Failed to create the project:" + projectName );
547
531
return ;
548
532
}
549
533
try {
550
534
theTestProject .build (IncrementalProjectBuilder .FULL_BUILD , monitor );
551
- if (hasBuildErrors (theTestProject )) {
535
+ if (Shared . hasBuildErrors (theTestProject )) {
552
536
fail ("Failed to compile the project:" + projectName + " build errors" );
553
537
}
554
538
} catch (CoreException e ) {
@@ -557,13 +541,4 @@ public static void BuildAndVerify(BoardDescriptor boardid) {
557
541
}
558
542
}
559
543
560
- private static boolean hasBuildErrors (IProject project ) throws CoreException {
561
- IMarker [] markers = project .findMarkers (ICModelMarker .C_MODEL_PROBLEM_MARKER , true , IResource .DEPTH_INFINITE );
562
- for (IMarker marker : markers ) {
563
- if (marker .getAttribute (IMarker .SEVERITY , IMarker .SEVERITY_INFO ) == IMarker .SEVERITY_ERROR ) {
564
- return true ;
565
- }
566
- }
567
- return false ;
568
- }
569
544
}
0 commit comments