Skip to content

Commit 65be04f

Browse files
authored
Merge pull request #141 from arduino/per1234/handle-remote-tool
Update platform.txt schema to account for the *_remote tools
2 parents edb63a0 + 00ef2f7 commit 65be04f

File tree

5 files changed

+95
-76
lines changed

5 files changed

+95
-76
lines changed

etc/schemas/arduino-platform-txt-definitions-schema.json

+41-3
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,7 @@
851851
"$ref": "#/definitions/propertiesObjects/toolsToolNameUpload/base/object"
852852
},
853853
{
854-
"$ref": "#/definitions/requiredObjects/toolsToolNameActionName/permissive/object"
854+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/permissive/object"
855855
}
856856
]
857857
}
@@ -863,7 +863,7 @@
863863
"$ref": "#/definitions/propertiesObjects/toolsToolNameUpload/base/object"
864864
},
865865
{
866-
"$ref": "#/definitions/requiredObjects/toolsToolNameActionName/specification/object"
866+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/specification/object"
867867
}
868868
]
869869
}
@@ -875,7 +875,7 @@
875875
"$ref": "#/definitions/propertiesObjects/toolsToolNameUpload/base/object"
876876
},
877877
{
878-
"$ref": "#/definitions/requiredObjects/toolsToolNameActionName/strict/object"
878+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/strict/object"
879879
}
880880
]
881881
}
@@ -1168,6 +1168,44 @@
11681168
]
11691169
}
11701170
}
1171+
},
1172+
"toolsToolNameUpload": {
1173+
"base": {
1174+
"object": {
1175+
"allOf": [
1176+
{
1177+
"required": ["pattern"]
1178+
}
1179+
]
1180+
}
1181+
},
1182+
"permissive": {
1183+
"object": {
1184+
"allOf": [
1185+
{
1186+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/base/object"
1187+
}
1188+
]
1189+
}
1190+
},
1191+
"specification": {
1192+
"object": {
1193+
"allOf": [
1194+
{
1195+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/base/object"
1196+
}
1197+
]
1198+
}
1199+
},
1200+
"strict": {
1201+
"object": {
1202+
"allOf": [
1203+
{
1204+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/base/object"
1205+
}
1206+
]
1207+
}
1208+
}
11711209
}
11721210
}
11731211
}

internal/project/platform/platformtxt/platformtxtschema_test.go

+13-14
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ var validPlatformTxtRaw = []byte(`
5858
tools.avrdude.upload.params.verbose=-v
5959
tools.avrdude.upload.params.quiet=-q -q
6060
tools.avrdude.upload.pattern=asdf
61+
tools.avrdude.program.params.verbose=-v
62+
tools.avrdude.program.params.quiet=-q -q
63+
tools.avrdude.program.pattern=asdf
6164
tools.bossac.upload.params.verbose=-v
6265
tools.bossac.upload.params.quiet=-q -q
6366
tools.bossac.upload.pattern=asdf
@@ -196,25 +199,21 @@ func TestRequired(t *testing.T) {
196199
{"recipe.output.tmp_file", "recipe\\.output\\.tmp_file", compliancelevel.Specification, assert.True},
197200
{"recipe.output.tmp_file", "recipe\\.output\\.tmp_file", compliancelevel.Strict, assert.True},
198201

199-
{"tools.avrdude.upload.params.verbose", "tools/avrdude/upload/params\\.verbose", compliancelevel.Permissive, assert.True},
200-
{"tools.avrdude.upload.params.verbose", "tools/avrdude/upload/params\\.verbose", compliancelevel.Specification, assert.True},
201-
{"tools.avrdude.upload.params.verbose", "tools/avrdude/upload/params\\.verbose", compliancelevel.Strict, assert.True},
202-
203-
{"tools.avrdude.upload.params.quiet", "tools/avrdude/upload/params\\.quiet", compliancelevel.Permissive, assert.True},
204-
{"tools.avrdude.upload.params.quiet", "tools/avrdude/upload/params\\.quiet", compliancelevel.Specification, assert.True},
205-
{"tools.avrdude.upload.params.quiet", "tools/avrdude/upload/params\\.quiet", compliancelevel.Strict, assert.True},
206-
207202
{"tools.avrdude.upload.pattern", "tools/avrdude/upload/pattern", compliancelevel.Permissive, assert.True},
208203
{"tools.avrdude.upload.pattern", "tools/avrdude/upload/pattern", compliancelevel.Specification, assert.True},
209204
{"tools.avrdude.upload.pattern", "tools/avrdude/upload/pattern", compliancelevel.Strict, assert.True},
210205

211-
{"tools.bossac.upload.params.verbose", "tools/bossac/upload/params\\.verbose", compliancelevel.Permissive, assert.True},
212-
{"tools.bossac.upload.params.verbose", "tools/bossac/upload/params\\.verbose", compliancelevel.Specification, assert.True},
213-
{"tools.bossac.upload.params.verbose", "tools/bossac/upload/params\\.verbose", compliancelevel.Strict, assert.True},
206+
{"tools.avrdude.program.params.verbose", "tools/avrdude/program/params\\.verbose", compliancelevel.Permissive, assert.True},
207+
{"tools.avrdude.program.params.verbose", "tools/avrdude/program/params\\.verbose", compliancelevel.Specification, assert.True},
208+
{"tools.avrdude.program.params.verbose", "tools/avrdude/program/params\\.verbose", compliancelevel.Strict, assert.True},
209+
210+
{"tools.avrdude.program.params.quiet", "tools/avrdude/program/params\\.quiet", compliancelevel.Permissive, assert.True},
211+
{"tools.avrdude.program.params.quiet", "tools/avrdude/program/params\\.quiet", compliancelevel.Specification, assert.True},
212+
{"tools.avrdude.program.params.quiet", "tools/avrdude/program/params\\.quiet", compliancelevel.Strict, assert.True},
214213

215-
{"tools.bossac.upload.params.quiet", "tools/bossac/upload/params\\.quiet", compliancelevel.Permissive, assert.True},
216-
{"tools.bossac.upload.params.quiet", "tools/bossac/upload/params\\.quiet", compliancelevel.Specification, assert.True},
217-
{"tools.bossac.upload.params.quiet", "tools/bossac/upload/params\\.quiet", compliancelevel.Strict, assert.True},
214+
{"tools.avrdude.program.pattern", "tools/avrdude/program/pattern", compliancelevel.Permissive, assert.True},
215+
{"tools.avrdude.program.pattern", "tools/avrdude/program/pattern", compliancelevel.Specification, assert.True},
216+
{"tools.avrdude.program.pattern", "tools/avrdude/program/pattern", compliancelevel.Strict, assert.True},
218217

219218
{"tools.bossac.upload.pattern", "tools/bossac/upload/pattern", compliancelevel.Permissive, assert.True},
220219
{"tools.bossac.upload.pattern", "tools/bossac/upload/pattern", compliancelevel.Specification, assert.True},

internal/rule/ruleconfiguration/ruleconfiguration.go

-32
Original file line numberDiff line numberDiff line change
@@ -2649,38 +2649,6 @@ var configurations = []Type{
26492649
ErrorModes: []rulemode.Type{rulemode.Strict},
26502650
RuleFunction: rulefunction.PlatformTxtRecipeSizeRegexDataMissing,
26512651
},
2652-
{
2653-
ProjectType: projecttype.Platform,
2654-
SuperprojectType: projecttype.All,
2655-
Category: "configuration files",
2656-
Subcategory: "platform.txt",
2657-
ID: "PF078",
2658-
Brief: "missing upload.params.verbose",
2659-
Description: "",
2660-
MessageTemplate: "Missing upload.params.verbose for {{.}} tool(s). See: https://arduino.github.io/arduino-cli/latest/platform-specification/#verbose-parameter",
2661-
DisableModes: nil,
2662-
EnableModes: []rulemode.Type{rulemode.Default},
2663-
InfoModes: nil,
2664-
WarningModes: nil,
2665-
ErrorModes: []rulemode.Type{rulemode.Default},
2666-
RuleFunction: rulefunction.PlatformTxtUploadParamsVerboseMissing,
2667-
},
2668-
{
2669-
ProjectType: projecttype.Platform,
2670-
SuperprojectType: projecttype.All,
2671-
Category: "configuration files",
2672-
Subcategory: "platform.txt",
2673-
ID: "PF079",
2674-
Brief: "missing upload.params.quiet",
2675-
Description: "",
2676-
MessageTemplate: "Missing upload.params.quiet for {{.}} tool(s). See: https://arduino.github.io/arduino-cli/latest/platform-specification/#verbose-parameter",
2677-
DisableModes: nil,
2678-
EnableModes: []rulemode.Type{rulemode.Default},
2679-
InfoModes: nil,
2680-
WarningModes: nil,
2681-
ErrorModes: []rulemode.Type{rulemode.Default},
2682-
RuleFunction: rulefunction.PlatformTxtUploadParamsQuietMissing,
2683-
},
26842652
{
26852653
ProjectType: projecttype.Platform,
26862654
SuperprojectType: projecttype.All,

internal/rule/rulefunction/platform_test.go

-24
Original file line numberDiff line numberDiff line change
@@ -934,30 +934,6 @@ func TestPlatformTxtRecipeSizeRegexDataMissing(t *testing.T) {
934934
checkPlatformRuleFunction(PlatformTxtRecipeSizeRegexDataMissing, testTables, t)
935935
}
936936

937-
func TestPlatformTxtUploadParamsVerboseMissing(t *testing.T) {
938-
testTables := []platformRuleFunctionTestTable{
939-
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
940-
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
941-
{"No tools", "no-tools-platform.txt", ruleresult.Skip, ""},
942-
{"Property missing", "upload-params-verbose-missing-platform.txt", ruleresult.Fail, "avrdude, bossac"},
943-
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
944-
}
945-
946-
checkPlatformRuleFunction(PlatformTxtUploadParamsVerboseMissing, testTables, t)
947-
}
948-
949-
func TestPlatformTxtUploadParamsQuietMissing(t *testing.T) {
950-
testTables := []platformRuleFunctionTestTable{
951-
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},
952-
{"Invalid", "invalid-platform.txt", ruleresult.NotRun, ""},
953-
{"No tools", "no-tools-platform.txt", ruleresult.Skip, ""},
954-
{"Property missing", "upload-params-quiet-missing-platform.txt", ruleresult.Fail, "avrdude, bossac"},
955-
{"Valid", "valid-platform.txt", ruleresult.Pass, ""},
956-
}
957-
958-
checkPlatformRuleFunction(PlatformTxtUploadParamsQuietMissing, testTables, t)
959-
}
960-
961937
func TestPlatformTxtUploadPatternMissing(t *testing.T) {
962938
testTables := []platformRuleFunctionTestTable{
963939
{"Missing", "missing-platform.txt", ruleresult.Skip, ""},

internal/rule/schema/schemadata/bindata.go

+41-3
Original file line numberDiff line numberDiff line change
@@ -3148,7 +3148,7 @@ var _arduinoPlatformTxtDefinitionsSchemaJson = []byte(`{
31483148
"$ref": "#/definitions/propertiesObjects/toolsToolNameUpload/base/object"
31493149
},
31503150
{
3151-
"$ref": "#/definitions/requiredObjects/toolsToolNameActionName/permissive/object"
3151+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/permissive/object"
31523152
}
31533153
]
31543154
}
@@ -3160,7 +3160,7 @@ var _arduinoPlatformTxtDefinitionsSchemaJson = []byte(`{
31603160
"$ref": "#/definitions/propertiesObjects/toolsToolNameUpload/base/object"
31613161
},
31623162
{
3163-
"$ref": "#/definitions/requiredObjects/toolsToolNameActionName/specification/object"
3163+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/specification/object"
31643164
}
31653165
]
31663166
}
@@ -3172,7 +3172,7 @@ var _arduinoPlatformTxtDefinitionsSchemaJson = []byte(`{
31723172
"$ref": "#/definitions/propertiesObjects/toolsToolNameUpload/base/object"
31733173
},
31743174
{
3175-
"$ref": "#/definitions/requiredObjects/toolsToolNameActionName/strict/object"
3175+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/strict/object"
31763176
}
31773177
]
31783178
}
@@ -3465,6 +3465,44 @@ var _arduinoPlatformTxtDefinitionsSchemaJson = []byte(`{
34653465
]
34663466
}
34673467
}
3468+
},
3469+
"toolsToolNameUpload": {
3470+
"base": {
3471+
"object": {
3472+
"allOf": [
3473+
{
3474+
"required": ["pattern"]
3475+
}
3476+
]
3477+
}
3478+
},
3479+
"permissive": {
3480+
"object": {
3481+
"allOf": [
3482+
{
3483+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/base/object"
3484+
}
3485+
]
3486+
}
3487+
},
3488+
"specification": {
3489+
"object": {
3490+
"allOf": [
3491+
{
3492+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/base/object"
3493+
}
3494+
]
3495+
}
3496+
},
3497+
"strict": {
3498+
"object": {
3499+
"allOf": [
3500+
{
3501+
"$ref": "#/definitions/requiredObjects/toolsToolNameUpload/base/object"
3502+
}
3503+
]
3504+
}
3505+
}
34683506
}
34693507
}
34703508
}

0 commit comments

Comments
 (0)