Skip to content

Commit 2dd2089

Browse files
committed
Reworked tests
1 parent 8bfdfc3 commit 2dd2089

File tree

5 files changed

+308
-5873
lines changed

5 files changed

+308
-5873
lines changed

arduino/cores/packageindex/index_test.go

+285
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package packageindex
1818
import (
1919
"testing"
2020

21+
"github.com/arduino/arduino-cli/arduino/cores"
22+
"github.com/arduino/arduino-cli/arduino/resources"
2123
"github.com/arduino/go-paths-helper"
2224
"github.com/stretchr/testify/require"
2325
semver "go.bug.st/relaxed-semver"
@@ -36,3 +38,286 @@ func TestIndexParsing(t *testing.T) {
3638
require.NoError(t, err)
3739
}
3840
}
41+
42+
func TestIndexFromPlatformRelease(t *testing.T) {
43+
pr := &cores.PlatformRelease{
44+
Resource: &resources.DownloadResource{
45+
URL: "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2",
46+
ArchiveFileName: "avr-1.6.23.tar.bz2",
47+
Checksum: "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa",
48+
Size: 5001988,
49+
},
50+
Version: semver.MustParse("1.8.3"),
51+
Help: cores.PlatformReleaseHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
52+
BoardsManifest: []*cores.BoardManifest{
53+
{Name: "Arduino Yún"},
54+
{Name: "Arduino/Genuino Uno"},
55+
{Name: "Arduino Uno WiFi"},
56+
},
57+
Dependencies: cores.ToolDependencies{
58+
{
59+
ToolPackager: "arduino",
60+
ToolName: "avr-gcc",
61+
ToolVersion: semver.ParseRelaxed("5.4.0-atmel3.6.1-arduino2"),
62+
},
63+
{
64+
ToolPackager: "arduino",
65+
ToolName: "avrdude",
66+
ToolVersion: semver.ParseRelaxed("6.3.0-arduino14"),
67+
},
68+
{
69+
ToolPackager: "arduino",
70+
ToolName: "arduinoOTA",
71+
ToolVersion: semver.ParseRelaxed("1.2.1"),
72+
},
73+
},
74+
75+
Platform: &cores.Platform{
76+
Name: "Arduino AVR Boards",
77+
Architecture: "avr",
78+
Category: "Arduino",
79+
80+
Package: &cores.Package{
81+
Name: "arduino",
82+
Maintainer: "Arduino",
83+
WebsiteURL: "https://arduino.cc/",
84+
URL: "",
85+
Email: "packages@arduino.cc",
86+
Help: cores.PackageHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
87+
Tools: map[string]*cores.Tool{
88+
"bossac": {
89+
Name: "bossac",
90+
Releases: map[string]*cores.ToolRelease{
91+
"1.6.1-arduino": {
92+
Version: semver.ParseRelaxed("1.6.1-arduino"),
93+
Flavors: []*cores.Flavor{
94+
{
95+
OS: "arm-linux-gnueabihf",
96+
Resource: &resources.DownloadResource{
97+
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
98+
ArchiveFileName: "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
99+
Checksum: "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391",
100+
Size: 201341,
101+
},
102+
},
103+
{
104+
OS: "i686-mingw32",
105+
Resource: &resources.DownloadResource{
106+
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz",
107+
ArchiveFileName: "bossac-1.6.1-arduino-mingw32.tar.gz",
108+
Checksum: "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b",
109+
Size: 222918,
110+
},
111+
},
112+
},
113+
},
114+
"1.7.0": {
115+
Version: semver.ParseRelaxed("1.7.0"),
116+
Flavors: []*cores.Flavor{
117+
{
118+
OS: "i686-mingw32",
119+
Resource: &resources.DownloadResource{
120+
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-mingw32.tar.bz2",
121+
ArchiveFileName: "bossac-1.7.0-arduino-mingw32.tar.bz2",
122+
Checksum: "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2",
123+
Size: 243066,
124+
},
125+
},
126+
{
127+
OS: "x86_64-apple-darwin",
128+
Resource: &resources.DownloadResource{
129+
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
130+
ArchiveFileName: "bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
131+
Checksum: "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2",
132+
Size: 63822,
133+
},
134+
},
135+
},
136+
},
137+
},
138+
},
139+
"arm-none-eabi-gcc": {
140+
Name: "arm-none-eabi-gcc",
141+
Releases: map[string]*cores.ToolRelease{
142+
"4.8.3-2014q1": {
143+
Version: semver.ParseRelaxed("4.8.3-2014q1"),
144+
Flavors: []*cores.Flavor{
145+
{
146+
OS: "arm-linux-gnueabihf",
147+
Resource: &resources.DownloadResource{
148+
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
149+
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
150+
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
151+
Size: 44423906,
152+
},
153+
},
154+
{
155+
OS: "i686-mingw32",
156+
Resource: &resources.DownloadResource{
157+
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
158+
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
159+
Checksum: "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2",
160+
Size: 84537449,
161+
},
162+
},
163+
},
164+
},
165+
"7-2017q4": {
166+
Version: semver.ParseRelaxed("7-2017q4"),
167+
Flavors: []*cores.Flavor{
168+
{
169+
OS: "arm-linux-gnueabihf",
170+
Resource: &resources.DownloadResource{
171+
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
172+
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
173+
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
174+
Size: 44423906,
175+
},
176+
},
177+
{
178+
OS: "aarch64-linux-gnu",
179+
Resource: &resources.DownloadResource{
180+
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
181+
ArchiveFileName: "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
182+
Checksum: "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76",
183+
Size: 99558726,
184+
},
185+
},
186+
},
187+
},
188+
},
189+
},
190+
},
191+
},
192+
},
193+
}
194+
195+
expectedIndex := Index{
196+
IsTrusted: false,
197+
Packages: []*indexPackage{{
198+
Name: "arduino",
199+
Maintainer: "Arduino",
200+
WebsiteURL: "https://arduino.cc/",
201+
URL: "",
202+
Email: "packages@arduino.cc",
203+
Help: indexHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
204+
Platforms: []*indexPlatformRelease{{
205+
Name: "Arduino AVR Boards",
206+
Architecture: "avr",
207+
Version: semver.MustParse("1.8.3"),
208+
Category: "Arduino",
209+
URL: "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2",
210+
ArchiveFileName: "avr-1.6.23.tar.bz2",
211+
Checksum: "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa",
212+
Size: "5001988",
213+
Boards: []indexBoard{
214+
{Name: "Arduino Yún"},
215+
{Name: "Arduino/Genuino Uno"},
216+
{Name: "Arduino Uno WiFi"},
217+
},
218+
Help: indexHelp{Online: "http://www.arduino.cc/en/Reference/HomePage"},
219+
ToolDependencies: []indexToolDependency{
220+
{
221+
Packager: "arduino",
222+
Name: "avr-gcc",
223+
Version: semver.ParseRelaxed("5.4.0-atmel3.6.1-arduino2"),
224+
},
225+
{
226+
Packager: "arduino",
227+
Name: "avrdude",
228+
Version: semver.ParseRelaxed("6.3.0-arduino14"),
229+
},
230+
{
231+
Packager: "arduino",
232+
Name: "arduinoOTA",
233+
Version: semver.ParseRelaxed("1.2.1"),
234+
},
235+
},
236+
}},
237+
Tools: []*indexToolRelease{
238+
{
239+
Name: "bossac",
240+
Version: semver.ParseRelaxed("1.6.1-arduino"),
241+
Systems: []indexToolReleaseFlavour{
242+
{
243+
OS: "arm-linux-gnueabihf",
244+
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
245+
ArchiveFileName: "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2",
246+
Size: "201341",
247+
Checksum: "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391",
248+
},
249+
{
250+
OS: "i686-mingw32",
251+
URL: "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz",
252+
ArchiveFileName: "bossac-1.6.1-arduino-mingw32.tar.gz",
253+
Size: "222918",
254+
Checksum: "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b",
255+
},
256+
},
257+
},
258+
{
259+
Name: "bossac",
260+
Version: semver.ParseRelaxed("1.7.0"),
261+
Systems: []indexToolReleaseFlavour{
262+
{
263+
OS: "i686-mingw32",
264+
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-mingw32.tar.bz2",
265+
ArchiveFileName: "bossac-1.7.0-arduino-mingw32.tar.bz2",
266+
Size: "243066",
267+
Checksum: "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2",
268+
},
269+
{
270+
OS: "x86_64-apple-darwin",
271+
URL: "http://downloads.arduino.cc/bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
272+
ArchiveFileName: "bossac-1.7.0-arduino-x86_64-apple-darwin.tar.bz2",
273+
Size: "63822",
274+
Checksum: "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2",
275+
},
276+
},
277+
},
278+
{
279+
Name: "arm-none-eabi-gcc",
280+
Version: semver.ParseRelaxed("4.8.3-2014q1"),
281+
Systems: []indexToolReleaseFlavour{
282+
{
283+
OS: "arm-linux-gnueabihf",
284+
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
285+
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
286+
Size: "44423906",
287+
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
288+
},
289+
{
290+
OS: "i686-mingw32",
291+
URL: "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
292+
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz",
293+
Size: "84537449",
294+
Checksum: "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2",
295+
},
296+
},
297+
},
298+
{
299+
Name: "arm-none-eabi-gcc",
300+
Version: semver.ParseRelaxed("7-2017q4"),
301+
Systems: []indexToolReleaseFlavour{
302+
{
303+
OS: "arm-linux-gnueabihf",
304+
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
305+
ArchiveFileName: "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2",
306+
Size: "44423906",
307+
Checksum: "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845",
308+
},
309+
{
310+
OS: "aarch64-linux-gnu",
311+
URL: "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
312+
ArchiveFileName: "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2",
313+
Size: "99558726",
314+
Checksum: "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76",
315+
},
316+
},
317+
},
318+
},
319+
}},
320+
}
321+
322+
require.Equal(t, expectedIndex, IndexFromPlatformRelease(pr))
323+
}

arduino/cores/packagemanager/install_uninstall_test.go

-102
This file was deleted.

0 commit comments

Comments
 (0)