Skip to content

Commit 5d68073

Browse files
committed
Improved build options in test
1 parent 4cc91dd commit 5d68073

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

internal/integrationtest/compile_4/compile_test.go

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ func testBuilderBridgeExample(t *testing.T, env *integrationtest.Environment, cl
328328
require.Equal(t, "Bridge", libs[0])
329329

330330
// Build again...
331-
out2, err2 := tryBuild(t, env, cli, "arduino:avr:leonardo", "no-clean")
331+
out2, err2 := tryBuild(t, env, cli, "arduino:avr:leonardo", &buildOptions{NoClean: true})
332332
require.NoError(t, err2)
333333
buildPath2 := out2.BuilderResult.BuildPath
334334
require.True(t, buildPath2.Join("core", "HardwareSerial.cpp.o").Exist())
@@ -340,7 +340,7 @@ func testBuilderBridgeExample(t *testing.T, env *integrationtest.Environment, cl
340340

341341
t.Run("BuildForSAM", func(t *testing.T) {
342342
// Build again for SAM...
343-
out, err := tryBuild(t, env, cli, "arduino:sam:arduino_due_x_dbg", "all-warnings")
343+
out, err := tryBuild(t, env, cli, "arduino:sam:arduino_due_x_dbg", &buildOptions{AllWarnings: true})
344344
require.NoError(t, err)
345345

346346
buildPath := out.BuilderResult.BuildPath
@@ -363,7 +363,7 @@ func testBuilderBridgeExample(t *testing.T, env *integrationtest.Environment, cl
363363

364364
t.Run("BuildForRedBearAVR", func(t *testing.T) {
365365
// Build again for RedBearLab...
366-
out, err := tryBuild(t, env, cli, "RedBear:avr:blend", "verbose")
366+
out, err := tryBuild(t, env, cli, "RedBear:avr:blend", &buildOptions{Verbose: true})
367367
require.NoError(t, err)
368368
buildPath := out.BuilderResult.BuildPath
369369
require.True(t, buildPath.Join("core", "HardwareSerial.cpp.o").Exist())
@@ -382,7 +382,7 @@ func testBuilderBridgeExample(t *testing.T, env *integrationtest.Environment, cl
382382
require.NoError(t, buildPath.Join("libraries", "SPI").MkdirAll())
383383

384384
// Build again...
385-
_, err = tryBuild(t, env, cli, "arduino:avr:leonardo", "no-clean")
385+
_, err = tryBuild(t, env, cli, "arduino:avr:leonardo", &buildOptions{NoClean: true})
386386
require.NoError(t, err)
387387

388388
require.False(t, buildPath.Join("libraries", "SPI").Exist())
@@ -586,25 +586,41 @@ type builderLibrary struct {
586586
SourceDir *paths.Path `json:"source_dir"`
587587
}
588588

589-
func tryBuild(t *testing.T, env *integrationtest.Environment, cli *integrationtest.ArduinoCLI, fqbn string, options ...string) (*builderOutput, error) {
589+
type buildOptions struct {
590+
Sketch *paths.Path
591+
NoClean bool
592+
AllWarnings bool
593+
Verbose bool
594+
}
595+
596+
func tryBuild(t *testing.T, env *integrationtest.Environment, cli *integrationtest.ArduinoCLI, fqbn string, optionsArg ...*buildOptions) (*builderOutput, error) {
590597
subTestName := strings.Split(t.Name(), "/")[1]
591-
sketchPath, err := paths.New("testdata", subTestName).Abs()
592-
require.NoError(t, err)
598+
var options *buildOptions
599+
if len(optionsArg) == 0 {
600+
sketchPath, err := paths.New("testdata", subTestName).Abs()
601+
require.NoError(t, err)
602+
options = &buildOptions{
603+
Sketch: sketchPath,
604+
}
605+
} else {
606+
require.Len(t, optionsArg, 1)
607+
options = optionsArg[0]
608+
}
593609
libsPath, err := paths.New("testdata", "libraries").Abs()
594610
require.NoError(t, err)
595611
args := []string{
596612
"compile",
597613
"-b", fqbn,
598614
"--libraries", libsPath.String(),
599615
"--format", "json",
600-
sketchPath.String()}
601-
if !slices.Contains(options, "no-clean") {
616+
options.Sketch.String()}
617+
if !options.NoClean {
602618
args = append(args, "--clean")
603619
}
604-
if slices.Contains(options, "all-warnings") {
620+
if options.AllWarnings {
605621
args = append(args, "--warnings", "all")
606622
}
607-
if slices.Contains(options, "verbose") {
623+
if options.Verbose {
608624
args = append(args, "-v")
609625
}
610626
jsonOut, _, err := cli.Run(args...)

0 commit comments

Comments
 (0)