Skip to content

Commit ac39429

Browse files
authored
Add support for json, adoc and md sketch files extensions (#1235)
1 parent 6015f4e commit ac39429

File tree

11 files changed

+57
-11
lines changed

11 files changed

+57
-11
lines changed

Diff for: arduino/builder/sketch_test.go

+20
Original file line numberDiff line numberDiff line change
@@ -269,3 +269,23 @@ func TestLoadSketchCaseMismatch(t *testing.T) {
269269
require.Nil(t, s)
270270
require.Error(t, err)
271271
}
272+
273+
func TestSketchWithMarkdownAsciidocJson(t *testing.T) {
274+
sketchPath := filepath.Join("testdata", t.Name())
275+
mainFilePath := filepath.Join(sketchPath, t.Name()+".ino")
276+
277+
sketch, err := builder.SketchLoad(sketchPath, "")
278+
require.NotNil(t, sketch)
279+
require.NoError(t, err)
280+
require.Equal(t, sketchPath, sketch.LocationPath)
281+
require.Equal(t, mainFilePath, sketch.MainFile.Path)
282+
require.Len(t, sketch.OtherSketchFiles, 0)
283+
require.Len(t, sketch.AdditionalFiles, 3)
284+
require.Equal(t, "foo.adoc", filepath.Base(sketch.AdditionalFiles[0].Path))
285+
require.Equal(t, "foo.json", filepath.Base(sketch.AdditionalFiles[1].Path))
286+
require.Equal(t, "foo.md", filepath.Base(sketch.AdditionalFiles[2].Path))
287+
require.Len(t, sketch.RootFolderFiles, 3)
288+
require.Equal(t, "foo.adoc", filepath.Base(sketch.RootFolderFiles[0].Path))
289+
require.Equal(t, "foo.json", filepath.Base(sketch.RootFolderFiles[1].Path))
290+
require.Equal(t, "foo.md", filepath.Base(sketch.RootFolderFiles[2].Path))
291+
}

Diff for: arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/TestSketchWithMarkdownAsciidocJson.ino

Whitespace-only changes.

Diff for: arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.adoc

Whitespace-only changes.

Diff for: arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.json

Whitespace-only changes.

Diff for: arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.md

Whitespace-only changes.

Diff for: arduino/globals/globals.go

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,15 @@ var (
3030

3131
// AdditionalFileValidExtensions lists any file extension the builder considers as valid
3232
AdditionalFileValidExtensions = map[string]struct{}{
33-
".h": empty,
34-
".c": empty,
35-
".hpp": empty,
36-
".hh": empty,
37-
".cpp": empty,
38-
".S": empty,
33+
".h": empty,
34+
".c": empty,
35+
".hpp": empty,
36+
".hh": empty,
37+
".cpp": empty,
38+
".S": empty,
39+
".adoc": empty,
40+
".md": empty,
41+
".json": empty,
3942
}
4043

4144
// SourceFilesValidExtensions lists valid extensions for source files (no headers)

Diff for: arduino/sketch/sketch_test.go

+28-5
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func TestNew(t *testing.T) {
7979

8080
func TestNewSketchCasingWrong(t *testing.T) {
8181
sketchPath := paths.New("testdata", "SketchCasingWrong")
82-
mainFilePath := paths.New("testadata", "sketchcasingwrong.ino").String()
82+
mainFilePath := sketchPath.Join("sketchcasingwrong.ino").String()
8383
sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath})
8484
assert.Nil(t, sketch)
8585
assert.Error(t, err)
@@ -91,12 +91,12 @@ func TestNewSketchCasingWrong(t *testing.T) {
9191
}
9292

9393
func TestNewSketchCasingCorrect(t *testing.T) {
94-
sketchPath := paths.New("testdata", "SketchCasingCorrect").String()
95-
mainFilePath := paths.New("testadata", "SketchCasingCorrect.ino").String()
96-
sketch, err := New(sketchPath, mainFilePath, "", []string{mainFilePath})
94+
sketchPath := paths.New("testdata", "SketchCasingCorrect")
95+
mainFilePath := sketchPath.Join("SketchCasingCorrect.ino").String()
96+
sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath})
9797
assert.NotNil(t, sketch)
9898
assert.NoError(t, err)
99-
assert.Equal(t, sketchPath, sketch.LocationPath)
99+
assert.Equal(t, sketchPath.String(), sketch.LocationPath)
100100
assert.Equal(t, mainFilePath, sketch.MainFile.Path)
101101
assert.Len(t, sketch.OtherSketchFiles, 0)
102102
assert.Len(t, sketch.AdditionalFiles, 0)
@@ -115,3 +115,26 @@ func TestCheckSketchCasingCorrect(t *testing.T) {
115115
err := CheckSketchCasing(sketchFolder)
116116
require.NoError(t, err)
117117
}
118+
119+
func TestSketchWithMarkdownAsciidocJson(t *testing.T) {
120+
sketchPath := paths.New("testdata", "SketchWithMarkdownAsciidocJson")
121+
mainFilePath := sketchPath.Join("SketchWithMarkdownAsciidocJson.ino").String()
122+
adocFilePath := sketchPath.Join("foo.adoc").String()
123+
jsonFilePath := sketchPath.Join("foo.json").String()
124+
mdFilePath := sketchPath.Join("foo.md").String()
125+
126+
sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath, adocFilePath, jsonFilePath, mdFilePath})
127+
assert.NotNil(t, sketch)
128+
assert.NoError(t, err)
129+
assert.Equal(t, sketchPath.String(), sketch.LocationPath)
130+
assert.Equal(t, mainFilePath, sketch.MainFile.Path)
131+
assert.Len(t, sketch.OtherSketchFiles, 0)
132+
require.Len(t, sketch.AdditionalFiles, 3)
133+
require.Equal(t, "foo.adoc", filepath.Base(sketch.AdditionalFiles[0].Path))
134+
require.Equal(t, "foo.json", filepath.Base(sketch.AdditionalFiles[1].Path))
135+
require.Equal(t, "foo.md", filepath.Base(sketch.AdditionalFiles[2].Path))
136+
assert.Len(t, sketch.RootFolderFiles, 3)
137+
require.Equal(t, "foo.adoc", filepath.Base(sketch.RootFolderFiles[0].Path))
138+
require.Equal(t, "foo.json", filepath.Base(sketch.RootFolderFiles[1].Path))
139+
require.Equal(t, "foo.md", filepath.Base(sketch.RootFolderFiles[2].Path))
140+
}

Diff for: arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/SketchWithMarkdownAsciidocJson.ino

Whitespace-only changes.

Diff for: arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.adoc

Whitespace-only changes.

Diff for: arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.json

Whitespace-only changes.

Diff for: arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.md

Whitespace-only changes.

0 commit comments

Comments
 (0)