@@ -1269,3 +1269,37 @@ func TestUpgradeDoesNotTryToUpgradeBundledCoreLibrariesInSketchbook(t *testing.T
12691269 // Empty output means nothing has been updated as expected
12701270 require .Empty (t , stdout )
12711271}
1272+
1273+ func TestUpgradeDoesNotTryToUpgradeBundledCoreLibraries (t * testing.T ) {
1274+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
1275+ defer env .CleanUp ()
1276+
1277+ testPlatformName := "platform_with_bundled_library"
1278+ platformInstallDir := cli .DataDir ().Join ("packages" , "arduino" , "hardware" , "arch" , "4.2.0" )
1279+ require .NoError (t , platformInstallDir .Parent ().MkdirAll ())
1280+
1281+ // Install platform in Sketchbook hardware dir
1282+ wd , err := paths .Getwd ()
1283+ require .NoError (t , err )
1284+ require .NoError (t , wd .Parent ().Join ("testdata" , testPlatformName ).CopyDirTo (platformInstallDir ))
1285+
1286+ _ , _ , err = cli .Run ("update" )
1287+ require .NoError (t , err )
1288+
1289+ // Install latest version of library identical to one
1290+ // bundled with test platform
1291+ _ , _ , err = cli .Run ("lib" , "install" , "USBHost" )
1292+ require .NoError (t , err )
1293+
1294+ stdout , _ , err := cli .Run ("lib" , "list" , "--all" , "--format" , "json" )
1295+ require .NoError (t , err )
1296+ requirejson .Len (t , stdout , 2 )
1297+ // Verify both libraries have the same name
1298+ requirejson .Query (t , stdout , ".[0] | .library | .name" , "\" USBHost\" " )
1299+ requirejson .Query (t , stdout , ".[1] | .library | .name" , "\" USBHost\" " )
1300+
1301+ stdout , _ , err = cli .Run ("lib" , "upgrade" )
1302+ require .NoError (t , err )
1303+ // Empty output means nothing has been updated as expected
1304+ require .Empty (t , stdout )
1305+ }
0 commit comments