Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
194
pkg/common/trex_rx_test.go
Normal file
194
pkg/common/trex_rx_test.go
Normal file
@@ -0,0 +1,194 @@
|
||||
package common_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"fiskerinc.com/modules/common"
|
||||
"fiskerinc.com/modules/common/handlers"
|
||||
"fiskerinc.com/modules/testhelper"
|
||||
"fiskerinc.com/modules/utils/elptr"
|
||||
)
|
||||
|
||||
func TestTRexRXMessages(t *testing.T) {
|
||||
schema := "file://" + testhelper.GetSchemaDirPath() + "/trex/RXMessage.json"
|
||||
var bhex common.BinaryHex
|
||||
bhex = []byte("test")
|
||||
manifest := common.UpdateManifest{
|
||||
ID: 1234567890,
|
||||
Name: "Test Update Manifest",
|
||||
Version: "1.2.3",
|
||||
Description: "This is a test manifest",
|
||||
ReleaseNotes: "https://fiskerinc.com",
|
||||
Fingerprint: "8fe27f7fb079ebe06db5f88586b98797",
|
||||
Type: "standard",
|
||||
Country: "US",
|
||||
PowerTrain: "MD23",
|
||||
Restraint: "None",
|
||||
Model: "Ocean",
|
||||
Trim: "Sport",
|
||||
Year: 2022,
|
||||
BodyType: "truck",
|
||||
ECUs: []*common.UpdateManifestECU{
|
||||
{
|
||||
ECU: "adas",
|
||||
Version: "1.2.3",
|
||||
CurrentVersion: "1.0.0",
|
||||
HWVersions: []string{"10000"},
|
||||
ConfigurationMask: "04d923318b8e1517a9cc8b52af11b051",
|
||||
Configuration: "04d923318b8e1517a9cc8b52af11b051",
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "XXXXXXXXXX",
|
||||
URL: "https://fiskerinc.com/adas_test.txt",
|
||||
Checksum: "CHECKSUM",
|
||||
FileType: common.Calibration,
|
||||
FileSize: 90,
|
||||
Signature: "53e976bd61161e4f425186e560f0797767d10fd6f0116e224efc444fa014754cb299e51827468c03c9b06508740ed738b1ec14b9cc753a1875971e335408660e",
|
||||
WriteRegionID: 100,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
Offset: 101,
|
||||
Length: 102,
|
||||
},
|
||||
EraseRegionID: 200,
|
||||
EraseRegion: &common.MemoryRegion{
|
||||
Offset: 201,
|
||||
Length: 202,
|
||||
},
|
||||
FileKey: &common.FileKeyResponse{
|
||||
FileID: "fileid",
|
||||
Key: "key",
|
||||
Auth: "auth",
|
||||
Nonce: "nonce",
|
||||
Error: "NoError",
|
||||
},
|
||||
},
|
||||
},
|
||||
Rollback: []*common.UpdateManifestECU{
|
||||
{
|
||||
Version: "1.2.3",
|
||||
ConfigurationMask: "04d923318b8e1517a9cc8b52af11b051",
|
||||
Configuration: "04d923318b8e1517a9cc8b52af11b051",
|
||||
Files: []*common.UpdateManifestFile{
|
||||
{
|
||||
FileID: "XXXXXXXXXX",
|
||||
URL: "https://fiskerinc.com/adas_test.txt",
|
||||
FileType: common.Calibration,
|
||||
Checksum: "CHECKSUM",
|
||||
FileSize: 100,
|
||||
WriteRegionID: 100,
|
||||
WriteRegion: common.MemoryRegion{
|
||||
Offset: 101,
|
||||
Length: 102,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ECCKeys: &common.ECCKeys{
|
||||
PrivKey1: &bhex,
|
||||
PrivKey2: &bhex,
|
||||
PrivKey3: &bhex,
|
||||
},
|
||||
},
|
||||
},
|
||||
CarUpdateID: 1,
|
||||
}
|
||||
manifest.Scrub(common.TRex)
|
||||
|
||||
tests := []testhelper.SchemaTest{
|
||||
{
|
||||
Name: "TestTRexCarFileKeys",
|
||||
Object: common.Message{
|
||||
Handler: "filekeys",
|
||||
Data: []common.FileKeyResponse{
|
||||
{
|
||||
FileID: "abc123",
|
||||
Key: "testKey",
|
||||
Auth: "testAuth",
|
||||
Nonce: "testNonce",
|
||||
Error: "noError",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestTRexCarUpdateInstall",
|
||||
Object: common.Message{
|
||||
Handler: "update_manifest",
|
||||
Data: manifest,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestTRexConfigResponse",
|
||||
Object: common.Message{
|
||||
Handler: "config",
|
||||
Data: common.TRexConfigResponse{
|
||||
CANBus: common.CANBus{
|
||||
Enabled: true,
|
||||
Filters: []common.CANFilter{
|
||||
{
|
||||
CANID: "1234",
|
||||
Interval: elptr.ElPtr(1000),
|
||||
},
|
||||
{
|
||||
CANID: "5128",
|
||||
EdgeMask: elptr.ElPtr(common.BinaryHex("")), // it won't serialize if it's empty
|
||||
},
|
||||
{
|
||||
CANID: "5678",
|
||||
Interval: elptr.ElPtr(2000),
|
||||
},
|
||||
{
|
||||
CANID: "5678",
|
||||
EdgeMask: elptr.ElPtr(bhex),
|
||||
},
|
||||
},
|
||||
DataLogger: true,
|
||||
DTCEnabled: elptr.ElPtr(true),
|
||||
MemBuffSize: 1 * 1024 * 1024,
|
||||
DiskBuffSize: 10 * 1024 * 1024,
|
||||
},
|
||||
LogLevel: common.Debug,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestTRexConfigEmptyResponse",
|
||||
Object: common.Message{
|
||||
Handler: "config",
|
||||
Data: common.TRexConfigResponse{
|
||||
CANBus: common.CANBus{
|
||||
Enabled: false,
|
||||
Filters: []common.CANFilter{},
|
||||
DataLogger: false,
|
||||
DTCEnabled: elptr.ElPtr(false),
|
||||
MemBuffSize: 0,
|
||||
DiskBuffSize: 0,
|
||||
},
|
||||
LogLevel: common.Info,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestTRexError",
|
||||
Object: common.Message{
|
||||
Handler: "error",
|
||||
Data: common.MessageString{
|
||||
Message: "disconnected by duplicate ID",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "TestCancelUpdateManifest",
|
||||
Object: common.Message{
|
||||
Handler: handlers.UpdateManifestCancel,
|
||||
Data: common.CarUpdateRequest{
|
||||
CarUpdateID: 1000,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
testhelper.NewSchemaTestHelper(t, schema).
|
||||
RunSchemaTests(tests)
|
||||
}
|
||||
Reference in New Issue
Block a user