Skip to content

Commit 83d71c8

Browse files
Add support for .tpp and .ipp Sketch file extensions (#1316)
* added '.tpp' file ext to known list * Add support for .ipp Sketch files extension * Add tests for new .tpp and .ipp extensions suppport Co-authored-by: Silvano Cerza <silvanocerza@gmail.com>
1 parent b780f9c commit 83d71c8

File tree

16 files changed

+118
-0
lines changed

16 files changed

+118
-0
lines changed

arduino/builder/sketch_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,3 +289,35 @@ func TestSketchWithMarkdownAsciidocJson(t *testing.T) {
289289
require.Equal(t, "foo.json", filepath.Base(sketch.RootFolderFiles[1].Path))
290290
require.Equal(t, "foo.md", filepath.Base(sketch.RootFolderFiles[2].Path))
291291
}
292+
293+
func TestSketchWithTppFile(t *testing.T) {
294+
sketchPath := filepath.Join("testdata", t.Name())
295+
mainFilePath := filepath.Join(sketchPath, t.Name()+".ino")
296+
297+
sketch, err := builder.SketchLoad(sketchPath, "")
298+
require.NotNil(t, sketch)
299+
require.NoError(t, err)
300+
require.Equal(t, sketchPath, sketch.LocationPath)
301+
require.Equal(t, mainFilePath, sketch.MainFile.Path)
302+
require.Len(t, sketch.OtherSketchFiles, 0)
303+
require.Len(t, sketch.AdditionalFiles, 1)
304+
require.Equal(t, "template.tpp", filepath.Base(sketch.AdditionalFiles[0].Path))
305+
require.Len(t, sketch.RootFolderFiles, 1)
306+
require.Equal(t, "template.tpp", filepath.Base(sketch.RootFolderFiles[0].Path))
307+
}
308+
309+
func TestSketchWithIppFile(t *testing.T) {
310+
sketchPath := filepath.Join("testdata", t.Name())
311+
mainFilePath := filepath.Join(sketchPath, t.Name()+".ino")
312+
313+
sketch, err := builder.SketchLoad(sketchPath, "")
314+
require.NotNil(t, sketch)
315+
require.NoError(t, err)
316+
require.Equal(t, sketchPath, sketch.LocationPath)
317+
require.Equal(t, mainFilePath, sketch.MainFile.Path)
318+
require.Len(t, sketch.OtherSketchFiles, 0)
319+
require.Len(t, sketch.AdditionalFiles, 1)
320+
require.Equal(t, "template.ipp", filepath.Base(sketch.AdditionalFiles[0].Path))
321+
require.Len(t, sketch.RootFolderFiles, 1)
322+
require.Equal(t, "template.ipp", filepath.Base(sketch.RootFolderFiles[0].Path))
323+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include "template.ipp"
2+
3+
void setup() {}
4+
void loop() {}

arduino/builder/testdata/TestSketchWithIppFile/template.ipp

Whitespace-only changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include "template.tpp"
2+
3+
void setup() {}
4+
void loop() {}

arduino/builder/testdata/TestSketchWithTppFile/template.tpp

Whitespace-only changes.

arduino/globals/globals.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ var (
3939
".adoc": empty,
4040
".md": empty,
4141
".json": empty,
42+
".tpp": empty,
43+
".ipp": empty,
4244
}
4345

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

arduino/sketch/sketch_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,37 @@ func TestSketchWithMarkdownAsciidocJson(t *testing.T) {
138138
require.Equal(t, "foo.json", filepath.Base(sketch.RootFolderFiles[1].Path))
139139
require.Equal(t, "foo.md", filepath.Base(sketch.RootFolderFiles[2].Path))
140140
}
141+
142+
func TestSketchWithTppFile(t *testing.T) {
143+
sketchPath := paths.New("testdata", "SketchWithTppFile")
144+
mainFilePath := sketchPath.Join("SketchWithTppFile.ino").String()
145+
templateFile := sketchPath.Join("template.tpp").String()
146+
147+
sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath, templateFile})
148+
require.NotNil(t, sketch)
149+
require.NoError(t, err)
150+
require.Equal(t, sketchPath.String(), sketch.LocationPath)
151+
require.Equal(t, mainFilePath, sketch.MainFile.Path)
152+
require.Len(t, sketch.OtherSketchFiles, 0)
153+
require.Len(t, sketch.AdditionalFiles, 1)
154+
require.Equal(t, "template.tpp", filepath.Base(sketch.AdditionalFiles[0].Path))
155+
require.Len(t, sketch.RootFolderFiles, 1)
156+
require.Equal(t, "template.tpp", filepath.Base(sketch.RootFolderFiles[0].Path))
157+
}
158+
159+
func TestSketchWithIppFile(t *testing.T) {
160+
sketchPath := paths.New("testdata", "SketchWithIppFile")
161+
mainFilePath := sketchPath.Join("SketchWithIppFile.ino").String()
162+
templateFile := sketchPath.Join("template.ipp").String()
163+
164+
sketch, err := New(sketchPath.String(), mainFilePath, "", []string{mainFilePath, templateFile})
165+
require.NotNil(t, sketch)
166+
require.NoError(t, err)
167+
require.Equal(t, sketchPath.String(), sketch.LocationPath)
168+
require.Equal(t, mainFilePath, sketch.MainFile.Path)
169+
require.Len(t, sketch.OtherSketchFiles, 0)
170+
require.Len(t, sketch.AdditionalFiles, 1)
171+
require.Equal(t, "template.ipp", filepath.Base(sketch.AdditionalFiles[0].Path))
172+
require.Len(t, sketch.RootFolderFiles, 1)
173+
require.Equal(t, "template.ipp", filepath.Base(sketch.RootFolderFiles[0].Path))
174+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include "template.ipp"
2+
3+
void setup() {}
4+
void loop() {}

arduino/sketch/testdata/SketchWithIppFile/template.ipp

Whitespace-only changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#include "template.tpp"
2+
3+
void setup() {}
4+
void loop() {}

0 commit comments

Comments
 (0)