@@ -460,3 +460,35 @@ func TestUploadWithInputDirContainingMultipleBinaries(t *testing.T) {
460460 require .NoError (t , err )
461461 }
462462}
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