Skip to content

Commit 1678740

Browse files
vivien-applepull[bot]
authored andcommitted
[YAML] Remove unused list freer (#15415)
* [YAML] Add chip_tests_item_has_list in order to not generate a useless ListFreer if it it not needed * Update generated tests content
1 parent d66e635 commit 1678740

File tree

3 files changed

+29
-3107
lines changed

3 files changed

+29
-3107
lines changed

examples/chip-tool/templates/tests/partials/test_cluster.zapt

+2-2
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ class {{filename}}: public TestCommand
301301
{{#if isCommand}}
302302
using RequestType = chip::app::Clusters::{{asUpperCamelCase cluster}}::Commands::{{asUpperCamelCase command}}::Type;
303303

304-
ListFreer listFreer;
304+
{{#if (chip_tests_item_has_list)}} ListFreer listFreer;{{/if}}
305305
RequestType request;
306306
{{#chip_tests_item_parameters}}
307307
{{>commandValue ns=parent.cluster container=(concat "request." (asLowerCamelCase label)) definedValue=definedValue depth=0}}
@@ -335,7 +335,7 @@ class {{filename}}: public TestCommand
335335
cluster.Associate({{>device}}, endpoint);
336336
{{/if}}
337337

338-
ListFreer listFreer;
338+
{{#if (chip_tests_item_has_list)}} ListFreer listFreer;{{/if}}
339339
{{#chip_tests_item_parameters}}
340340
{{zapTypeToEncodableClusterObjectType type ns=parent.cluster}} {{asLowerCamelCase name}}Argument;
341341
{{>commandValue ns=parent.cluster container=(concat (asLowerCamelCase name) "Argument") definedValue=definedValue depth=0}}

src/app/zap-templates/common/ClusterTestGeneration.js

+27
Original file line numberDiff line numberDiff line change
@@ -768,11 +768,38 @@ function ensureIsArray(value, options)
768768
}
769769
}
770770

771+
function chip_tests_item_has_list(options)
772+
{
773+
function hasList(args)
774+
{
775+
for (let i = 0; i < args.length; i++) {
776+
if (args[i].isArray) {
777+
return true;
778+
}
779+
780+
if (args[i].isStruct && hasList(args[i].items)) {
781+
return true;
782+
}
783+
}
784+
785+
return false;
786+
}
787+
788+
return assertCommandOrAttributeOrEvent(this).then(item => {
789+
if (this.isWriteAttribute || this.isCommand) {
790+
return hasList(item.arguments);
791+
}
792+
793+
return false;
794+
});
795+
}
796+
771797
//
772798
// Module exports
773799
//
774800
exports.chip_tests = chip_tests;
775801
exports.chip_tests_items = chip_tests_items;
802+
exports.chip_tests_item_has_list = chip_tests_item_has_list;
776803
exports.chip_tests_item_parameters = chip_tests_item_parameters;
777804
exports.chip_tests_item_response_parameters = chip_tests_item_response_parameters;
778805
exports.chip_tests_pics = chip_tests_pics;

0 commit comments

Comments
 (0)