|
16 | 16 | package board_test
|
17 | 17 |
|
18 | 18 | import (
|
| 19 | + "encoding/json" |
19 | 20 | "os"
|
20 | 21 | "strings"
|
21 | 22 | "testing"
|
22 | 23 |
|
23 | 24 | "github.com/arduino/arduino-cli/internal/integrationtest"
|
24 | 25 | "github.com/stretchr/testify/require"
|
| 26 | + semver "go.bug.st/relaxed-semver" |
25 | 27 | "go.bug.st/testifyjson/requirejson"
|
26 | 28 | "gopkg.in/src-d/go-git.v4"
|
27 | 29 | "gopkg.in/src-d/go-git.v4/plumbing"
|
@@ -449,3 +451,33 @@ func TestBoardAttachWithoutSketchJson(t *testing.T) {
|
449 | 451 | _, _, err = cli.Run("board", "attach", "-b", fqbn, sketchPath.String())
|
450 | 452 | require.NoError(t, err)
|
451 | 453 | }
|
| 454 | + |
| 455 | +func TestBoardSearchWithOutdatedCore(t *testing.T) { |
| 456 | + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) |
| 457 | + defer env.CleanUp() |
| 458 | + |
| 459 | + _, _, err := cli.Run("update") |
| 460 | + require.NoError(t, err) |
| 461 | + |
| 462 | + // Install an old core version |
| 463 | + _, _, err = cli. Run( "core", "install", "arduino:[email protected]") |
| 464 | + require.NoError(t, err) |
| 465 | + |
| 466 | + stdout, _, err := cli.Run("board", "search", "arduino:samd:mkrwifi1010", "--format", "json") |
| 467 | + require.NoError(t, err) |
| 468 | + requirejson.Len(t, stdout, 1) |
| 469 | + var data []map[string]interface{} |
| 470 | + err = json.Unmarshal(stdout, &data) |
| 471 | + require.NoError(t, err) |
| 472 | + board := data[0] |
| 473 | + require.Equal(t, board["name"], "Arduino MKR WiFi 1010") |
| 474 | + require.Equal(t, board["fqbn"], "arduino:samd:mkrwifi1010") |
| 475 | + samdCore := board["platform"].(map[string]interface{}) |
| 476 | + require.Equal(t, samdCore["id"], "arduino:samd") |
| 477 | + installedVersion, err := semver.Parse(samdCore["installed"].(string)) |
| 478 | + require.NoError(t, err) |
| 479 | + latestVersion, err := semver.Parse(samdCore["latest"].(string)) |
| 480 | + require.NoError(t, err) |
| 481 | + // Installed version must be older than latest |
| 482 | + require.True(t, installedVersion.LessThan(latestVersion)) |
| 483 | +} |
0 commit comments