diff --git a/internal/rule/rulefunction/rulefunction.go b/internal/rule/rulefunction/rulefunction.go index 9659b78e..aebd745b 100644 --- a/internal/rule/rulefunction/rulefunction.go +++ b/internal/rule/rulefunction/rulefunction.go @@ -105,7 +105,7 @@ func brokenOutputList(list []string) string { // validProjectPathBaseName checks whether the provided library folder or sketch filename contains prohibited characters. func validProjectPathBaseName(name string) bool { - baseNameRegexp := regexp.MustCompile("^[a-zA-Z0-9][a-zA-Z0-9_.-]*$") + baseNameRegexp := regexp.MustCompile("^[a-zA-Z0-9_][a-zA-Z0-9_.-]*$") return baseNameRegexp.MatchString(name) } diff --git a/internal/rule/rulefunction/sketch_test.go b/internal/rule/rulefunction/sketch_test.go index fa910d13..d873b0e0 100644 --- a/internal/rule/rulefunction/sketch_test.go +++ b/internal/rule/rulefunction/sketch_test.go @@ -75,7 +75,7 @@ func TestSketchNameMismatch(t *testing.T) { func TestProhibitedCharactersInSketchFileName(t *testing.T) { testTables := []sketchRuleFunctionTestTable{ {"Has prohibited characters", "ProhibitedCharactersInFileName", ruleresult.Fail, "^Prohibited CharactersInFileName.h$"}, - {"No prohibited characters", "Valid", ruleresult.Pass, ""}, + {"No prohibited characters", "AllowedCharactersInFilenames", ruleresult.Pass, ""}, } checkSketchRuleFunction(ProhibitedCharactersInSketchFileName, testTables, t) diff --git a/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/1LeadingNumber.ino b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/1LeadingNumber.ino new file mode 100644 index 00000000..e69de29b diff --git a/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/AllowedCharactersInFilenames.ino b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/AllowedCharactersInFilenames.ino new file mode 100644 index 00000000..660bdbcc --- /dev/null +++ b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/AllowedCharactersInFilenames.ino @@ -0,0 +1,2 @@ +void setup() {} +void loop() {} diff --git a/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/Contains-Hyphen.ino b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/Contains-Hyphen.ino new file mode 100644 index 00000000..e69de29b diff --git a/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/Contains.Dot.ino b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/Contains.Dot.ino new file mode 100644 index 00000000..e69de29b diff --git a/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/ContainsNumber1.ino b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/ContainsNumber1.ino new file mode 100644 index 00000000..e69de29b diff --git a/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/Contains_Underscore.ino b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/Contains_Underscore.ino new file mode 100644 index 00000000..e69de29b diff --git a/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/_LeadingUnderscore.ino b/internal/rule/rulefunction/testdata/sketches/AllowedCharactersInFilenames/_LeadingUnderscore.ino new file mode 100644 index 00000000..e69de29b