@@ -79,3 +79,49 @@ func TestBoardListWithInvalidDiscovery(t *testing.T) {
79
79
require .NoError (t , err )
80
80
require .Contains (t , string (stdout ), "builtin:serial-discovery" )
81
81
}
82
+
83
+ func TestBoardListall (t * testing.T ) {
84
+ env := testsuite .NewEnvironment (t )
85
+ defer env .CleanUp ()
86
+
87
+ cli := integrationtest .NewArduinoCliWithinEnvironment (env , & integrationtest.ArduinoCLIConfig {
88
+ ArduinoCLIPath : paths .New (".." , ".." , ".." , "arduino-cli" ),
89
+ UseSharedStagingFolder : true ,
90
+ })
91
+
92
+ _ , _ , err := cli .Run ("update" )
93
+ require .NoError (t , err )
94
+ _ ,
_ ,
err = cli .
Run (
"core" ,
"install" ,
"arduino:[email protected] " )
95
+ require .NoError (t , err )
96
+
97
+ stdout , _ , err := cli .Run ("board" , "listall" , "--format" , "json" )
98
+ require .NoError (t , err )
99
+ var data map [string ]interface {}
100
+ err = json .Unmarshal (stdout , & data )
101
+ require .NoError (t , err )
102
+
103
+ // maps each json contained in "boards" using
104
+ // its corresponding "fqbn" value as its key
105
+ boards := make (map [string ]map [string ]interface {})
106
+ for _ , v := range data ["boards" ].([]interface {}) {
107
+ mapV := v .(map [string ]interface {})
108
+ boards [mapV ["fqbn" ].(string )] = mapV
109
+ }
110
+ require .Len (t , boards , 26 )
111
+
112
+ require .Contains (t , boards , "arduino:avr:yun" )
113
+ require .Equal (t , boards ["arduino:avr:yun" ]["name" ], "Arduino Yún" )
114
+ platform := boards ["arduino:avr:yun" ]["platform" ].(map [string ]interface {})
115
+ require .Equal (t , platform ["id" ], "arduino:avr" )
116
+ require .Equal (t , platform ["installed" ], "1.8.3" )
117
+ require .NotEmpty (t , platform ["latest" ])
118
+ require .Equal (t , platform ["name" ], "Arduino AVR Boards" )
119
+
120
+ require .Contains (t , boards , "arduino:avr:uno" )
121
+ require .Equal (t , boards ["arduino:avr:uno" ]["name" ], "Arduino Uno" )
122
+ platform = boards ["arduino:avr:uno" ]["platform" ].(map [string ]interface {})
123
+ require .Equal (t , platform ["id" ], "arduino:avr" )
124
+ require .Equal (t , platform ["installed" ], "1.8.3" )
125
+ require .NotEmpty (t , platform ["latest" ])
126
+ require .Equal (t , platform ["name" ], "Arduino AVR Boards" )
127
+ }
0 commit comments