@@ -55,3 +55,36 @@ func TestOutdated(t *testing.T) {
5555 require .Contains (t , lines [1 ], "Arduino AVR Boards" )
5656 require .Contains (t , lines [4 ], "USBHost" )
5757}
58+
59+ func TestOutdatedUsingLibraryWithInvalidVersion (t * testing.T ) {
60+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
61+ defer env .CleanUp ()
62+
63+ _ , _ , err := cli .Run ("update" )
64+ require .NoError (t , err )
65+
66+ // Install latest version of a library library
67+ _ , _ , err = cli .Run ("lib" , "install" , "WiFi101" )
68+ require .NoError (t , err )
69+
70+ // Verifies library is correctly returned
71+ stdout , _ , err := cli .Run ("outdated" )
72+ require .NoError (t , err )
73+ require .NotContains (t , string (stdout ), "WiFi101" )
74+
75+ // Changes the version of the currently installed library so that it's invalid
76+ libPath := cli .SketchbookDir ().Join ("libraries" , "WiFi101" , "library.properties" )
77+ err = libPath .WriteFile ([]byte ("name=WiFi101\n version=1.0001" ))
78+ require .NoError (t , err )
79+
80+ // Verifies library is correctly returned
81+ stdout , _ , err = cli .Run ("outdated" )
82+ require .NoError (t , err )
83+ lines := strings .Split (string (stdout ), "\n " )
84+ l := make ([][]string , len (lines ))
85+ for i := range lines {
86+ lines [i ] = strings .TrimSpace (lines [i ])
87+ l [i ] = strings .Split (lines [i ], " " )
88+ }
89+ require .Contains (t , l [1 ][0 ], "WiFi101" )
90+ }
0 commit comments