From c4c723eb990accbd810ced70f7d14935dad831e1 Mon Sep 17 00:00:00 2001 From: Silvano Cerza Date: Wed, 24 Mar 2021 17:02:22 +0100 Subject: [PATCH] Add support for json, adoc and md sketch files extensions --- arduino/builder/sketch_test.go | 20 +++++++++++ .../TestSketchWithMarkdownAsciidocJson.ino | 0 .../foo.adoc | 0 .../foo.json | 0 .../TestSketchWithMarkdownAsciidocJson/foo.md | 0 arduino/globals/globals.go | 15 +++++---- arduino/sketch/sketch_test.go | 33 ++++++++++++++++--- .../SketchWithMarkdownAsciidocJson.ino | 0 .../SketchWithMarkdownAsciidocJson/foo.adoc | 0 .../SketchWithMarkdownAsciidocJson/foo.json | 0 .../SketchWithMarkdownAsciidocJson/foo.md | 0 11 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/TestSketchWithMarkdownAsciidocJson.ino create mode 100644 arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.adoc create mode 100644 arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.json create mode 100644 arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.md create mode 100644 arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/SketchWithMarkdownAsciidocJson.ino create mode 100644 arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.adoc create mode 100644 arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.json create mode 100644 arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.md diff --git a/arduino/builder/sketch_test.go b/arduino/builder/sketch_test.go index 6ffbc17490e..9df1de917e0 100644 --- a/arduino/builder/sketch_test.go +++ b/arduino/builder/sketch_test.go @@ -269,3 +269,23 @@ func TestLoadSketchCaseMismatch(t *testing.T) { require.Nil(t, s) require.Error(t, err) } + +func TestSketchWithMarkdownAsciidocJson(t *testing.T) { + sketchPath := filepath.Join("testdata", t.Name()) + mainFilePath := filepath.Join(sketchPath, t.Name()+".ino") + + sketch, err := builder.SketchLoad(sketchPath, "") + require.NotNil(t, sketch) + require.NoError(t, err) + require.Equal(t, sketchPath, sketch.LocationPath) + require.Equal(t, mainFilePath, sketch.MainFile.Path) + require.Len(t, sketch.OtherSketchFiles, 0) + require.Len(t, sketch.AdditionalFiles, 3) + require.Equal(t, "foo.adoc", filepath.Base(sketch.AdditionalFiles[0].Path)) + require.Equal(t, "foo.json", filepath.Base(sketch.AdditionalFiles[1].Path)) + require.Equal(t, "foo.md", filepath.Base(sketch.AdditionalFiles[2].Path)) + require.Len(t, sketch.RootFolderFiles, 3) + require.Equal(t, "foo.adoc", filepath.Base(sketch.RootFolderFiles[0].Path)) + require.Equal(t, "foo.json", filepath.Base(sketch.RootFolderFiles[1].Path)) + require.Equal(t, "foo.md", filepath.Base(sketch.RootFolderFiles[2].Path)) +} diff --git a/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/TestSketchWithMarkdownAsciidocJson.ino b/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/TestSketchWithMarkdownAsciidocJson.ino new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.adoc b/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.adoc new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.json b/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.md b/arduino/builder/testdata/TestSketchWithMarkdownAsciidocJson/foo.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arduino/globals/globals.go b/arduino/globals/globals.go index c6281d89cad..4b3d972912f 100644 --- a/arduino/globals/globals.go +++ b/arduino/globals/globals.go @@ -30,12 +30,15 @@ var ( // AdditionalFileValidExtensions lists any file extension the builder considers as valid AdditionalFileValidExtensions = map[string]struct{}{ - ".h": empty, - ".c": empty, - ".hpp": empty, - ".hh": empty, - ".cpp": empty, - ".S": empty, + ".h": empty, + ".c": empty, + ".hpp": empty, + ".hh": empty, + ".cpp": empty, + ".S": empty, + ".adoc": empty, + ".md": empty, + ".json": empty, } // SourceFilesValidExtensions lists valid extensions for source files (no headers) diff --git a/arduino/sketch/sketch_test.go b/arduino/sketch/sketch_test.go index bfe4b213688..6ed50a6c895 100644 --- a/arduino/sketch/sketch_test.go +++ b/arduino/sketch/sketch_test.go @@ -79,7 +79,7 @@ func TestNew(t *testing.T) { func TestNewSketchCasingWrong(t *testing.T) { sketchPath := paths.New("testdata", "SketchCasingWrong") - mainFilePath := paths.New("testadata", "sketchcasingwrong.ino").String() + mainFilePath := sketchPath.Join("sketchcasingwrong.ino").String() sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath}) assert.Nil(t, sketch) assert.Error(t, err) @@ -91,12 +91,12 @@ func TestNewSketchCasingWrong(t *testing.T) { } func TestNewSketchCasingCorrect(t *testing.T) { - sketchPath := paths.New("testdata", "SketchCasingCorrect").String() - mainFilePath := paths.New("testadata", "SketchCasingCorrect.ino").String() - sketch, err := New(sketchPath, mainFilePath, "", []string{mainFilePath}) + sketchPath := paths.New("testdata", "SketchCasingCorrect") + mainFilePath := sketchPath.Join("SketchCasingCorrect.ino").String() + sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath}) assert.NotNil(t, sketch) assert.NoError(t, err) - assert.Equal(t, sketchPath, sketch.LocationPath) + assert.Equal(t, sketchPath.String(), sketch.LocationPath) assert.Equal(t, mainFilePath, sketch.MainFile.Path) assert.Len(t, sketch.OtherSketchFiles, 0) assert.Len(t, sketch.AdditionalFiles, 0) @@ -115,3 +115,26 @@ func TestCheckSketchCasingCorrect(t *testing.T) { err := CheckSketchCasing(sketchFolder) require.NoError(t, err) } + +func TestSketchWithMarkdownAsciidocJson(t *testing.T) { + sketchPath := paths.New("testdata", "SketchWithMarkdownAsciidocJson") + mainFilePath := sketchPath.Join("SketchWithMarkdownAsciidocJson.ino").String() + adocFilePath := sketchPath.Join("foo.adoc").String() + jsonFilePath := sketchPath.Join("foo.json").String() + mdFilePath := sketchPath.Join("foo.md").String() + + sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath, adocFilePath, jsonFilePath, mdFilePath}) + assert.NotNil(t, sketch) + assert.NoError(t, err) + assert.Equal(t, sketchPath.String(), sketch.LocationPath) + assert.Equal(t, mainFilePath, sketch.MainFile.Path) + assert.Len(t, sketch.OtherSketchFiles, 0) + require.Len(t, sketch.AdditionalFiles, 3) + require.Equal(t, "foo.adoc", filepath.Base(sketch.AdditionalFiles[0].Path)) + require.Equal(t, "foo.json", filepath.Base(sketch.AdditionalFiles[1].Path)) + require.Equal(t, "foo.md", filepath.Base(sketch.AdditionalFiles[2].Path)) + assert.Len(t, sketch.RootFolderFiles, 3) + require.Equal(t, "foo.adoc", filepath.Base(sketch.RootFolderFiles[0].Path)) + require.Equal(t, "foo.json", filepath.Base(sketch.RootFolderFiles[1].Path)) + require.Equal(t, "foo.md", filepath.Base(sketch.RootFolderFiles[2].Path)) +} diff --git a/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/SketchWithMarkdownAsciidocJson.ino b/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/SketchWithMarkdownAsciidocJson.ino new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.adoc b/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.adoc new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.json b/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.json new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.md b/arduino/sketch/testdata/SketchWithMarkdownAsciidocJson/foo.md new file mode 100644 index 00000000000..e69de29bb2d