@@ -18,6 +18,7 @@ package core_test
1818import (
1919 "fmt"
2020 "runtime"
21+ "strconv"
2122 "strings"
2223 "testing"
2324
@@ -417,3 +418,38 @@ func TestCoreSearchManuallyInstalledCoresNotPrinted(t *testing.T) {
417418 requirejson .NotContains (t , stdout , `[{"id": "arduino-beta-development:avr"}]` )
418419 require .Equal (t , oldJson , stdout )
419420}
421+
422+ func TestCoreListAllManuallyInstalledCore (t * testing.T ) {
423+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
424+ defer env .CleanUp ()
425+
426+ _ , _ , err := cli .Run ("core" , "update-index" )
427+ require .NoError (t , err )
428+
429+ // Verifies only cores in board manager are shown
430+ stdout , _ , err := cli .Run ("core" , "list" , "--all" , "--format" , "json" )
431+ require .NoError (t , err )
432+ requirejson .Query (t , stdout , "length > 0" , "true" )
433+ len , _ := strconv .Atoi (requirejson .Parse (t , stdout ).Query ("length" ).String ())
434+
435+ // Manually installs a core in sketchbooks hardware folder
436+ gitUrl := "https://github.com/arduino/ArduinoCore-avr.git"
437+ repoDir := cli .SketchbookDir ().Join ("hardware" , "arduino-beta-development" , "avr" )
438+ _ , err = git .PlainClone (repoDir .String (), false , & git.CloneOptions {
439+ URL : gitUrl ,
440+ ReferenceName : plumbing .NewTagReferenceName ("1.8.3" ),
441+ })
442+ require .NoError (t , err )
443+
444+ // Verifies manually installed core is shown
445+ stdout , _ , err = cli .Run ("core" , "list" , "--all" , "--format" , "json" )
446+ require .NoError (t , err )
447+ requirejson .Len (t , stdout , len + 1 )
448+ requirejson .Contains (t , stdout , `[
449+ {
450+ "id": "arduino-beta-development:avr",
451+ "latest": "1.8.3",
452+ "name": "Arduino AVR Boards"
453+ }
454+ ]` )
455+ }
0 commit comments