-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[YAML] Update the tests to use ReadClient/WriteClient/CommandSender directly instead of Invoke #17628
[YAML] Update the tests to use ReadClient/WriteClient/CommandSender directly instead of Invoke #17628
Conversation
PR #17628: Size comparison from 6109d14 to 707890f Increases above 0.2%:
Increases (1 build for linux)
Decreases (1 build for linux)
Full report (23 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
src/app/tests/suites/commands/interaction_model/InteractionModel.cpp
Outdated
Show resolved
Hide resolved
src/app/tests/suites/commands/interaction_model/InteractionModel.cpp
Outdated
Show resolved
Hide resolved
src/app/tests/suites/commands/interaction_model/InteractionModel.cpp
Outdated
Show resolved
Hide resolved
707890f
to
40876a1
Compare
PR #17628: Size comparison from 077e44e to 40876a1 Increases above 0.2%:
Increases (1 build for linux)
Decreases (1 build for linux)
Full report (23 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
40876a1
to
9985581
Compare
PR #17628: Size comparison from cb6843f to 9985581 Increases above 0.2%:
Increases (1 build for linux)
Decreases (1 build for linux)
Full report (21 builds for cc13x2_26x2, cyw30739, efr32, k32w, linux, mbed, nrfconnect, p6, telink)
|
9985581
to
519b559
Compare
PR #17628: Size comparison from c1cbfb0 to 519b559 Increases above 0.2%:
Increases (1 build for linux)
Decreases (1 build for linux)
Full report (16 builds for cyw30739, efr32, k32w, linux, mbed, nrfconnect, p6, telink)
|
519b559
to
1633781
Compare
PR #17628: Size comparison from 252314f to 1633781 Increases above 0.2%:
Increases (3 builds for linux)
Decreases (2 builds for linux)
Full report (32 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
…ual command to be called can be generated directly
1633781
to
517f20e
Compare
PR #17628: Size comparison from 7148111 to 517f20e Increases above 0.2%:
Increases (3 builds for linux)
Decreases (2 builds for linux)
Full report (32 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
fast-tracking test changes that have been up for a while. |
…irectly instead of Invoke (project-chip#17628) * [YAML] Add an interaction model module to src/app/tests/suites * [YAML] Get the interaction model module to be built along chip-tool * Update the commandName field in ClusterTestGeneration so that the actual command to be called can be generated directly * Update template to use the interaction model module instead of Invoke * Update generated code
The actual error message got lost in project-chip#17628.
The actual error message got lost in project-chip#17628.
The actual error message got lost in project-chip#17628.
The actual error message got lost in project-chip#17628.
The actual error message got lost in #17628.
Problem
The YAML generated code uses Invoke which makes it hard to extend the framework to supports things such as events or wildcards that may generates multiple responses.
Furthermore,using the Invoke API has a cost at generation time and at build time.
The former because we generate a lot of specific code. On my machine it takes ~100 seconds to generate the YAML tests while with this PR is takes "only" 30 seconds. This is the root cause for some of the node memory issues that has popped up recently.
The latter because "Invoke" is relying heavily on cpp template and std::function which has a build time/link time cost. This PR relies a less on that which should makes it easier to build on stuff like a RPI and which is also must faster.
Change overview
src/app/tests/suites/commands/interaction_model
examples/chip-tool/templates/tests/
so they make use of this moduleTesting
I have tested it locally by running the whole test suite. The only thing that is failing on my Mac is
TestGroupMessaging
which is not activated by default on Mac. I tried to makes it based on the current code that exists inchip-tool
for groups though - so I will see if CI is happy with it.