@@ -460,3 +460,35 @@ func TestUploadWithInputDirContainingMultipleBinaries(t *testing.T) {
460
460
require .NoError (t , err )
461
461
}
462
462
}
463
+
464
+ func TestCompileAndUploadComboSketchWithMismatchedCasing (t * testing.T ) {
465
+ if os .Getenv ("CI" ) != "" {
466
+ t .Skip ("VMs have no serial ports" )
467
+ }
468
+
469
+ env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
470
+ defer env .CleanUp ()
471
+
472
+ _ , _ , err := cli .Run ("update" )
473
+ require .NoError (t , err )
474
+
475
+ // Create a sketch
476
+ sketchName := "CompileUploadComboMismatchCasing"
477
+ sketchPath := cli .SketchbookDir ().Join (sketchName )
478
+ _ , _ , err = cli .Run ("sketch" , "new" , sketchPath .String ())
479
+ require .NoError (t , err )
480
+
481
+ // Rename main .ino file so casing is different from sketch name
482
+ require .NoError (t , sketchPath .Join (sketchName + ".ino" ).Rename (sketchPath .Join (strings .ToLower (sketchName )+ ".ino" )))
483
+
484
+ for _ , board := range detectedBoards (t , cli ) {
485
+ // Install core
486
+ _ , _ , err = cli .Run ("core" , "install" , board .core )
487
+ require .NoError (t , err )
488
+
489
+ // Try to compile
490
+ _ , stderr , err := cli .Run ("compile" , "--clean" , "-b" , board .fqbn , "-u" , "-p" , board .address , sketchPath .String ())
491
+ require .Error (t , err )
492
+ require .Contains (t , string (stderr ), "Error opening sketch:" )
493
+ }
494
+ }
0 commit comments