Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit bd037b0

Browse files
authoredJan 12, 2021
Merge pull request #154 from arduino/per1234/core-reference
Adjust platform.txt required properties according to core reference
2 parents 7d2616f + 3c54c1c commit bd037b0

File tree

5 files changed

+310
-0
lines changed

5 files changed

+310
-0
lines changed
 

‎internal/rule/rulefunction/platform.go

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,14 @@ func PlatformTxtCompilerWarningFlagsNoneMissing() (result ruleresult.Type, outpu
691691
return ruleresult.NotRun, "Couldn't load platform.txt"
692692
}
693693

694+
if projectdata.BoardsTxtLoadError() != nil {
695+
return ruleresult.NotRun, "Couldn't load boards.txt"
696+
}
697+
698+
if platformReferencesCore() {
699+
return ruleresult.Skip, "Core reference used"
700+
}
701+
694702
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.none", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
695703
return ruleresult.Fail, ""
696704
}
@@ -708,6 +716,14 @@ func PlatformTxtCompilerWarningFlagsDefaultMissing() (result ruleresult.Type, ou
708716
return ruleresult.NotRun, "Couldn't load platform.txt"
709717
}
710718

719+
if projectdata.BoardsTxtLoadError() != nil {
720+
return ruleresult.NotRun, "Couldn't load boards.txt"
721+
}
722+
723+
if platformReferencesCore() {
724+
return ruleresult.Skip, "Core reference used"
725+
}
726+
711727
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.default", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
712728
return ruleresult.Fail, ""
713729
}
@@ -725,6 +741,14 @@ func PlatformTxtCompilerWarningFlagsMoreMissing() (result ruleresult.Type, outpu
725741
return ruleresult.NotRun, "Couldn't load platform.txt"
726742
}
727743

744+
if projectdata.BoardsTxtLoadError() != nil {
745+
return ruleresult.NotRun, "Couldn't load boards.txt"
746+
}
747+
748+
if platformReferencesCore() {
749+
return ruleresult.Skip, "Core reference used"
750+
}
751+
728752
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.more", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
729753
return ruleresult.Fail, ""
730754
}
@@ -742,6 +766,14 @@ func PlatformTxtCompilerWarningFlagsAllMissing() (result ruleresult.Type, output
742766
return ruleresult.NotRun, "Couldn't load platform.txt"
743767
}
744768

769+
if projectdata.BoardsTxtLoadError() != nil {
770+
return ruleresult.NotRun, "Couldn't load boards.txt"
771+
}
772+
773+
if platformReferencesCore() {
774+
return ruleresult.Skip, "Core reference used"
775+
}
776+
745777
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.all", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
746778
return ruleresult.Fail, ""
747779
}
@@ -759,6 +791,14 @@ func PlatformTxtCompilerOptimizationFlagsDebugMissing() (result ruleresult.Type,
759791
return ruleresult.NotRun, "Couldn't load platform.txt"
760792
}
761793

794+
if projectdata.BoardsTxtLoadError() != nil {
795+
return ruleresult.NotRun, "Couldn't load boards.txt"
796+
}
797+
798+
if platformReferencesCore() {
799+
return ruleresult.Skip, "Core reference used"
800+
}
801+
762802
if !projectdata.PlatformTxt().ContainsKey("compiler.optimization_flags.release") {
763803
return ruleresult.Skip, "Dependent property not present"
764804
}
@@ -780,6 +820,14 @@ func PlatformTxtCompilerOptimizationFlagsReleaseMissing() (result ruleresult.Typ
780820
return ruleresult.NotRun, "Couldn't load platform.txt"
781821
}
782822

823+
if projectdata.BoardsTxtLoadError() != nil {
824+
return ruleresult.NotRun, "Couldn't load boards.txt"
825+
}
826+
827+
if platformReferencesCore() {
828+
return ruleresult.Skip, "Core reference used"
829+
}
830+
783831
if !projectdata.PlatformTxt().ContainsKey("compiler.optimization_flags.debug") {
784832
return ruleresult.Skip, "Dependent property not present"
785833
}
@@ -801,6 +849,14 @@ func PlatformTxtCompilerCExtraFlagsMissing() (result ruleresult.Type, output str
801849
return ruleresult.NotRun, "Couldn't load platform.txt"
802850
}
803851

852+
if projectdata.BoardsTxtLoadError() != nil {
853+
return ruleresult.NotRun, "Couldn't load boards.txt"
854+
}
855+
856+
if platformReferencesCore() {
857+
return ruleresult.Skip, "Core reference used"
858+
}
859+
804860
if schema.RequiredPropertyMissing("compiler\\.c\\.extra_flags", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
805861
return ruleresult.Fail, ""
806862
}
@@ -839,6 +895,14 @@ func PlatformTxtCompilerCppExtraFlagsMissing() (result ruleresult.Type, output s
839895
return ruleresult.NotRun, "Couldn't load platform.txt"
840896
}
841897

898+
if projectdata.BoardsTxtLoadError() != nil {
899+
return ruleresult.NotRun, "Couldn't load boards.txt"
900+
}
901+
902+
if platformReferencesCore() {
903+
return ruleresult.Skip, "Core reference used"
904+
}
905+
842906
if schema.RequiredPropertyMissing("compiler\\.cpp\\.extra_flags", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
843907
return ruleresult.Fail, ""
844908
}
@@ -877,6 +941,14 @@ func PlatformTxtCompilerSExtraFlagsMissing() (result ruleresult.Type, output str
877941
return ruleresult.NotRun, "Couldn't load platform.txt"
878942
}
879943

944+
if projectdata.BoardsTxtLoadError() != nil {
945+
return ruleresult.NotRun, "Couldn't load boards.txt"
946+
}
947+
948+
if platformReferencesCore() {
949+
return ruleresult.Skip, "Core reference used"
950+
}
951+
880952
if schema.RequiredPropertyMissing("compiler\\.S\\.extra_flags", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
881953
return ruleresult.Fail, ""
882954
}
@@ -915,6 +987,14 @@ func PlatformTxtCompilerArExtraFlagsMissing() (result ruleresult.Type, output st
915987
return ruleresult.NotRun, "Couldn't load platform.txt"
916988
}
917989

990+
if projectdata.BoardsTxtLoadError() != nil {
991+
return ruleresult.NotRun, "Couldn't load boards.txt"
992+
}
993+
994+
if platformReferencesCore() {
995+
return ruleresult.Skip, "Core reference used"
996+
}
997+
918998
if schema.RequiredPropertyMissing("compiler\\.ar\\.extra_flags", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
919999
return ruleresult.Fail, ""
9201000
}
@@ -953,6 +1033,14 @@ func PlatformTxtCompilerCElfExtraFlagsMissing() (result ruleresult.Type, output
9531033
return ruleresult.NotRun, "Couldn't load platform.txt"
9541034
}
9551035

1036+
if projectdata.BoardsTxtLoadError() != nil {
1037+
return ruleresult.NotRun, "Couldn't load boards.txt"
1038+
}
1039+
1040+
if platformReferencesCore() {
1041+
return ruleresult.Skip, "Core reference used"
1042+
}
1043+
9561044
if schema.RequiredPropertyMissing("compiler\\.c\\.elf\\.extra_flags", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
9571045
return ruleresult.Fail, ""
9581046
}
@@ -1033,6 +1121,14 @@ func PlatformTxtRecipeCOPatternMissing() (result ruleresult.Type, output string)
10331121
return ruleresult.NotRun, "Couldn't load platform.txt"
10341122
}
10351123

1124+
if projectdata.BoardsTxtLoadError() != nil {
1125+
return ruleresult.NotRun, "Couldn't load boards.txt"
1126+
}
1127+
1128+
if platformReferencesCore() {
1129+
return ruleresult.Skip, "Core reference used"
1130+
}
1131+
10361132
if schema.RequiredPropertyMissing("recipe\\.c\\.o\\.pattern", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
10371133
return ruleresult.Fail, ""
10381134
}
@@ -1092,6 +1188,14 @@ func PlatformTxtRecipeCppOPatternMissing() (result ruleresult.Type, output strin
10921188
return ruleresult.NotRun, "Couldn't load platform.txt"
10931189
}
10941190

1191+
if projectdata.BoardsTxtLoadError() != nil {
1192+
return ruleresult.NotRun, "Couldn't load boards.txt"
1193+
}
1194+
1195+
if platformReferencesCore() {
1196+
return ruleresult.Skip, "Core reference used"
1197+
}
1198+
10951199
if schema.RequiredPropertyMissing("recipe\\.cpp\\.o\\.pattern", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
10961200
return ruleresult.Fail, ""
10971201
}
@@ -1151,6 +1255,14 @@ func PlatformTxtRecipeSOPatternMissing() (result ruleresult.Type, output string)
11511255
return ruleresult.NotRun, "Couldn't load platform.txt"
11521256
}
11531257

1258+
if projectdata.BoardsTxtLoadError() != nil {
1259+
return ruleresult.NotRun, "Couldn't load boards.txt"
1260+
}
1261+
1262+
if platformReferencesCore() {
1263+
return ruleresult.Skip, "Core reference used"
1264+
}
1265+
11541266
if schema.RequiredPropertyMissing("recipe\\.S\\.o\\.pattern", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
11551267
return ruleresult.Fail, ""
11561268
}
@@ -1210,6 +1322,14 @@ func PlatformTxtRecipeArPatternMissing() (result ruleresult.Type, output string)
12101322
return ruleresult.NotRun, "Couldn't load platform.txt"
12111323
}
12121324

1325+
if projectdata.BoardsTxtLoadError() != nil {
1326+
return ruleresult.NotRun, "Couldn't load boards.txt"
1327+
}
1328+
1329+
if platformReferencesCore() {
1330+
return ruleresult.Skip, "Core reference used"
1331+
}
1332+
12131333
if schema.RequiredPropertyMissing("recipe\\.ar\\.pattern", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
12141334
return ruleresult.Fail, ""
12151335
}
@@ -1269,6 +1389,14 @@ func PlatformTxtRecipeCCombinePatternMissing() (result ruleresult.Type, output s
12691389
return ruleresult.NotRun, "Couldn't load platform.txt"
12701390
}
12711391

1392+
if projectdata.BoardsTxtLoadError() != nil {
1393+
return ruleresult.NotRun, "Couldn't load boards.txt"
1394+
}
1395+
1396+
if platformReferencesCore() {
1397+
return ruleresult.Skip, "Core reference used"
1398+
}
1399+
12721400
if schema.RequiredPropertyMissing("recipe\\.c\\.combine\\.pattern", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
12731401
return ruleresult.Fail, ""
12741402
}
@@ -1328,6 +1456,14 @@ func PlatformTxtRecipeOutputTmpFileMissing() (result ruleresult.Type, output str
13281456
return ruleresult.NotRun, "Couldn't load platform.txt"
13291457
}
13301458

1459+
if projectdata.BoardsTxtLoadError() != nil {
1460+
return ruleresult.NotRun, "Couldn't load boards.txt"
1461+
}
1462+
1463+
if platformReferencesCore() {
1464+
return ruleresult.Skip, "Core reference used"
1465+
}
1466+
13311467
if schema.RequiredPropertyMissing("recipe\\.output\\.tmp_file", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
13321468
return ruleresult.Fail, ""
13331469
}
@@ -1366,6 +1502,14 @@ func PlatformTxtRecipeOutputSaveFileMissing() (result ruleresult.Type, output st
13661502
return ruleresult.NotRun, "Couldn't load platform.txt"
13671503
}
13681504

1505+
if projectdata.BoardsTxtLoadError() != nil {
1506+
return ruleresult.NotRun, "Couldn't load boards.txt"
1507+
}
1508+
1509+
if platformReferencesCore() {
1510+
return ruleresult.Skip, "Core reference used"
1511+
}
1512+
13691513
if schema.RequiredPropertyMissing("recipe\\.output\\.save_file", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
13701514
return ruleresult.Fail, ""
13711515
}
@@ -1404,6 +1548,14 @@ func PlatformTxtRecipeSizePatternMissing() (result ruleresult.Type, output strin
14041548
return ruleresult.NotRun, "Couldn't load platform.txt"
14051549
}
14061550

1551+
if projectdata.BoardsTxtLoadError() != nil {
1552+
return ruleresult.NotRun, "Couldn't load boards.txt"
1553+
}
1554+
1555+
if platformReferencesCore() {
1556+
return ruleresult.Skip, "Core reference used"
1557+
}
1558+
14071559
if schema.RequiredPropertyMissing("recipe\\.size\\.pattern", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
14081560
return ruleresult.Fail, ""
14091561
}
@@ -1442,6 +1594,14 @@ func PlatformTxtRecipeSizeRegexMissing() (result ruleresult.Type, output string)
14421594
return ruleresult.NotRun, "Couldn't load platform.txt"
14431595
}
14441596

1597+
if projectdata.BoardsTxtLoadError() != nil {
1598+
return ruleresult.NotRun, "Couldn't load boards.txt"
1599+
}
1600+
1601+
if platformReferencesCore() {
1602+
return ruleresult.Skip, "Core reference used"
1603+
}
1604+
14451605
if schema.RequiredPropertyMissing("recipe\\.size\\.regex", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
14461606
return ruleresult.Fail, ""
14471607
}
@@ -1459,6 +1619,14 @@ func PlatformTxtRecipeSizeRegexDataMissing() (result ruleresult.Type, output str
14591619
return ruleresult.NotRun, "Couldn't load platform.txt"
14601620
}
14611621

1622+
if projectdata.BoardsTxtLoadError() != nil {
1623+
return ruleresult.NotRun, "Couldn't load boards.txt"
1624+
}
1625+
1626+
if platformReferencesCore() {
1627+
return ruleresult.Skip, "Core reference used"
1628+
}
1629+
14621630
if schema.RequiredPropertyMissing("recipe\\.size\\.regex\\.data", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
14631631
return ruleresult.Fail, ""
14641632
}
@@ -1892,3 +2060,26 @@ func iDValuePatternMismatch(iDs []string, propertyNameQuery string, validationRe
18922060

18932061
return nonCompliantIDs
18942062
}
2063+
2064+
// platformReferencesCore checks whether all boards of the platform use core references.
2065+
// See: https://arduino.github.io/arduino-cli/dev/platform-specification/#core-reference
2066+
func platformReferencesCore() bool {
2067+
referencesCore := false // Default return value.
2068+
for _, boardID := range projectdata.BoardsTxt().FirstLevelKeys() {
2069+
if boardID != "menu" {
2070+
// It is a board ID.
2071+
boardProperties := projectdata.BoardsTxt().SubTree(boardID)
2072+
for _, key := range boardProperties.Keys() {
2073+
if key == "build.core" || strings.HasSuffix(key, ".build.core") {
2074+
if !strings.Contains(boardProperties.ExpandPropsInString(boardProperties.Get(key)), ":") {
2075+
// This board does not use a core reference.
2076+
return false
2077+
}
2078+
referencesCore = true
2079+
}
2080+
}
2081+
}
2082+
}
2083+
2084+
return referencesCore
2085+
}

‎internal/rule/rulefunction/platform_test.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,8 @@ func TestPlatformTxtCompilerWarningFlagsNoneMissing(t *testing.T) {
454454
testTables := []platformRuleFunctionTestTable{
455455
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
456456
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
457+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
458+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
457459
{"Property missing", "compiler-warning_flags-none-missing-platform.txt", ruleresult.Fail, ""},
458460
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
459461
}
@@ -465,6 +467,8 @@ func TestPlatformTxtCompilerWarningFlagsDefaultMissing(t *testing.T) {
465467
testTables := []platformRuleFunctionTestTable{
466468
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
467469
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
470+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
471+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
468472
{"Property missing", "compiler-warning_flags-default-missing-platform.txt", ruleresult.Fail, ""},
469473
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
470474
}
@@ -476,6 +480,8 @@ func TestPlatformTxtCompilerWarningFlagsMoreMissing(t *testing.T) {
476480
testTables := []platformRuleFunctionTestTable{
477481
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
478482
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
483+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
484+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
479485
{"Property missing", "compiler-warning_flags-more-missing-platform.txt", ruleresult.Fail, ""},
480486
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
481487
}
@@ -487,6 +493,8 @@ func TestPlatformTxtCompilerWarningFlagsAllMissing(t *testing.T) {
487493
testTables := []platformRuleFunctionTestTable{
488494
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
489495
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
496+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
497+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
490498
{"Property missing", "compiler-warning_flags-all-missing-platform.txt", ruleresult.Fail, ""},
491499
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
492500
}
@@ -498,6 +506,8 @@ func TestPlatformTxtCompilerOptimizationFlagsDebugMissing(t *testing.T) {
498506
testTables := []platformRuleFunctionTestTable{
499507
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
500508
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
509+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
510+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
501511
{"Dependent property not present", "properties-missing-platform.txt", ruleresult.Skip, ""},
502512
{"Property missing", "compiler-optimization_flags-debug-missing-platform.txt", ruleresult.Fail, ""},
503513
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
@@ -510,6 +520,8 @@ func TestPlatformTxtCompilerOptimizationFlagsReleaseMissing(t *testing.T) {
510520
testTables := []platformRuleFunctionTestTable{
511521
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
512522
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
523+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
524+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
513525
{"Dependent property not present", "properties-missing-platform.txt", ruleresult.Skip, ""},
514526
{"Property missing", "compiler-optimization_flags-release-missing-platform.txt", ruleresult.Fail, ""},
515527
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
@@ -522,6 +534,8 @@ func TestPlatformTxtCompilerCExtraFlagsMissing(t *testing.T) {
522534
testTables := []platformRuleFunctionTestTable{
523535
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
524536
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
537+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
538+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
525539
{"Property missing", "compiler-c-extra_flags-missing-platform.txt", ruleresult.Fail, ""},
526540
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
527541
}
@@ -545,6 +559,8 @@ func TestPlatformTxtCompilerCppExtraFlagsMissing(t *testing.T) {
545559
testTables := []platformRuleFunctionTestTable{
546560
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
547561
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
562+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
563+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
548564
{"Property missing", "compiler-cpp-extra_flags-missing-platform.txt", ruleresult.Fail, ""},
549565
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
550566
}
@@ -568,6 +584,8 @@ func TestPlatformTxtCompilerSExtraFlagsMissing(t *testing.T) {
568584
testTables := []platformRuleFunctionTestTable{
569585
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
570586
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
587+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
588+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
571589
{"Property missing", "compiler-S-extra_flags-missing-platform.txt", ruleresult.Fail, ""},
572590
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
573591
}
@@ -591,6 +609,8 @@ func TestPlatformTxtCompilerArExtraFlagsMissing(t *testing.T) {
591609
testTables := []platformRuleFunctionTestTable{
592610
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
593611
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
612+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
613+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
594614
{"Property missing", "compiler-ar-extra_flags-missing-platform.txt", ruleresult.Fail, ""},
595615
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
596616
}
@@ -614,6 +634,8 @@ func TestPlatformTxtCompilerCElfExtraFlagsMissing(t *testing.T) {
614634
testTables := []platformRuleFunctionTestTable{
615635
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
616636
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
637+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
638+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
617639
{"Property missing", "compiler-c-elf-extra_flags-missing-platform.txt", ruleresult.Fail, ""},
618640
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
619641
}
@@ -661,6 +683,8 @@ func TestPlatformTxtRecipeCOPatternMissing(t *testing.T) {
661683
testTables := []platformRuleFunctionTestTable{
662684
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
663685
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
686+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
687+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
664688
{"Property missing", "recipe-c-o-pattern-missing-platform.txt", ruleresult.Fail, ""},
665689
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
666690
}
@@ -696,6 +720,8 @@ func TestPlatformTxtRecipeCppOPatternMissing(t *testing.T) {
696720
testTables := []platformRuleFunctionTestTable{
697721
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
698722
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
723+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
724+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
699725
{"Property missing", "recipe-cpp-o-pattern-missing-platform.txt", ruleresult.Fail, ""},
700726
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
701727
}
@@ -731,6 +757,8 @@ func TestPlatformTxtRecipeSOPatternMissing(t *testing.T) {
731757
testTables := []platformRuleFunctionTestTable{
732758
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
733759
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
760+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
761+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
734762
{"Property missing", "recipe-S-o-pattern-missing-platform.txt", ruleresult.Fail, ""},
735763
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
736764
}
@@ -766,6 +794,8 @@ func TestPlatformTxtRecipeArPatternMissing(t *testing.T) {
766794
testTables := []platformRuleFunctionTestTable{
767795
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
768796
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
797+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
798+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
769799
{"Property missing", "recipe-ar-pattern-missing-platform.txt", ruleresult.Fail, ""},
770800
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
771801
}
@@ -801,6 +831,8 @@ func TestPlatformTxtRecipeCCombinePatternMissing(t *testing.T) {
801831
testTables := []platformRuleFunctionTestTable{
802832
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
803833
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
834+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
835+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
804836
{"Property missing", "recipe-c-combine-pattern-missing-platform.txt", ruleresult.Fail, ""},
805837
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
806838
}
@@ -836,6 +868,8 @@ func TestPlatformTxtRecipeOutputTmpFileMissing(t *testing.T) {
836868
testTables := []platformRuleFunctionTestTable{
837869
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
838870
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
871+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
872+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
839873
{"Property missing", "recipe-output-tmp_file-missing-platform.txt", ruleresult.Fail, ""},
840874
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
841875
}
@@ -859,6 +893,8 @@ func TestPlatformTxtRecipeOutputSaveFileMissing(t *testing.T) {
859893
testTables := []platformRuleFunctionTestTable{
860894
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
861895
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
896+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
897+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
862898
{"Property missing", "recipe-output-save_file-missing-platform.txt", ruleresult.Fail, ""},
863899
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
864900
}
@@ -882,6 +918,8 @@ func TestPlatformTxtRecipeSizePatternMissing(t *testing.T) {
882918
testTables := []platformRuleFunctionTestTable{
883919
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
884920
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
921+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
922+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
885923
{"Property missing", "recipe-size-pattern-missing-platform.txt", ruleresult.Fail, ""},
886924
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
887925
}
@@ -905,6 +943,8 @@ func TestPlatformTxtRecipeSizeRegexMissing(t *testing.T) {
905943
testTables := []platformRuleFunctionTestTable{
906944
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
907945
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
946+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
947+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
908948
{"Property missing", "recipe-size-regex-missing-platform.txt", ruleresult.Fail, ""},
909949
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
910950
}
@@ -916,6 +956,8 @@ func TestPlatformTxtRecipeSizeRegexDataMissing(t *testing.T) {
916956
testTables := []platformRuleFunctionTestTable{
917957
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
918958
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
959+
{"Missing boards.txt", "missing-boards.txt", ruleresult.NotRun, "boards.txt"},
960+
{"Core reference", "core-reference", ruleresult.Skip, "[cC]ore reference"},
919961
{"Property missing", "recipe-size-regex-data-missing-platform.txt", ruleresult.Fail, ""},
920962
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
921963
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
buno.name=Buno
2+
buno.build.board=BUNO
3+
buno.build.core=arduino:arduino
4+
buno.build.variant=standard
5+
buno.upload.tool=avrdude
6+
buno.upload.maximum_size=32256
7+
buno.upload.maximum_data_size=2048
8+
9+
uno.name=Arduino Uno
10+
uno.build.board=UNO
11+
uno.build.core=arduino:arduino
12+
uno.build.variant=standard
13+
uno.upload.tool=avrdude
14+
uno.upload.maximum_size=32256
15+
uno.upload.maximum_data_size=2048
16+
17+
funo.name=Funo
18+
funo.build.board=FUNO
19+
funo.build.core=arduino:arduino
20+
funo.build.variant=standard
21+
funo.upload.tool=avrdude
22+
funo.upload.maximum_size=32256
23+
funo.upload.maximum_data_size=2048
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
name=Arduino AVR Boards
2+
version=1.8.3
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name=Arduino AVR Boards
2+
version=1.8.3
3+
compiler.warning_flags.none=asdf
4+
compiler.warning_flags.default=asdf
5+
compiler.warning_flags.more=asdf
6+
compiler.warning_flags.all=asdf
7+
compiler.optimization_flags.debug=
8+
compiler.optimization_flags.release=
9+
compiler.c.extra_flags=
10+
compiler.c.elf.extra_flags=
11+
compiler.S.extra_flags=
12+
compiler.cpp.extra_flags=
13+
compiler.ar.extra_flags=
14+
compiler.objcopy.eep.extra_flags=
15+
compiler.elf2hex.extra_flags=
16+
recipe.c.o.pattern=asdf {compiler.c.extra_flags}
17+
recipe.cpp.o.pattern=asdf {compiler.cpp.extra_flags}
18+
recipe.S.o.pattern=asdf {compiler.S.extra_flags}
19+
recipe.ar.pattern=asdf {compiler.ar.extra_flags}
20+
recipe.c.combine.pattern=asdf {compiler.c.elf.extra_flags}
21+
recipe.preproc.macros=asdf {compiler.cpp.extra_flags}
22+
recipe.objcopy.eep.pattern=asdf
23+
recipe.objcopy.hex.pattern=asdf
24+
recipe.output.tmp_file=asdf
25+
recipe.output.save_file=asdf
26+
recipe.size.pattern=asdf
27+
recipe.size.regex=asdf
28+
recipe.size.regex.data=asdf
29+
tools.avrdude.upload.params.verbose=-v
30+
tools.avrdude.upload.params.quiet=-q -q
31+
tools.avrdude.upload.pattern=asdf
32+
tools.bossac.upload.params.verbose=-v
33+
tools.bossac.upload.params.quiet=-q -q
34+
tools.bossac.upload.pattern=asdf
35+
tools.avrdude.program.params.verbose=-v
36+
tools.avrdude.program.params.quiet=-q -q
37+
tools.avrdude.program.pattern=asdf
38+
tools.bossac.program.params.verbose=-v
39+
tools.bossac.program.params.quiet=-q -q
40+
tools.bossac.program.pattern=asdf
41+
tools.avrdude.erase.params.verbose=-v
42+
tools.avrdude.erase.params.quiet=-q -q
43+
tools.avrdude.erase.pattern=asdf
44+
tools.bossac.erase.params.verbose=-v
45+
tools.bossac.erase.params.quiet=-q -q
46+
tools.bossac.erase.pattern=asdf
47+
tools.avrdude.bootloader.params.verbose=-v
48+
tools.avrdude.bootloader.params.quiet=-q -q
49+
tools.avrdude.bootloader.pattern=asdf
50+
tools.bossac.bootloader.params.verbose=-v
51+
tools.bossac.bootloader.params.quiet=-q -q
52+
tools.bossac.bootloader.pattern=asdf

0 commit comments

Comments
 (0)
Please sign in to comment.