Skip to content

Commit ccecc40

Browse files
cmaglieMatteoPologruto
authored andcommitted
testsuite: added functions to setup arduino-cli integration tests
1 parent 63f1e18 commit ccecc40

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
lines changed

internal/integrationtest/arduino-cli.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"os"
2424
"strings"
2525
"sync"
26+
"testing"
2627
"time"
2728

2829
"github.com/arduino/arduino-cli/executils"
@@ -34,6 +35,30 @@ import (
3435
"google.golang.org/grpc"
3536
)
3637

38+
// FindRepositoryRootPath returns the repository root path
39+
func FindRepositoryRootPath(t *testing.T) *paths.Path {
40+
repoRootPath := paths.New(".")
41+
require.NoError(t, repoRootPath.ToAbs())
42+
for !repoRootPath.Join(".git").Exist() {
43+
require.Contains(t, repoRootPath.String(), "arduino-cli", "Error searching for repository root path")
44+
repoRootPath = repoRootPath.Parent()
45+
}
46+
return repoRootPath
47+
}
48+
49+
// CreateArduinoCLIWithEnvironment performs the minimum amount of actions
50+
// to build the default test environment.
51+
func CreateArduinoCLIWithEnvironment(t *testing.T) (*testsuite.Environment, *ArduinoCLI) {
52+
env := testsuite.NewEnvironment(t)
53+
54+
cli := NewArduinoCliWithinEnvironment(env, &ArduinoCLIConfig{
55+
ArduinoCLIPath: FindRepositoryRootPath(t).Join("arduino-cli"),
56+
UseSharedStagingFolder: true,
57+
})
58+
59+
return env, cli
60+
}
61+
3762
// ArduinoCLI is an Arduino CLI client.
3863
type ArduinoCLI struct {
3964
path *paths.Path

internal/integrationtest/core/core_list_test.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,14 @@ import (
2121
"github.com/arduino/arduino-cli/internal/integrationtest"
2222
"github.com/arduino/go-paths-helper"
2323
"github.com/stretchr/testify/require"
24-
"go.bug.st/testsuite"
2524
"go.bug.st/testsuite/requirejson"
2625
)
2726

2827
func TestCorrectHandlingOfPlatformVersionProperty(t *testing.T) {
2928
// See: https://github.com/arduino/arduino-cli/issues/1823
30-
31-
env := testsuite.NewEnvironment(t)
29+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
3230
defer env.CleanUp()
3331

34-
cli := integrationtest.NewArduinoCliWithinEnvironment(env, &integrationtest.ArduinoCLIConfig{
35-
ArduinoCLIPath: paths.New("..", "..", "..", "arduino-cli"),
36-
UseSharedStagingFolder: true,
37-
})
38-
3932
// Copy test platform
4033
testPlatform := paths.New("testdata", "issue_1823", "DxCore-dev")
4134
require.NoError(t, testPlatform.CopyDirTo(cli.SketchbookDir().Join("hardware", "DxCore-dev")))

internal/integrationtest/core/core_test.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,13 @@ import (
2323
"github.com/arduino/arduino-cli/internal/integrationtest"
2424
"github.com/arduino/go-paths-helper"
2525
"github.com/stretchr/testify/require"
26-
"go.bug.st/testsuite"
2726
"go.bug.st/testsuite/requirejson"
2827
)
2928

3029
func TestCoreSearch(t *testing.T) {
31-
env := testsuite.NewEnvironment(t)
30+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
3231
defer env.CleanUp()
3332

34-
cli := integrationtest.NewArduinoCliWithinEnvironment(env, &integrationtest.ArduinoCLIConfig{
35-
ArduinoCLIPath: paths.New("..", "..", "..", "arduino-cli"),
36-
UseSharedStagingFolder: true,
37-
})
38-
3933
// Set up an http server to serve our custom index file
4034
test_index := paths.New("..", "testdata", "test_index.json")
4135
url := env.HTTPServeFile(8000, test_index)

0 commit comments

Comments
 (0)