Skip to content

Commit 60d9d1b

Browse files
Migrate TestCompileUsingBoardsLocalTxt from test_compile_part_3.py to compile_part_3_test.go
1 parent ae07a8a commit 60d9d1b

File tree

3 files changed

+61
-24
lines changed

3 files changed

+61
-24
lines changed

internal/integrationtest/compile/compile_part_3_test.go

+35
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"testing"
2121

2222
"github.com/arduino/arduino-cli/internal/integrationtest"
23+
"github.com/arduino/go-paths-helper"
2324
"github.com/stretchr/testify/require"
2425
)
2526

@@ -215,3 +216,37 @@ func TestCompileUsingPlatformLocalTxt(t *testing.T) {
215216
require.Error(t, err)
216217
require.Contains(t, string(stderr), "my-compiler-that-does-not-exist")
217218
}
219+
220+
func TestCompileUsingBoardsLocalTxt(t *testing.T) {
221+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
222+
defer env.CleanUp()
223+
224+
_, _, err := cli.Run("update")
225+
require.NoError(t, err)
226+
227+
_, _, err = cli.Run("core", "install", "arduino:[email protected]")
228+
require.NoError(t, err)
229+
230+
sketchName := "CompileSketchUsingBoardsLocalTxt"
231+
sketchPath := cli.SketchbookDir().Join(sketchName)
232+
// Usa a made up board
233+
fqbn := "arduino:avr:nessuno"
234+
235+
_, _, err = cli.Run("sketch", "new", sketchPath.String())
236+
require.NoError(t, err)
237+
238+
// Verifies compilation fails because board doesn't exist
239+
_, stderr, err := cli.Run("compile", "--clean", "-b", fqbn, sketchPath.String())
240+
require.Error(t, err)
241+
require.Contains(t, string(stderr), "Error during build: Error resolving FQBN: board arduino:avr:nessuno not found")
242+
243+
// Use custom boards.local.txt with made arduino:avr:nessuno board
244+
boardsLocalTxt := cli.DataDir().Join("packages", "arduino", "hardware", "avr", "1.8.3", "boards.local.txt")
245+
wd, err := paths.Getwd()
246+
require.NoError(t, err)
247+
err = wd.Parent().Join("testdata", "boards.local.txt").CopyTo(boardsLocalTxt)
248+
require.NoError(t, err)
249+
250+
_, _, err = cli.Run("compile", "--clean", "-b", fqbn, sketchPath.String())
251+
require.NoError(t, err)
252+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
nessuno.name=Arduino Nessuno
2+
nessuno.vid.0=0x2341
3+
nessuno.pid.0=0x0043
4+
nessuno.vid.1=0x2341
5+
nessuno.pid.1=0x0001
6+
nessuno.vid.2=0x2A03
7+
nessuno.pid.2=0x0043
8+
nessuno.vid.3=0x2341
9+
nessuno.pid.3=0x0243
10+
nessuno.upload.tool=avrdude
11+
nessuno.upload.protocol=arduino
12+
nessuno.upload.maximum_size=32256
13+
nessuno.upload.maximum_data_size=2048
14+
nessuno.upload.speed=115200
15+
nessuno.bootloader.tool=avrdude
16+
nessuno.bootloader.low_fuses=0xFF
17+
nessuno.bootloader.high_fuses=0xDE
18+
nessuno.bootloader.extended_fuses=0xFD
19+
nessuno.bootloader.unlock_bits=0x3F
20+
nessuno.bootloader.lock_bits=0x0F
21+
nessuno.bootloader.file=optiboot/optiboot_atmega328.hex
22+
nessuno.build.mcu=atmega328p
23+
nessuno.build.f_cpu=16000000L
24+
nessuno.build.board=AVR_NESSUNO
25+
nessuno.build.core=arduino
26+
nessuno.build.variant=standard

test/test_compile_part_3.py

-24
Original file line numberDiff line numberDiff line change
@@ -39,30 +39,6 @@
3939
# assert "Skipping dependencies detection for precompiled library Arduino_TensorFlowLite" in result.stdout
4040

4141

42-
def test_compile_using_boards_local_txt(run_command, data_dir):
43-
assert run_command(["update"])
44-
45-
assert run_command(["core", "install", "arduino:[email protected]"])
46-
47-
sketch_name = "CompileSketchUsingBoardsLocalTxt"
48-
sketch_path = Path(data_dir, sketch_name)
49-
# Use a made up board
50-
fqbn = "arduino:avr:nessuno"
51-
52-
assert run_command(["sketch", "new", sketch_path])
53-
54-
# Verifies compilation fails because board doesn't exist
55-
res = run_command(["compile", "--clean", "-b", fqbn, sketch_path])
56-
assert res.failed
57-
assert "Error during build: Error resolving FQBN: board arduino:avr:nessuno not found" in res.stderr
58-
59-
# Use custom boards.local.txt with made arduino:avr:nessuno board
60-
boards_local_txt = Path(data_dir, "packages", "arduino", "hardware", "avr", "1.8.3", "boards.local.txt")
61-
shutil.copyfile(Path(__file__).parent / "testdata" / "boards.local.txt", boards_local_txt)
62-
63-
assert run_command(["compile", "--clean", "-b", fqbn, sketch_path])
64-
65-
6642
def test_compile_manually_installed_platform(run_command, data_dir):
6743
assert run_command(["update"])
6844

0 commit comments

Comments
 (0)