-
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
Inject event management into report engine #36831
base: master
Are you sure you want to change the base?
Conversation
PR #36831: Size comparison from c55e3ab to f44a7a4 Full report (15 builds for bl602, bl702, bl702l, cc32xx, nrfconnect, qpg, stm32, tizen)
|
PR #36831: Size comparison from c55e3ab to d14ef63 Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
PR #36831: Size comparison from c55e3ab to 1851566 Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yyzhong-g at a recent SWTT standup we decided to try once again for stricter "require tests".
Could you please add a "testing" section to describe how this were tested and since I see no unit tests updated or added as part of this PR to explain why this is ok. If manual testing, explain why this cannot be covered by automated tests (there should be a hight bar for saying "manually tested" because otherwise it is a simple escape hatch of saying "tested manually" on every PR).
Added a testing section in the description. Existing unit tests have coverages. |
PR #36831: Size comparison from c55e3ab to 8809618 Full report (69 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, cyw30739, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
|
This PR is to decouple EventManagement with IMEngine singleton.
Inject EventManagement into ReportingEngine so it doesn't look for the global instance.
Creates EventScheduler interface (which is implemented by reporting engine) and inject into EventManagement to schedule events.
Created the EventScheduler to avoid both classes depends on each others. Also both classes are injected during Init call and takes the global one if not provided.
This is beneficial and allow us to have in-process testing (e.g. one client and one server running in parallel as different IM engines).
testing: Code changes are tested by existed unit tests, the tests verify that event are generated.