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  }