Skip to content

Commit 19a25fe

Browse files
Add TestDownloadFallbackPlatform to unit tests
1 parent f27aedf commit 19a25fe

File tree

2 files changed

+165
-113
lines changed

2 files changed

+165
-113
lines changed

tools/download_test.go

+32
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,38 @@ func TestDownloadCorrectPlatform(t *testing.T) {
6565
}
6666
}
6767

68+
func TestDownloadFallbackPlatform(t *testing.T) {
69+
testCases := []struct {
70+
hostOS string
71+
hostArch string
72+
correctOSArch string
73+
}{
74+
{"darwin", "amd64", "i386-apple-darwin11"},
75+
{"darwin", "arm64", "i386-apple-darwin11"},
76+
{"windows", "amd64", "i686-mingw32"},
77+
}
78+
testIndex := paths.New("testdata", "test_tool_index.json")
79+
buf, err := testIndex.ReadFile()
80+
require.NoError(t, err)
81+
82+
var data index
83+
err = json.Unmarshal(buf, &data)
84+
require.NoError(t, err)
85+
for _, tc := range testCases {
86+
t.Run(tc.hostOS+tc.hostArch, func(t *testing.T) {
87+
OS = tc.hostOS // override `runtime.OS` for testing purposes
88+
Arch = tc.hostArch // override `runtime.ARCH` for testing purposes
89+
// Find the tool by name
90+
correctTool, correctSystem := findTool("arduino-test", "arduino-fwuploader", "2.2.0", data)
91+
require.NotNil(t, correctTool)
92+
require.NotNil(t, correctSystem)
93+
require.Equal(t, correctTool.Name, "arduino-fwuploader")
94+
require.Equal(t, correctTool.Version, "2.2.0")
95+
require.Equal(t, correctSystem.Host, tc.correctOSArch)
96+
})
97+
}
98+
}
99+
68100
func Test_findBaseDir(t *testing.T) {
69101
cases := []struct {
70102
dirList []string

tools/testdata/test_tool_index.json

+133-113
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,137 @@
11
{
2-
"packages": [
2+
"packages": [
3+
{
4+
"name": "arduino-test",
5+
"maintainer": "Arduino",
6+
"websiteURL": "http://www.arduino.cc/",
7+
"email": "[email protected]",
8+
"help": {
9+
"online": "http://www.arduino.cc/en/Reference/HomePage"
10+
},
11+
"platforms": [
312
{
4-
"name": "arduino-test",
5-
"maintainer": "Arduino",
6-
"websiteURL": "http://www.arduino.cc/",
7-
"email": "[email protected]",
8-
"help": {
9-
"online": "http://www.arduino.cc/en/Reference/HomePage"
13+
"name": "Arduino megaAVR Boards - Pre-release",
14+
"architecture": "megaavr",
15+
"version": "1.8.102",
16+
"category": "Arduino",
17+
"url": "http://downloads.arduino.cc/cores/staging/core-megaavr-1.8.102.tar.bz2",
18+
"archiveFileName": "core-megaavr-1.8.102.tar.bz2",
19+
"checksum": "SHA-256:ad5e60b828678d9ccff957032524a4c4d68b218737e7df24b905769a04dc2a6a",
20+
"size": "858620",
21+
"help": {
22+
"online": "https://github.com/arduino/ArduinoCore-megaavr/issues"
23+
},
24+
"boards": [
25+
{
26+
"name": "Arduino Uno WiFi Rev2"
1027
},
11-
"platforms": [
12-
{
13-
"name": "Arduino megaAVR Boards - Pre-release",
14-
"architecture": "megaavr",
15-
"version": "1.8.102",
16-
"category": "Arduino",
17-
"url": "http://downloads.arduino.cc/cores/staging/core-megaavr-1.8.102.tar.bz2",
18-
"archiveFileName": "core-megaavr-1.8.102.tar.bz2",
19-
"checksum": "SHA-256:ad5e60b828678d9ccff957032524a4c4d68b218737e7df24b905769a04dc2a6a",
20-
"size": "858620",
21-
"help": {
22-
"online": "https://github.com/arduino/ArduinoCore-megaavr/issues"
23-
},
24-
"boards": [
25-
{
26-
"name": "Arduino Uno WiFi Rev2"
27-
},
28-
{
29-
"name": "Arduino Nano Every"
30-
}
31-
],
32-
"toolsDependencies": [
33-
{
34-
"packager": "arduino",
35-
"name": "avr-gcc",
36-
"version": "7.3.0-atmel3.6.1-arduino5"
37-
},
38-
{
39-
"packager": "arduino",
40-
"name": "avrdude",
41-
"version": "7.0-arduino.3"
42-
},
43-
{
44-
"packager": "arduino",
45-
"name": "arduinoOTA",
46-
"version": "1.3.0"
47-
}
48-
]
49-
}
50-
],
51-
"tools": [
52-
{
53-
"name": "arduino-fwuploader",
54-
"version": "2.2.2",
55-
"systems": [
56-
{
57-
"host": "i686-linux-gnu",
58-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_32bit.tar.gz",
59-
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_32bit.tar.gz",
60-
"checksum": "SHA-256:503b9f8b24c6e396d09eb64f0e1f625c6f9aa5a90b01a50d7dec6477f4a866f0",
61-
"size": "7262873"
62-
},
63-
{
64-
"host": "x86_64-linux-gnu",
65-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_64bit.tar.gz",
66-
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_64bit.tar.gz",
67-
"checksum": "SHA-256:8d77d0b33c8b0787fe3b80191709b69d638ef2a447d9853536cda35bfafd274b",
68-
"size": "7306763"
69-
},
70-
{
71-
"host": "i686-mingw32",
72-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_32bit.zip",
73-
"archiveFileName": "arduino-fwuploader_2.2.2_Windows_32bit.zip",
74-
"checksum": "SHA-256:74ad9a5d369204b51be288c98d74f949ceb7a0c227ee64eb65ae179ec884c84c",
75-
"size": "7450717"
76-
},
77-
{
78-
"host": "x86_64-mingw32",
79-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_64bit.zip",
80-
"archiveFileName": "arduino-fwuploader_2.2.2_Windows_64bit.zip",
81-
"checksum": "SHA-256:b25ac549cb0645166613c96cf899aebc541e482fe196aada6408bd7cff2c7d02",
82-
"size": "7390999"
83-
},
84-
{
85-
"host": "x86_64-apple-darwin",
86-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz",
87-
"archiveFileName": "arduino-fwuploader_2.2.2_macOS_64bit.tar.gz",
88-
"checksum": "SHA-256:2cd6168ff470457b5124ba0faf118f315be2d1b9fb4fef43eb74370cd83620a2",
89-
"size": "7306576"
90-
},
91-
{
92-
"host": "arm64-apple-darwin",
93-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz",
94-
"archiveFileName": "arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz",
95-
"checksum": "SHA-256:10ae5614af4d82096b6ba0e1e07aab667fa140d2bf1d5e3407dd8ad4c6748195",
96-
"size": "6878214"
97-
},
98-
{
99-
"host": "arm-linux-gnueabihf",
100-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz",
101-
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz",
102-
"checksum": "SHA-256:5aadf6e50ffe620635faf941fdf82c0765c8cba4830951bb53267ad125fc5af8",
103-
"size": "6940393"
104-
},
105-
{
106-
"host": "aarch64-linux-gnu",
107-
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz",
108-
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz",
109-
"checksum": "SHA-256:6d11a4f4aa5a81de865f3d18ca395a2780fdbb1e1597a2b11b2b5329e09f30fd",
110-
"size": "6829396"
111-
}
112-
]
113-
}
114-
]
28+
{
29+
"name": "Arduino Nano Every"
30+
}
31+
],
32+
"toolsDependencies": [
33+
{
34+
"packager": "arduino",
35+
"name": "avr-gcc",
36+
"version": "7.3.0-atmel3.6.1-arduino5"
37+
},
38+
{
39+
"packager": "arduino",
40+
"name": "avrdude",
41+
"version": "7.0-arduino.3"
42+
},
43+
{
44+
"packager": "arduino",
45+
"name": "arduinoOTA",
46+
"version": "1.3.0"
47+
}
48+
]
49+
}
50+
],
51+
"tools": [
52+
{
53+
"name": "arduino-fwuploader",
54+
"version": "2.2.0",
55+
"systems": [
56+
{
57+
"host": "i686-mingw32",
58+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_Windows_32bit.zip",
59+
"archiveFileName": "arduino-fwuploader_2.2.0_Windows_32bit.zip",
60+
"checksum": "SHA-256:c0ff772702460fb5cbd8593f8ce731145d21fbf550342da556e45ef946c7d2f5",
61+
"size": "7442444"
62+
},
63+
{
64+
"host": "i386-apple-darwin11",
65+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_macOS_64bit.tar.gz",
66+
"archiveFileName": "arduino-fwuploader_2.2.0_macOS_64bit.tar.gz",
67+
"checksum": "SHA-256:ce4444e92ba88c6b24736adb4b0b2b6c4241e4fb916945acbc7de6391d5bfe8c",
68+
"size": "7301372"
69+
}
70+
]
71+
},
72+
{
73+
"name": "arduino-fwuploader",
74+
"version": "2.2.2",
75+
"systems": [
76+
{
77+
"host": "i686-linux-gnu",
78+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_32bit.tar.gz",
79+
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_32bit.tar.gz",
80+
"checksum": "SHA-256:503b9f8b24c6e396d09eb64f0e1f625c6f9aa5a90b01a50d7dec6477f4a866f0",
81+
"size": "7262873"
82+
},
83+
{
84+
"host": "x86_64-linux-gnu",
85+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_64bit.tar.gz",
86+
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_64bit.tar.gz",
87+
"checksum": "SHA-256:8d77d0b33c8b0787fe3b80191709b69d638ef2a447d9853536cda35bfafd274b",
88+
"size": "7306763"
89+
},
90+
{
91+
"host": "i686-mingw32",
92+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_32bit.zip",
93+
"archiveFileName": "arduino-fwuploader_2.2.2_Windows_32bit.zip",
94+
"checksum": "SHA-256:74ad9a5d369204b51be288c98d74f949ceb7a0c227ee64eb65ae179ec884c84c",
95+
"size": "7450717"
96+
},
97+
{
98+
"host": "x86_64-mingw32",
99+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_64bit.zip",
100+
"archiveFileName": "arduino-fwuploader_2.2.2_Windows_64bit.zip",
101+
"checksum": "SHA-256:b25ac549cb0645166613c96cf899aebc541e482fe196aada6408bd7cff2c7d02",
102+
"size": "7390999"
103+
},
104+
{
105+
"host": "x86_64-apple-darwin",
106+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz",
107+
"archiveFileName": "arduino-fwuploader_2.2.2_macOS_64bit.tar.gz",
108+
"checksum": "SHA-256:2cd6168ff470457b5124ba0faf118f315be2d1b9fb4fef43eb74370cd83620a2",
109+
"size": "7306576"
110+
},
111+
{
112+
"host": "arm64-apple-darwin",
113+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz",
114+
"archiveFileName": "arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz",
115+
"checksum": "SHA-256:10ae5614af4d82096b6ba0e1e07aab667fa140d2bf1d5e3407dd8ad4c6748195",
116+
"size": "6878214"
117+
},
118+
{
119+
"host": "arm-linux-gnueabihf",
120+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz",
121+
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz",
122+
"checksum": "SHA-256:5aadf6e50ffe620635faf941fdf82c0765c8cba4830951bb53267ad125fc5af8",
123+
"size": "6940393"
124+
},
125+
{
126+
"host": "aarch64-linux-gnu",
127+
"url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz",
128+
"archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz",
129+
"checksum": "SHA-256:6d11a4f4aa5a81de865f3d18ca395a2780fdbb1e1597a2b11b2b5329e09f30fd",
130+
"size": "6829396"
131+
}
132+
]
115133
}
116-
]
117-
}
134+
]
135+
}
136+
]
137+
}

0 commit comments

Comments
 (0)