@@ -1298,3 +1298,37 @@ func TestUpgradeDoesNotTryToUpgradeBundledCoreLibrariesInSketchbook(t *testing.T
12981298 // Empty output means nothing has been updated as expected
12991299 require .Empty (t , stdout )
13001300}
1301+
1302+ func TestUpgradeDoesNotTryToUpgradeBundledCoreLibraries (t * testing.T ) {
1303+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
1304+ defer env .CleanUp ()
1305+
1306+ testPlatformName := "platform_with_bundled_library"
1307+ platformInstallDir := cli .DataDir ().Join ("packages" , "arduino" , "hardware" , "arch" , "4.2.0" )
1308+ require .NoError (t , platformInstallDir .Parent ().MkdirAll ())
1309+
1310+ // Install platform in Sketchbook hardware dir
1311+ wd , err := paths .Getwd ()
1312+ require .NoError (t , err )
1313+ require .NoError (t , wd .Parent ().Join ("testdata" , testPlatformName ).CopyDirTo (platformInstallDir ))
1314+
1315+ _ , _ , err = cli .Run ("update" )
1316+ require .NoError (t , err )
1317+
1318+ // Install latest version of library identical to one
1319+ // bundled with test platform
1320+ _ , _ , err = cli .Run ("lib" , "install" , "USBHost" )
1321+ require .NoError (t , err )
1322+
1323+ stdout , _ , err := cli .Run ("lib" , "list" , "--all" , "--format" , "json" )
1324+ require .NoError (t , err )
1325+ requirejson .Len (t , stdout , 2 )
1326+ // Verify both libraries have the same name
1327+ requirejson .Query (t , stdout , ".[0] | .library | .name" , "\" USBHost\" " )
1328+ requirejson .Query (t , stdout , ".[1] | .library | .name" , "\" USBHost\" " )
1329+
1330+ stdout , _ , err = cli .Run ("lib" , "upgrade" )
1331+ require .NoError (t , err )
1332+ // Empty output means nothing has been updated as expected
1333+ require .Empty (t , stdout )
1334+ }
0 commit comments