Skip to content

Commit 79f9efb

Browse files
authored
Merge pull request #53 from zigbee-alliance/feature/model-info-ota
Added Version and OTA-related fields to ModelInfo
2 parents 13d6b7f + 6fd0de5 commit 79f9efb

28 files changed

+643
-246
lines changed

integration_tests/cli/modelinfo-demo.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ vid=$RANDOM
2727
pid=$RANDOM
2828
name="Device #1"
2929
echo "Add Model with VID: $vid PID: $pid"
30-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="$name" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes)
30+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="$name" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=false --from $vendor_account --yes)
3131
check_response "$result" "\"success\": true"
3232
echo "$result"
3333

integration_tests/cli/modelinfo-negative-cases.sh

+18-18
Original file line numberDiff line numberDiff line change
@@ -32,68 +32,68 @@ vid=$RANDOM
3232
pid=$RANDOM
3333

3434
echo "Add Model with VID: $vid PID: $pid: Not Vendor"
35-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Device #1" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $user_account --yes)
35+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Device #1" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $user_account --yes)
3636
check_response_and_report "$result" "\"success\": false"
3737
check_response_and_report "$result" "\"code\": 4"
3838
echo "$result"
3939

4040
echo "Add Model with VID: $vid PID: $pid: Twice"
41-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Device #1" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes)
42-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Device #1" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes)
41+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Device #1" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes)
42+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Device #1" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes)
4343
check_response_and_report "$result" "\"success\": false"
4444
check_response_and_report "$result" "\"code\": 501"
4545
echo "$result"
4646

4747
# CLI side errors
4848

4949
echo "Add Model with VID: $vid PID: $pid: Unknown account"
50-
result=$(dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name 1" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from "Unknown" 2>&1) || true
50+
result=$(dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name 1" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from "Unknown" 2>&1) || true
5151
check_response_and_report "$result" "Key Unknown not found"
5252

5353
echo "Add model with invalid VID/PID"
5454
for i in "0" "string"
5555
do
56-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$i --pid=$pid --name="Name" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
56+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$i --pid=$pid --name="Name" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
5757
check_response_and_report "$result" "Invalid VID"
5858

59-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$i --name="Name" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
59+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$i --name="Name" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
6060
check_response_and_report "$result" "Invalid PID"
6161
done
6262

6363
echo "Add model with epmty name"
64-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
64+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
6565
check_response_and_report "$result" "Code: 6"
6666
check_response_and_report "$result" "Invalid Name"
6767

6868
echo "Add model with epmty description"
69-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
69+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
7070
check_response_and_report "$result" "Code: 6"
7171
check_response_and_report "$result" "Invalid Description"
7272

7373
echo "Add model with epmty SKU"
74-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
74+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
7575
check_response_and_report "$result" "Code: 6"
7676
check_response_and_report "$result" "Invalid SKU"
7777

78-
echo "Add model with epmty Firmwere Version"
79-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="SKU12FS" --firmware-version="" --hardware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
80-
check_response_and_report "$result" "Code: 6"
81-
check_response_and_report "$result" "Invalid FirmwareVersion"
82-
8378
echo "Add model with epmty Hardware Version"
84-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
79+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="SKU12FS" --hardware-version="" --firmware-version="2.0" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
8580
check_response_and_report "$result" "Code: 6"
8681
check_response_and_report "$result" "Invalid HardwareVersion"
8782

83+
echo "Add model with epmty Firmwere Version"
84+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="" --tis-or-trp-testing-completed=true --from $vendor_account --yes 2>&1) || true
85+
check_response_and_report "$result" "Code: 6"
86+
check_response_and_report "$result" "Invalid FirmwareVersion"
87+
8888
echo "Add model with Invalid TIS flag"
89-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed="string" --from $vendor_account --yes 2>&1) || true
89+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed="string" --from $vendor_account --yes 2>&1) || true
9090
check_response_and_report "$result" "Code: 6"
9191
check_response_and_report "$result" "Invalid Tis-or-trp-testing-completed"
9292

9393
echo "Add model without --from flag"
94-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --tis-or-trp-testing-completed=true --yes 2>&1) || true
94+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="Name" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --tis-or-trp-testing-completed=true --yes 2>&1) || true
9595
check_response_and_report "$result" "required flag(s) \"from\" not set"
9696

9797
echo "Add model with not enought parameters"
98-
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="" --description="Device Description" --sku="SKU12FS" --firmware-version="1.0" --hardware-version="2.0" --from $vendor_account --yes 2>&1) || true
98+
result=$(echo "test1234" | dclcli tx modelinfo add-model --vid=$vid --pid=$pid --name="" --description="Device Description" --sku="SKU12FS" --hardware-version="1.1" --firmware-version="2.0" --from $vendor_account --yes 2>&1) || true
9999
check_response_and_report "$result" "required flag(s) \"tis-or-trp-testing-completed\" not set"

integration_tests/constants/constants.go

+9-5
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,18 @@ var (
3737
VID uint16 = 1
3838
PID uint16 = 22
3939
CID uint16 = 12345
40+
Version = "1.0"
4041
Name = "Device Name"
41-
Owner = Address1
4242
Description = "Device Description"
43-
Sku = "RCU2205A"
44-
FirmwareVersion = "1.0"
45-
HardwareVersion = "2.0"
43+
SKU = "RCU2205A"
44+
HardwareVersion = "1.1"
45+
FirmwareVersion = "2.0"
46+
OtaURL = "http://ota.firmware.com"
47+
OtaChecksum = "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
48+
OtaChecksumType = "SHA-256"
4649
Custom = "Custom data"
47-
TisOrTrpTestingCompleted = false
50+
TisOrTrpTestingCompleted = true
51+
Owner = Address1
4852

4953
// Compliance.
5054
CertificationDate = time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC)

integration_tests/rest/auth_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func TestAuthDemo(t *testing.T) {
9090

9191
// Publish model info by test account
9292
modelInfo := utils.NewMsgAddModelInfo(testAccountKeyInfo.Address)
93-
_, _ = utils.PublishModelInfo(modelInfo, testAccountKeyInfo)
93+
_, _ = utils.AddModelInfo(modelInfo, testAccountKeyInfo)
9494

9595
// Check model is created
9696
receivedModelInfo, _ := utils.GetModelInfo(modelInfo.VID, modelInfo.PID)
@@ -135,6 +135,6 @@ func TestAuthDemo(t *testing.T) {
135135
// Try to publish another model info by test account.
136136
// Ensure that the request is responded with not OK status code.
137137
modelInfo = utils.NewMsgAddModelInfo(testAccountKeyInfo.Address)
138-
_, code = utils.PublishModelInfo(modelInfo, testAccountKeyInfo)
138+
_, code = utils.AddModelInfo(modelInfo, testAccountKeyInfo)
139139
require.NotEqual(t, http.StatusOK, code)
140140
}

integration_tests/rest/compliance_test.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,13 @@
1414

1515
package rest_test
1616

17-
//nolint:goimports
1817
import (
1918
"testing"
2019
"time"
2120

2221
"github.com/stretchr/testify/require"
2322
"github.com/tendermint/tendermint/libs/common"
24-
"github.com/zigbee-alliance/distributed-compliance-ledger/integration_tests/constants"
23+
testconstants "github.com/zigbee-alliance/distributed-compliance-ledger/integration_tests/constants"
2524
"github.com/zigbee-alliance/distributed-compliance-ledger/integration_tests/utils"
2625
"github.com/zigbee-alliance/distributed-compliance-ledger/x/auth"
2726
"github.com/zigbee-alliance/distributed-compliance-ledger/x/compliance"
@@ -58,7 +57,7 @@ func TestComplianceDemo_KeepTrackCompliance(t *testing.T) {
5857

5958
// Publish model info
6059
modelInfo := utils.NewMsgAddModelInfo(vendor.Address)
61-
_, _ = utils.PublishModelInfo(modelInfo, vendor)
60+
_, _ = utils.AddModelInfo(modelInfo, vendor)
6261

6362
// Check if model either certified or revoked before Compliance record was created
6463
modelIsCertified, _ := utils.GetCertifiedModel(modelInfo.VID, modelInfo.PID, compliance.ZbCertificationType)

integration_tests/rest/compliancetest_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestCompliancetestDemo(t *testing.T) {
4343

4444
// Publish model info
4545
modelInfo := utils.NewMsgAddModelInfo(vendor.Address)
46-
_, _ = utils.PublishModelInfo(modelInfo, vendor)
46+
_, _ = utils.AddModelInfo(modelInfo, vendor)
4747

4848
// Publish first testing result using Sign and Broadcast AddTestingResult message
4949
firstTestingResult := utils.NewMsgAddTestingResult(modelInfo.VID, modelInfo.PID, testHouse.Address)
@@ -60,7 +60,7 @@ func TestCompliancetestDemo(t *testing.T) {
6060

6161
// Publish second model info
6262
secondModelInfo := utils.NewMsgAddModelInfo(vendor.Address)
63-
_, _ = utils.PublishModelInfo(secondModelInfo, vendor)
63+
_, _ = utils.AddModelInfo(secondModelInfo, vendor)
6464

6565
// Publish second testing result using POST
6666
secondTestingResult := utils.NewMsgAddTestingResult(secondModelInfo.VID, secondModelInfo.PID, testHouse.Address)

integration_tests/rest/modelinfo_test.go

+14-4
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,19 @@ func TestModelinfoDemo(t *testing.T) {
5757
require.Equal(t, receivedModelInfo.VID, firstModelInfo.VID)
5858
require.Equal(t, receivedModelInfo.PID, firstModelInfo.PID)
5959
require.Equal(t, receivedModelInfo.Name, firstModelInfo.Name)
60+
require.Equal(t, receivedModelInfo.Description, firstModelInfo.Description)
6061

6162
// Publish second model info using POST command with passing name and passphrase. Same Vendor
6263
secondModelInfo := utils.NewMsgAddModelInfo(vendor.Address)
6364
secondModelInfo.VID = VID // Set same Vendor as for the first model
64-
_, _ = utils.PublishModelInfo(secondModelInfo, vendor)
65+
_, _ = utils.AddModelInfo(secondModelInfo, vendor)
6566

6667
// Check model is created
6768
receivedModelInfo, _ = utils.GetModelInfo(secondModelInfo.VID, secondModelInfo.PID)
6869
require.Equal(t, receivedModelInfo.VID, secondModelInfo.VID)
6970
require.Equal(t, receivedModelInfo.PID, secondModelInfo.PID)
7071
require.Equal(t, receivedModelInfo.Name, secondModelInfo.Name)
72+
require.Equal(t, receivedModelInfo.Description, secondModelInfo.Description)
7173

7274
// Get all model infos
7375
modelInfos, _ := utils.GetModelInfos()
@@ -82,6 +84,14 @@ func TestModelinfoDemo(t *testing.T) {
8284
require.Equal(t, uint64(2), uint64(len(vendorModels.Products)))
8385
require.Equal(t, firstModelInfo.PID, vendorModels.Products[0].PID)
8486
require.Equal(t, secondModelInfo.PID, vendorModels.Products[1].PID)
87+
88+
// Update second model info
89+
secondModelInfoUpdate := utils.NewMsgUpdateModelInfo(secondModelInfo.VID, secondModelInfo.PID, vendor.Address)
90+
_, _ = utils.UpdateModelInfo(secondModelInfoUpdate, vendor)
91+
92+
// Check model is updated
93+
receivedModelInfo, _ = utils.GetModelInfo(secondModelInfo.VID, secondModelInfo.PID)
94+
require.Equal(t, receivedModelInfo.Description, secondModelInfoUpdate.Description)
8595
}
8696

8797
func TestModelinfoDemo_Prepare_Sign_Broadcast(t *testing.T) {
@@ -92,7 +102,7 @@ func TestModelinfoDemo_Prepare_Sign_Broadcast(t *testing.T) {
92102
modelInfo := utils.NewMsgAddModelInfo(vendor.Address)
93103

94104
// Prepare Sing Broadcast
95-
addModelTransaction, _ := utils.PrepareModelInfoTransaction(modelInfo)
105+
addModelTransaction, _ := utils.PrepareAddModelInfoTransaction(modelInfo)
96106
_, _ = utils.SignAndBroadcastTransaction(vendor, addModelTransaction)
97107

98108
// Check model is created
@@ -120,11 +130,11 @@ func Test_AddModelinfo_Twice(t *testing.T) {
120130

121131
// publish model info
122132
modelInfo := utils.NewMsgAddModelInfo(testAccount.Address)
123-
res, _ := utils.PublishModelInfo(modelInfo, testAccount)
133+
res, _ := utils.AddModelInfo(modelInfo, testAccount)
124134
require.Equal(t, sdk.CodeOK, sdk.CodeType(res.Code))
125135

126136
// publish second time
127-
res, _ = utils.PublishModelInfo(modelInfo, testAccount)
137+
res, _ = utils.AddModelInfo(modelInfo, testAccount)
128138
require.Equal(t, modelinfo.CodeModelInfoAlreadyExists, sdk.CodeType(res.Code))
129139
}
130140

0 commit comments

Comments
 (0)