@@ -1235,3 +1235,37 @@ func TestInstallGitInvalidLibrary(t *testing.T) {
1235
1235
require .Contains (t , string (stderr ), "library not valid" )
1236
1236
require .NoDirExists (t , libInstallDir .String ())
1237
1237
}
1238
+
1239
+ func TestUpgradeDoesNotTryToUpgradeBundledCoreLibrariesInSketchbook (t * testing.T ) {
1240
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
1241
+ defer env .CleanUp ()
1242
+
1243
+ testPlatformName := "platform_with_bundled_library"
1244
+ platformInstallDir := cli .SketchbookDir ().Join ("hardware" , "arduino-beta-dev" , testPlatformName )
1245
+ require .NoError (t , platformInstallDir .Parent ().MkdirAll ())
1246
+
1247
+ // Install platform in Sketchbook hardware dir
1248
+ wd , err := paths .Getwd ()
1249
+ require .NoError (t , err )
1250
+ require .NoError (t , wd .Parent ().Join ("testdata" , testPlatformName ).CopyDirTo (platformInstallDir ))
1251
+
1252
+ _ , _ , err = cli .Run ("update" )
1253
+ require .NoError (t , err )
1254
+
1255
+ // Install latest version of library identical to one
1256
+ // bundled with test platform
1257
+ _ , _ , err = cli .Run ("lib" , "install" , "USBHost" )
1258
+ require .NoError (t , err )
1259
+
1260
+ stdout , _ , err := cli .Run ("lib" , "list" , "--all" , "--format" , "json" )
1261
+ require .NoError (t , err )
1262
+ requirejson .Len (t , stdout , 2 )
1263
+ // Verify both libraries have the same name
1264
+ requirejson .Query (t , stdout , ".[0] | .library | .name" , "\" USBHost\" " )
1265
+ requirejson .Query (t , stdout , ".[1] | .library | .name" , "\" USBHost\" " )
1266
+
1267
+ stdout , _ , err = cli .Run ("lib" , "upgrade" )
1268
+ require .NoError (t , err )
1269
+ // Empty output means nothing has been updated as expected
1270
+ require .Empty (t , stdout )
1271
+ }
0 commit comments