Skip to content

Commit 9b8ddcf

Browse files
committed
Added test for regression
See arduino#1817 (review)
1 parent fb57a52 commit 9b8ddcf

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

Diff for: internal/integrationtest/arduino-cli.go

+12
Original file line numberDiff line numberDiff line change
@@ -352,3 +352,15 @@ func (inst *ArduinoCLIInstance) LibraryInstall(ctx context.Context, name, versio
352352
logCallf(">>> LibraryInstall(%+v)\n", req)
353353
return installCl, err
354354
}
355+
356+
// LibraryUninstall calls the "LibraryUninstall" gRPC method.
357+
func (inst *ArduinoCLIInstance) LibraryUninstall(ctx context.Context, name, version string) (commands.ArduinoCoreService_LibraryUninstallClient, error) {
358+
req := &commands.LibraryUninstallRequest{
359+
Instance: inst.instance,
360+
Name: name,
361+
Version: version,
362+
}
363+
installCl, err := inst.cli.daemonClient.LibraryUninstall(ctx, req)
364+
logCallf(">>> LibraryUninstall(%+v)\n", req)
365+
return installCl, err
366+
}

Diff for: internal/integrationtest/daemon/daemon_lib_install_test.go

+34
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,16 @@ func TestDaemonBundleLibInstall(t *testing.T) {
7979
}
8080

8181
// Check if libraries are installed as expected
82+
installedEthernetVersion := ""
8283
{
8384
resp, err := grpcInst.LibraryList(context.Background(), "", "", true, false)
8485
require.NoError(t, err)
8586
libsAndLocation := map[string]commands.LibraryLocation{}
8687
for _, lib := range resp.GetInstalledLibraries() {
8788
libsAndLocation[lib.Library.Name] = lib.Library.Location
89+
if lib.Library.Name == "Ethernet" {
90+
installedEthernetVersion = lib.Library.Version
91+
}
8892
}
8993
require.Contains(t, libsAndLocation, "Ethernet")
9094
require.Contains(t, libsAndLocation, "SD")
@@ -94,6 +98,36 @@ func TestDaemonBundleLibInstall(t *testing.T) {
9498
require.Equal(t, libsAndLocation["Firmata"], commands.LibraryLocation_LIBRARY_LOCATION_BUILTIN)
9599
}
96100

101+
// Remove library from sketchbook
102+
{
103+
uninstCl, err := grpcInst.LibraryUninstall(context.Background(), "Ethernet", installedEthernetVersion)
104+
require.NoError(t, err)
105+
for {
106+
msg, err := uninstCl.Recv()
107+
if err == io.EOF {
108+
break
109+
}
110+
require.NoError(t, err)
111+
fmt.Printf("LIB INSTALL> %+v\n", msg)
112+
}
113+
}
114+
115+
// Check if libraries are installed as expected
116+
{
117+
resp, err := grpcInst.LibraryList(context.Background(), "", "", true, false)
118+
require.NoError(t, err)
119+
libsAndLocation := map[string]commands.LibraryLocation{}
120+
for _, lib := range resp.GetInstalledLibraries() {
121+
libsAndLocation[lib.Library.Name] = lib.Library.Location
122+
}
123+
require.Contains(t, libsAndLocation, "Ethernet")
124+
require.Contains(t, libsAndLocation, "SD")
125+
require.Contains(t, libsAndLocation, "Firmata")
126+
require.Equal(t, libsAndLocation["Ethernet"], commands.LibraryLocation_LIBRARY_LOCATION_BUILTIN)
127+
require.Equal(t, libsAndLocation["SD"], commands.LibraryLocation_LIBRARY_LOCATION_BUILTIN)
128+
require.Equal(t, libsAndLocation["Firmata"], commands.LibraryLocation_LIBRARY_LOCATION_BUILTIN)
129+
}
130+
97131
// Un-Set builtin libraries dir
98132
err := cli.SetValue("directories.builtin.libraries", `""`)
99133
require.NoError(t, err)

0 commit comments

Comments
 (0)