@@ -492,3 +492,36 @@ func TestCompileAndUploadComboSketchWithMismatchedCasing(t *testing.T) {
492492 require .Contains (t , string (stderr ), "Error opening sketch:" )
493493 }
494494}
495+
496+ func TestUploadSketchWithMismatchedCasing (t * testing.T ) {
497+ if os .Getenv ("CI" ) != "" {
498+ t .Skip ("VMs have no serial ports" )
499+ }
500+
501+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
502+ defer env .CleanUp ()
503+
504+ _ , _ , err := cli .Run ("update" )
505+ require .NoError (t , err )
506+
507+ // Create a sketch
508+ sketchName := "UploadMismatchCasing"
509+ sketchPath := cli .SketchbookDir ().Join (sketchName )
510+ _ , _ , err = cli .Run ("sketch" , "new" , sketchPath .String ())
511+ require .NoError (t , err )
512+
513+ // Rename main .ino file so casing is different from sketch name
514+ require .NoError (t , sketchPath .Join (sketchName + ".ino" ).Rename (sketchPath .Join (strings .ToLower (sketchName )+ ".ino" )))
515+
516+ for _ , board := range detectedBoards (t , cli ) {
517+ // Install core
518+ _ , _ , err = cli .Run ("core" , "install" , board .core )
519+ require .NoError (t , err )
520+
521+ // Tries to upload given sketch, it has not been compiled but it fails even before
522+ // searching for binaries since the sketch is not valid
523+ _ , stderr , err := cli .Run ("upload" , "-b" , board .fqbn , "-p" , board .address , sketchPath .String ())
524+ require .Error (t , err )
525+ require .Contains (t , string (stderr ), "Error during Upload:" )
526+ }
527+ }
0 commit comments