Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Migrate TestCompileUsingBoardsLocalTxt from test_compile_part_3.py to…
… compile_part_3_test.go
  • Loading branch information
MatteoPologruto committed Oct 13, 2022
commit 1a9f90c90855cf9dd14cd4f00ee939da506678e2
35 changes: 35 additions & 0 deletions internal/integrationtest/compile/compile_part_3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"testing"

"github.com/arduino/arduino-cli/internal/integrationtest"
"github.com/arduino/go-paths-helper"
"github.com/stretchr/testify/require"
)

Expand Down Expand Up @@ -215,3 +216,37 @@ func TestCompileUsingPlatformLocalTxt(t *testing.T) {
require.Error(t, err)
require.Contains(t, string(stderr), "my-compiler-that-does-not-exist")
}

func TestCompileUsingBoardsLocalTxt(t *testing.T) {
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
defer env.CleanUp()

_, _, err := cli.Run("update")
require.NoError(t, err)

_, _, err = cli.Run("core", "install", "arduino:avr@1.8.3")
require.NoError(t, err)

sketchName := "CompileSketchUsingBoardsLocalTxt"
sketchPath := cli.SketchbookDir().Join(sketchName)
// Usa a made up board
fqbn := "arduino:avr:nessuno"

_, _, err = cli.Run("sketch", "new", sketchPath.String())
require.NoError(t, err)

// Verifies compilation fails because board doesn't exist
_, stderr, err := cli.Run("compile", "--clean", "-b", fqbn, sketchPath.String())
require.Error(t, err)
require.Contains(t, string(stderr), "Error during build: Error resolving FQBN: board arduino:avr:nessuno not found")

// Use custom boards.local.txt with made arduino:avr:nessuno board
boardsLocalTxt := cli.DataDir().Join("packages", "arduino", "hardware", "avr", "1.8.3", "boards.local.txt")
wd, err := paths.Getwd()
require.NoError(t, err)
err = wd.Parent().Join("testdata", "boards.local.txt").CopyTo(boardsLocalTxt)
require.NoError(t, err)

_, _, err = cli.Run("compile", "--clean", "-b", fqbn, sketchPath.String())
require.NoError(t, err)
}
26 changes: 26 additions & 0 deletions internal/integrationtest/testdata/boards.local.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
nessuno.name=Arduino Nessuno
nessuno.vid.0=0x2341
nessuno.pid.0=0x0043
nessuno.vid.1=0x2341
nessuno.pid.1=0x0001
nessuno.vid.2=0x2A03
nessuno.pid.2=0x0043
nessuno.vid.3=0x2341
nessuno.pid.3=0x0243
nessuno.upload.tool=avrdude
nessuno.upload.protocol=arduino
nessuno.upload.maximum_size=32256
nessuno.upload.maximum_data_size=2048
nessuno.upload.speed=115200
nessuno.bootloader.tool=avrdude
nessuno.bootloader.low_fuses=0xFF
nessuno.bootloader.high_fuses=0xDE
nessuno.bootloader.extended_fuses=0xFD
nessuno.bootloader.unlock_bits=0x3F
nessuno.bootloader.lock_bits=0x0F
nessuno.bootloader.file=optiboot/optiboot_atmega328.hex
nessuno.build.mcu=atmega328p
nessuno.build.f_cpu=16000000L
nessuno.build.board=AVR_NESSUNO
nessuno.build.core=arduino
nessuno.build.variant=standard
24 changes: 0 additions & 24 deletions test/test_compile_part_3.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,30 +39,6 @@
# assert "Skipping dependencies detection for precompiled library Arduino_TensorFlowLite" in result.stdout


def test_compile_using_boards_local_txt(run_command, data_dir):
assert run_command(["update"])

assert run_command(["core", "install", "arduino:avr@1.8.3"])

sketch_name = "CompileSketchUsingBoardsLocalTxt"
sketch_path = Path(data_dir, sketch_name)
# Use a made up board
fqbn = "arduino:avr:nessuno"

assert run_command(["sketch", "new", sketch_path])

# Verifies compilation fails because board doesn't exist
res = run_command(["compile", "--clean", "-b", fqbn, sketch_path])
assert res.failed
assert "Error during build: Error resolving FQBN: board arduino:avr:nessuno not found" in res.stderr

# Use custom boards.local.txt with made arduino:avr:nessuno board
boards_local_txt = Path(data_dir, "packages", "arduino", "hardware", "avr", "1.8.3", "boards.local.txt")
shutil.copyfile(Path(__file__).parent / "testdata" / "boards.local.txt", boards_local_txt)

assert run_command(["compile", "--clean", "-b", fqbn, sketch_path])


def test_compile_manually_installed_platform(run_command, data_dir):
assert run_command(["update"])

Expand Down