-
Notifications
You must be signed in to change notification settings - Fork 55
More tests #334
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
More tests #334
Conversation
PR #334: Size comparison from d8463db to c2cbbf8 Increases above 0.2%:
Full report (8 builds for dimmable-light, onoff-light, onoff-light-bt, rs-matter-core, speaker)
|
…y everywhere from pase session to commissioning window
PR #334: Size comparison from e14f27a to 383637b Increases above 0.2%:
Full report (8 builds for dimmable-light, onoff-light, onoff-light-bt, rs-matter-core, speaker)
|
Also see #335 |
The code size is increased (by 2.5% in the worst case for thumbv6m) because the 3rd commit introduces new functionality (configuring extra mDNS parameters) and also the 4th commit introduces new functionality (option to timeout the Commissioning Window). |
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.
LGTM
PR #334: Size comparison from e14f27a to bd9c3e2 Increases above 0.2%:
Full report (8 builds for dimmable-light, onoff-light, onoff-light-bt, rs-matter-core, speaker)
|
This PR contains the following commits:
1st commit
Simply enables the 7 tests below. Did not require any changes to
rs-matter
2nd commit
Enables the
TestDiscovery
test.For this test, it was necessary to implement all optional mDNS payload:
While I could've just disabled the tests for the optional payload in the
chip_tests.pics
file, I thought it would be good to support this payload in general, for end users. The payload is now configurable through theBasicInfo
structure.3rd commit
This is a follow-up to the 2nd commit, which was not strictly necessary but I did it anyway. It documents as well as does a cleanup on the
pairing
module, which is all about computing the commissioning QR code.Some of the problems addressed with this commit:
Qr
orQrPayload
)QrTextPayload
renamed to justQrPayload
. The purpose in life ofQrPayload
is to compute the QR textQr
which is the final outcome of the QR computation; it takes (a) text and encodes it into a QR; all utility functions to consume the QR code as ASCII-art are now moved into this type and this type is independent fromQrPayload
in that while it is expected that it will be used to render precisely the text produced byQrPayload
, that might not be necessarily the case4th commit
This commit introduces a real expiration of the Commissioning Window. Previously, the timeout parameter was not really used and therefore, the commissioning window stayed open until explicitly closed, or in case commissioning did fail - forever.
Furthermore, I've tried to document and tighten up a bit the code in the
case
andpake
modules.While I doubt this would be the latest cleanup in these modules (the contain one of the oldest piece of code in the codebase), it is now in a slightly better shape, in that a lot of freestanding functions are moved to their appropriate structures, and some structures like
Spake2p
andCaseSession
are more private in that the SC layer doesn't need to know about those. It only needs to know aboutPake
andCase
which handle the establishment of a PASE or CASE session, andSpake2p
andCaseSession
are actually their internal implementation detail.But the most important renaming change is that what used to be called "PASE session" is now called "Commissioning Window" everywhere, because really that's what it is.
The notion of a PASE session is anyway overloaded with two additional meanings so also calling the Commissioning Window a "PASE session" was wrong IMO:
Session
which was created as a result of a PASE/PAKE session negotiation/establishment. (Ditto - a CASE session might mean aSession
which was created as a result of a CASE session negotiation/establishment.)Session
using the PAKE negotiation process. Though I've taken care to always talk there about a PASE session establishment, as in the Matter Core Spec