github.com/arduino/arduino-cloud-cli@v0.0.0-20240517070944-e7a449561083/internal/ota/decoder_test.go (about) 1 package ota 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestDecodeHeader(t *testing.T) { 10 11 header, err := DecodeOtaFirmwareHeaderFromFile("testdata/cloud.ota") 12 assert.Nil(t, err) 13 assert.Equal(t, ArduinoVendorID, header.VID) 14 assert.Equal(t, "8057", header.PID) 15 assert.Equal(t, "arduino:samd:nano_33_iot", *header.FQBN) 16 assert.Equal(t, ArduinoFqbnToPID["arduino:samd:nano_33_iot"], header.PID) 17 18 header, err = DecodeOtaFirmwareHeaderFromFile("testdata/blink.ota") 19 assert.Nil(t, err) 20 assert.Equal(t, ArduinoVendorID, header.VID) 21 assert.Equal(t, "8057", header.PID) 22 assert.Equal(t, "arduino:samd:nano_33_iot", *header.FQBN) 23 assert.Equal(t, ArduinoFqbnToPID["arduino:samd:nano_33_iot"], header.PID) 24 25 } 26 27 func TestDecodeWithNoHeader(t *testing.T) { 28 29 header, err := DecodeOtaFirmwareHeaderFromFile("testdata/cloud.bin") 30 assert.Nil(t, header) 31 assert.NotNil(t, err) 32 33 header, err = DecodeOtaFirmwareHeaderFromFile("testdata/blink.bin") 34 assert.Nil(t, header) 35 assert.NotNil(t, err) 36 37 } 38 39 func TestDecodeEsp32Header(t *testing.T) { 40 41 header, err := DecodeOtaFirmwareHeaderFromFile("testdata/esp32.ota") 42 assert.Nil(t, err) 43 assert.Equal(t, Esp32MagicNumberPart1, header.VID) 44 assert.Equal(t, Esp32MagicNumberPart2, header.PID) 45 assert.Nil(t, header.FQBN) 46 assert.Equal(t, "ESP32", header.BoardType) 47 48 }