Skip to content

Commit 6cc87d9

Browse files
committed
Only require compiler.warning_flags properties in strict mode
Even though platforms should be strongly encouraged to define these properties in order to allow the warning preference to work, they are not strictly required and thus should not cause an error in permissive or specification compliance modes.
1 parent 043c0bc commit 6cc87d9

File tree

5 files changed

+28
-28
lines changed

5 files changed

+28
-28
lines changed

Diff for: etc/schemas/arduino-platform-txt-definitions-schema.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -1089,10 +1089,6 @@
10891089
"required": [
10901090
"name",
10911091
"version",
1092-
"compiler.warning_flags.none",
1093-
"compiler.warning_flags.default",
1094-
"compiler.warning_flags.more",
1095-
"compiler.warning_flags.all",
10961092
"recipe.c.o.pattern",
10971093
"recipe.cpp.o.pattern",
10981094
"recipe.S.o.pattern",
@@ -1131,6 +1127,10 @@
11311127
},
11321128
{
11331129
"required": [
1130+
"compiler.warning_flags.none",
1131+
"compiler.warning_flags.default",
1132+
"compiler.warning_flags.more",
1133+
"compiler.warning_flags.all",
11341134
"compiler.c.extra_flags",
11351135
"compiler.cpp.extra_flags",
11361136
"compiler.S.extra_flags",

Diff for: internal/project/platform/platformtxt/platformtxtschema_test.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -159,20 +159,20 @@ func TestRequired(t *testing.T) {
159159
{"version", "version", compliancelevel.Specification, assert.True},
160160
{"version", "version", compliancelevel.Strict, assert.True},
161161

162-
{"compiler.warning_flags.none", "compiler\\.warning_flags\\.none", compliancelevel.Permissive, assert.True},
163-
{"compiler.warning_flags.none", "compiler\\.warning_flags\\.none", compliancelevel.Specification, assert.True},
162+
{"compiler.warning_flags.none", "compiler\\.warning_flags\\.none", compliancelevel.Permissive, assert.False},
163+
{"compiler.warning_flags.none", "compiler\\.warning_flags\\.none", compliancelevel.Specification, assert.False},
164164
{"compiler.warning_flags.none", "compiler\\.warning_flags\\.none", compliancelevel.Strict, assert.True},
165165

166-
{"compiler.warning_flags.default", "compiler\\.warning_flags\\.default", compliancelevel.Permissive, assert.True},
167-
{"compiler.warning_flags.default", "compiler\\.warning_flags\\.default", compliancelevel.Specification, assert.True},
166+
{"compiler.warning_flags.default", "compiler\\.warning_flags\\.default", compliancelevel.Permissive, assert.False},
167+
{"compiler.warning_flags.default", "compiler\\.warning_flags\\.default", compliancelevel.Specification, assert.False},
168168
{"compiler.warning_flags.default", "compiler\\.warning_flags\\.default", compliancelevel.Strict, assert.True},
169169

170-
{"compiler.warning_flags.more", "compiler\\.warning_flags\\.more", compliancelevel.Permissive, assert.True},
171-
{"compiler.warning_flags.more", "compiler\\.warning_flags\\.more", compliancelevel.Specification, assert.True},
170+
{"compiler.warning_flags.more", "compiler\\.warning_flags\\.more", compliancelevel.Permissive, assert.False},
171+
{"compiler.warning_flags.more", "compiler\\.warning_flags\\.more", compliancelevel.Specification, assert.False},
172172
{"compiler.warning_flags.more", "compiler\\.warning_flags\\.more", compliancelevel.Strict, assert.True},
173173

174-
{"compiler.warning_flags.all", "compiler\\.warning_flags\\.all", compliancelevel.Permissive, assert.True},
175-
{"compiler.warning_flags.all", "compiler\\.warning_flags\\.all", compliancelevel.Specification, assert.True},
174+
{"compiler.warning_flags.all", "compiler\\.warning_flags\\.all", compliancelevel.Permissive, assert.False},
175+
{"compiler.warning_flags.all", "compiler\\.warning_flags\\.all", compliancelevel.Specification, assert.False},
176176
{"compiler.warning_flags.all", "compiler\\.warning_flags\\.all", compliancelevel.Strict, assert.True},
177177

178178
{"recipe.c.o.pattern", "recipe\\.c\\.o\\.pattern", compliancelevel.Permissive, assert.True},

Diff for: internal/rule/ruleconfiguration/ruleconfiguration.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -1989,8 +1989,8 @@ var configurations = []Type{
19891989
DisableModes: nil,
19901990
EnableModes: []rulemode.Type{rulemode.Default},
19911991
InfoModes: nil,
1992-
WarningModes: nil,
1993-
ErrorModes: []rulemode.Type{rulemode.Default},
1992+
WarningModes: []rulemode.Type{rulemode.Default},
1993+
ErrorModes: []rulemode.Type{rulemode.Strict},
19941994
RuleFunction: rulefunction.PlatformTxtCompilerWarningFlagsNoneMissing,
19951995
},
19961996
{
@@ -2005,8 +2005,8 @@ var configurations = []Type{
20052005
DisableModes: nil,
20062006
EnableModes: []rulemode.Type{rulemode.Default},
20072007
InfoModes: nil,
2008-
WarningModes: nil,
2009-
ErrorModes: []rulemode.Type{rulemode.Default},
2008+
WarningModes: []rulemode.Type{rulemode.Default},
2009+
ErrorModes: []rulemode.Type{rulemode.Strict},
20102010
RuleFunction: rulefunction.PlatformTxtCompilerWarningFlagsDefaultMissing,
20112011
},
20122012
{
@@ -2021,8 +2021,8 @@ var configurations = []Type{
20212021
DisableModes: nil,
20222022
EnableModes: []rulemode.Type{rulemode.Default},
20232023
InfoModes: nil,
2024-
WarningModes: nil,
2025-
ErrorModes: []rulemode.Type{rulemode.Default},
2024+
WarningModes: []rulemode.Type{rulemode.Default},
2025+
ErrorModes: []rulemode.Type{rulemode.Strict},
20262026
RuleFunction: rulefunction.PlatformTxtCompilerWarningFlagsMoreMissing,
20272027
},
20282028
{
@@ -2037,8 +2037,8 @@ var configurations = []Type{
20372037
DisableModes: nil,
20382038
EnableModes: []rulemode.Type{rulemode.Default},
20392039
InfoModes: nil,
2040-
WarningModes: nil,
2041-
ErrorModes: []rulemode.Type{rulemode.Default},
2040+
WarningModes: []rulemode.Type{rulemode.Default},
2041+
ErrorModes: []rulemode.Type{rulemode.Strict},
20422042
RuleFunction: rulefunction.PlatformTxtCompilerWarningFlagsAllMissing,
20432043
},
20442044
{

Diff for: internal/rule/rulefunction/platform.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,7 @@ func PlatformTxtCompilerWarningFlagsNoneMissing() (result ruleresult.Type, outpu
699699
return ruleresult.Skip, "Core reference used"
700700
}
701701

702-
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.none", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
702+
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.none", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
703703
return ruleresult.Fail, ""
704704
}
705705

@@ -724,7 +724,7 @@ func PlatformTxtCompilerWarningFlagsDefaultMissing() (result ruleresult.Type, ou
724724
return ruleresult.Skip, "Core reference used"
725725
}
726726

727-
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.default", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
727+
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.default", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
728728
return ruleresult.Fail, ""
729729
}
730730

@@ -749,7 +749,7 @@ func PlatformTxtCompilerWarningFlagsMoreMissing() (result ruleresult.Type, outpu
749749
return ruleresult.Skip, "Core reference used"
750750
}
751751

752-
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.more", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
752+
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.more", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
753753
return ruleresult.Fail, ""
754754
}
755755

@@ -774,7 +774,7 @@ func PlatformTxtCompilerWarningFlagsAllMissing() (result ruleresult.Type, output
774774
return ruleresult.Skip, "Core reference used"
775775
}
776776

777-
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.all", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Specification]) {
777+
if schema.RequiredPropertyMissing("compiler\\.warning_flags\\.all", projectdata.PlatformTxtSchemaValidationResult()[compliancelevel.Strict]) {
778778
return ruleresult.Fail, ""
779779
}
780780

Diff for: internal/rule/schema/schemadata/bindata.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -3630,10 +3630,6 @@ var _arduinoPlatformTxtDefinitionsSchemaJson = []byte(`{
36303630
"required": [
36313631
"name",
36323632
"version",
3633-
"compiler.warning_flags.none",
3634-
"compiler.warning_flags.default",
3635-
"compiler.warning_flags.more",
3636-
"compiler.warning_flags.all",
36373633
"recipe.c.o.pattern",
36383634
"recipe.cpp.o.pattern",
36393635
"recipe.S.o.pattern",
@@ -3672,6 +3668,10 @@ var _arduinoPlatformTxtDefinitionsSchemaJson = []byte(`{
36723668
},
36733669
{
36743670
"required": [
3671+
"compiler.warning_flags.none",
3672+
"compiler.warning_flags.default",
3673+
"compiler.warning_flags.more",
3674+
"compiler.warning_flags.all",
36753675
"compiler.c.extra_flags",
36763676
"compiler.cpp.extra_flags",
36773677
"compiler.S.extra_flags",

0 commit comments

Comments
 (0)