@@ -492,3 +492,36 @@ func TestCompileAndUploadComboSketchWithMismatchedCasing(t *testing.T) {
492
492
require .Contains (t , string (stderr ), "Error opening sketch:" )
493
493
}
494
494
}
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