From e1145dc92831381689f3d722a60e8848a6fd4f7b Mon Sep 17 00:00:00 2001 From: Timotej Ecimovic <timotej.ecimovic@silabs.com> Date: Wed, 19 Jan 2022 14:15:41 -0500 Subject: [PATCH] Add a unit test for new reporting policy, and fix some loader issues that the unit test discovered. --- src-electron/zcl/zcl-loader-silabs.js | 4 +++- src-shared/db-enum.js | 7 +++++-- test/gen-meta.test.js | 1 + test/resource/meta/test1.xml | 4 ++-- test/resource/meta/test1.zapt | 5 +++++ 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src-electron/zcl/zcl-loader-silabs.js b/src-electron/zcl/zcl-loader-silabs.js index be21ec2d..414a7b6e 100644 --- a/src-electron/zcl/zcl-loader-silabs.js +++ b/src-electron/zcl/zcl-loader-silabs.js @@ -91,6 +91,9 @@ async function collectDataFromJsonFile(metadataFile, data) { // Default reportability. // `defaultReportable` was old thing that could be true or false. // We still honor it. + returnObject.defaultReportingPolicy = + dbEnum.reportingPolicy.defaultReportingPolicy + if ('defaultReportable' in obj) { returnObject.defaultReportingPolicy = obj.defaultReportable ? dbEnum.reportingPolicy.suggested @@ -103,7 +106,6 @@ async function collectDataFromJsonFile(metadataFile, data) { obj.defaultReportingPolicy ) } - returnObject.version = obj.version returnObject.supportCustomZclDevice = obj.supportCustomZclDevice diff --git a/src-shared/db-enum.js b/src-shared/db-enum.js index d3adb921..71b7bee4 100644 --- a/src-shared/db-enum.js +++ b/src-shared/db-enum.js @@ -116,11 +116,12 @@ exports.sessionOption = { profileCodes: 'profileCodes', } -exports.reportingPolicy = { +const reportingPolicy = { mandatory: 'mandatory', suggested: 'suggested', optional: 'optional', prohibited: 'prohibited', + defaultReportingPolicy: 'optional', resolve: (txt) => { switch (txt) { case reportingPolicy.mandatory: @@ -130,11 +131,13 @@ exports.reportingPolicy = { return txt default: // Default - return reportingPolicy.optional + return reportingPolicy.defaultReportingPolicy } }, } +exports.reportingPolicy = reportingPolicy + // When SDK supports a custom device, these are the default values for it. exports.customDevice = { domain: 'Custom', diff --git a/test/gen-meta.test.js b/test/gen-meta.test.js index a7250883..b8adbb70 100644 --- a/test/gen-meta.test.js +++ b/test/gen-meta.test.js @@ -208,6 +208,7 @@ test( let epc = genResult.content['test1.out'] expect(epc).not.toBeNull() expect(epc).toContain('Test1 template.') + expect(epc).toContain('- attribute: at2 => true => mandatory') epc = genResult.content['out/test1.out'] expect(epc).not.toBeNull() diff --git a/test/resource/meta/test1.xml b/test/resource/meta/test1.xml index c3d514a0..08d81d88 100644 --- a/test/resource/meta/test1.xml +++ b/test/resource/meta/test1.xml @@ -33,7 +33,7 @@ limitations under the License. <description>at1</description> <access op="write" role="manage" modifier="fabric-scoped"/> </attribute> - <attribute side="server" code="0x0001" define="AT2" type="INT16U" writable="false" optional="true" isNullable="true"> + <attribute side="server" code="0x0001" define="AT2" type="INT16U" writable="false" optional="true" isNullable="true" reportingPolicy="mandatory"> <description>at2</description> <access modifier="fabric-sensitive"/> </attribute> @@ -62,7 +62,7 @@ limitations under the License. <description>at1</description> <access op="write" role="manage" modifier="fabric-scoped"/> </attribute> - <attribute side="server" code="0x0001" define="AT2" type="INT16U" writable="false" optional="true" isNullable="true"> + <attribute side="server" code="0x0001" define="AT2" type="INT16U" writable="false" optional="true" isNullable="true" reportingPolicy="prohibited"> <description>at2</description> <access modifier="fabric-sensitive"/> </attribute> diff --git a/test/resource/meta/test1.zapt b/test/resource/meta/test1.zapt index f209b5f1..200da6ba 100644 --- a/test/resource/meta/test1.zapt +++ b/test/resource/meta/test1.zapt @@ -42,4 +42,9 @@ Attributes [{{endpoint_attribute_count}}]: {{/endpoint_config}} +Reporting policy: +{{#zcl_attributes}} + - attribute: {{name}} => {{isReportable}} => {{reportingPolicy}} +{{/zcl_attributes}} + {{/zcl_clusters}} \ No newline at end of file -- GitLab