diff --git a/arduino/cores/packagemanager/identify.go b/arduino/cores/packagemanager/identify.go index 13e8cfeb29b..570d88cbef6 100644 --- a/arduino/cores/packagemanager/identify.go +++ b/arduino/cores/packagemanager/identify.go @@ -17,6 +17,7 @@ package packagemanager import ( "fmt" + "strings" "github.com/arduino/arduino-cli/arduino/cores" properties "github.com/arduino/go-properties-orderedmap" @@ -34,7 +35,7 @@ func (pm *PackageManager) IdentifyBoard(idProps *properties.Map) []*cores.Board if !ok { return false, false } - if v1 != v2 { + if !strings.EqualFold(v1, v2) { return true, false } } diff --git a/arduino/cores/packagemanager/package_manager_test.go b/arduino/cores/packagemanager/package_manager_test.go index 3e6de20d054..b104e65d74f 100644 --- a/arduino/cores/packagemanager/package_manager_test.go +++ b/arduino/cores/packagemanager/package_manager_test.go @@ -316,4 +316,7 @@ func TestIdentifyBoard(t *testing.T) { require.Equal(t, "[test:avr:c]", fmt.Sprintf("%v", identify("0x9999", "0x0004"))) // https://github.com/arduino/arduino-cli/issues/456 require.Equal(t, "[test:avr:d]", fmt.Sprintf("%v", identify("0x9999", "0x0005"))) + // Check mixed case + require.Equal(t, "[test:avr:e]", fmt.Sprintf("%v", identify("0xAB00", "0xcd00"))) + require.Equal(t, "[test:avr:e]", fmt.Sprintf("%v", identify("0xab00", "0xCD00"))) } diff --git a/arduino/cores/packagemanager/testdata/custom_hardware/test/avr/boards.txt b/arduino/cores/packagemanager/testdata/custom_hardware/test/avr/boards.txt index 76a3f32baf2..ee96c2a2cbb 100644 --- a/arduino/cores/packagemanager/testdata/custom_hardware/test/avr/boards.txt +++ b/arduino/cores/packagemanager/testdata/custom_hardware/test/avr/boards.txt @@ -15,3 +15,7 @@ c.pid.1=0x0004 d.name=Board D d.vid.1=0x9999 d.pid.1=0x0005 + +e.name=Board E +e.vid.1=0xAB00 +e.pid.1=0xcd00