Skip to content

Commit fbbcec8

Browse files
silvanocerzacmaglie
authored andcommitted
Fix load discoveries tests
1 parent 6299f16 commit fbbcec8

File tree

2 files changed

+62
-35
lines changed

2 files changed

+62
-35
lines changed

arduino/cores/packagemanager/loader_test.go

+53-35
Original file line numberDiff line numberDiff line change
@@ -109,69 +109,87 @@ arduino_zero_native.pid.3=0x024d
109109
func TestLoadDiscoveries(t *testing.T) {
110110
// Create all the necessary data to load discoveries
111111
fakePath := paths.New("fake-path")
112-
packageManager := NewPackageManager(fakePath, fakePath, fakePath, fakePath)
113-
pack := packageManager.Packages.GetOrCreatePackage("arduino")
114-
// ble-discovery tool
115-
tool := pack.GetOrCreateTool("arduino:ble-discovery")
116-
toolRelease := tool.GetOrCreateRelease(semver.ParseRelaxed("1.0.0"))
117-
// We set this to fake the tool is installed
118-
toolRelease.InstallDir = fakePath
119-
tool.GetOrCreateRelease(semver.ParseRelaxed("0.1.0"))
120-
121-
// serial-discovery tool
122-
tool = pack.GetOrCreateTool("arduino:serial-discovery")
123-
tool.GetOrCreateRelease(semver.ParseRelaxed("1.0.0"))
124-
toolRelease = tool.GetOrCreateRelease(semver.ParseRelaxed("0.1.0"))
125-
// We set this to fake the tool is installed
126-
toolRelease.InstallDir = fakePath
127-
128-
platform := pack.GetOrCreatePlatform("avr")
129-
release := platform.GetOrCreateRelease(semver.MustParse("1.0.0"))
130112

113+
createTestPackageManager := func() *PackageManager {
114+
packageManager := NewPackageManager(fakePath, fakePath, fakePath, fakePath)
115+
pack := packageManager.Packages.GetOrCreatePackage("arduino")
116+
// ble-discovery tool
117+
tool := pack.GetOrCreateTool("ble-discovery")
118+
toolRelease := tool.GetOrCreateRelease(semver.ParseRelaxed("1.0.0"))
119+
// We set this to fake the tool is installed
120+
toolRelease.InstallDir = fakePath
121+
tool.GetOrCreateRelease(semver.ParseRelaxed("0.1.0"))
122+
123+
// serial-discovery tool
124+
tool = pack.GetOrCreateTool("serial-discovery")
125+
tool.GetOrCreateRelease(semver.ParseRelaxed("1.0.0"))
126+
toolRelease = tool.GetOrCreateRelease(semver.ParseRelaxed("0.1.0"))
127+
// We set this to fake the tool is installed
128+
toolRelease.InstallDir = fakePath
129+
130+
platform := pack.GetOrCreatePlatform("avr")
131+
release := platform.GetOrCreateRelease(semver.MustParse("1.0.0"))
132+
release.InstallDir = fakePath
133+
134+
return packageManager
135+
}
136+
137+
packageManager := createTestPackageManager()
138+
release := packageManager.Packages["arduino"].Platforms["avr"].Releases["1.0.0"]
131139
release.Properties = properties.NewFromHashmap(map[string]string{
132140
"discovery.required": "arduino:ble-discovery",
133141
})
134142

135-
discoveries, err := packageManager.LoadDiscoveries(release)
143+
errs := packageManager.LoadDiscoveries()
144+
require.Len(t, errs, 0)
145+
discoveries := packageManager.DiscoveryManager().IDs()
136146
require.Len(t, discoveries, 1)
137-
require.NoError(t, err)
138-
require.Equal(t, discoveries[0].GetID(), "arduino:ble-discovery")
147+
require.Contains(t, discoveries, "arduino:ble-discovery")
139148

149+
packageManager = createTestPackageManager()
150+
release = packageManager.Packages["arduino"].Platforms["avr"].Releases["1.0.0"]
140151
release.Properties = properties.NewFromHashmap(map[string]string{
141152
"discovery.required.0": "arduino:ble-discovery",
142153
"discovery.required.1": "arduino:serial-discovery",
143154
})
144155

145-
discoveries, err = packageManager.LoadDiscoveries(release)
156+
errs = packageManager.LoadDiscoveries()
157+
require.Len(t, errs, 0)
158+
discoveries = packageManager.DiscoveryManager().IDs()
146159
require.Len(t, discoveries, 2)
147-
require.NoError(t, err)
148-
require.Equal(t, discoveries[0].GetID(), "arduino:ble-discovery")
149-
require.Equal(t, discoveries[1].GetID(), "arduino:serial-discovery")
160+
require.Contains(t, discoveries, "arduino:ble-discovery")
161+
require.Contains(t, discoveries, "arduino:serial-discovery")
150162

163+
packageManager = createTestPackageManager()
164+
release = packageManager.Packages["arduino"].Platforms["avr"].Releases["1.0.0"]
151165
release.Properties = properties.NewFromHashmap(map[string]string{
152166
"discovery.required.0": "arduino:ble-discovery",
153167
"discovery.required.1": "arduino:serial-discovery",
154168
"discovery.teensy.pattern": "\"{runtime.tools.teensy_ports.path}/hardware/tools/teensy_ports\" -J2",
155169
})
156170

157-
discoveries, err = packageManager.LoadDiscoveries(release)
171+
errs = packageManager.LoadDiscoveries()
172+
require.Len(t, errs, 0)
173+
discoveries = packageManager.DiscoveryManager().IDs()
158174
require.Len(t, discoveries, 3)
159-
require.NoError(t, err)
160-
require.Equal(t, discoveries[0].GetID(), "arduino:ble-discovery")
161-
require.Equal(t, discoveries[1].GetID(), "arduino:serial-discovery")
162-
require.Equal(t, discoveries[2].GetID(), "teensy")
175+
require.Contains(t, discoveries, "arduino:ble-discovery")
176+
require.Contains(t, discoveries, "arduino:serial-discovery")
177+
require.Contains(t, discoveries, "teensy")
163178

179+
packageManager = createTestPackageManager()
180+
release = packageManager.Packages["arduino"].Platforms["avr"].Releases["1.0.0"]
164181
release.Properties = properties.NewFromHashmap(map[string]string{
165182
"discovery.required": "arduino:some-discovery",
166183
"discovery.required.0": "arduino:ble-discovery",
167184
"discovery.required.1": "arduino:serial-discovery",
168185
"discovery.teensy.pattern": "\"{runtime.tools.teensy_ports.path}/hardware/tools/teensy_ports\" -J2",
169186
})
170187

171-
discoveries, err = packageManager.LoadDiscoveries(release)
188+
errs = packageManager.LoadDiscoveries()
189+
require.Len(t, errs, 0)
190+
discoveries = packageManager.DiscoveryManager().IDs()
172191
require.Len(t, discoveries, 3)
173-
require.NoError(t, err)
174-
require.Equal(t, discoveries[0].GetID(), "arduino:ble-discovery")
175-
require.Equal(t, discoveries[1].GetID(), "arduino:serial-discovery")
176-
require.Equal(t, discoveries[2].GetID(), "teensy")
192+
require.Contains(t, discoveries, "arduino:ble-discovery")
193+
require.Contains(t, discoveries, "arduino:serial-discovery")
194+
require.Contains(t, discoveries, "teensy")
177195
}

arduino/discovery/discoverymanager/discoverymanager.go

+9
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@ func New() *DiscoveryManager {
3535
}
3636
}
3737

38+
// IDs returns the list of discoveries' ids in this DiscoveryManager
39+
func (dm *DiscoveryManager) IDs() []string {
40+
ids := []string{}
41+
for id := range dm.discoveries {
42+
ids = append(ids, id)
43+
}
44+
return ids
45+
}
46+
3847
// Add adds a discovery to the list of managed discoveries
3948
func (dm *DiscoveryManager) Add(disc *discovery.PluggableDiscovery) error {
4049
id := disc.GetID()

0 commit comments

Comments
 (0)