-
Notifications
You must be signed in to change notification settings - Fork 3k
utest optimization: Allow case data structure to be put in ROM. #4430
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
Conversation
|
||
const case_failure_handler_t failure_handler; | ||
|
||
// see data member in case_t |
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.
what member? I don't see a member named data.
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.
I should rephrase the comment and makes it more explicit.
This class shall not declare data members.
Data members are declared in case_t
and imported via private inheritance.
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.
Thanks for the clarification!
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.
Thanks for the clarification!
@@ -164,7 +164,10 @@ namespace v1 { | |||
bool is_empty() const; | |||
|
|||
private: | |||
// see data member in case_t | |||
// IMPORTANT: No data members shall be declared inside this class. | |||
// Data members shall be declared in case_t to preserve the layout |
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.
nit: spacing seems off by 1
@sg- I've fixed the indentation of the comment. |
/morph test |
Result: FAILUREYour command has finished executing! Here's what you wrote!
OutputBuild Prep failed! |
@studavekar If I've tracked the build node failure through correctly we have this:
|
One more time /morph test |
@pan- Can you rebase on top of master? to fix jenkins CI. I should have not run morph here, let me try to abort this one |
Result: ABORTEDYour command has finished executing! Here's what you wrote!
|
This patch split the Case class in two entities: Case and case_t. case_t contains the test case data structure while Case provide the interface to the test case. Unlike the class Case, case _t is a POD and can be instantiated at compile time and put in the constant data section (in ROM). The Specification class has also been modified to accept arrays of case_t.
…d in the Case class.
/morph test |
Result: SUCCESSYour command has finished executing! Here's what you wrote!
OutputAll builds and test passed! |
Description
This patch split the Case class in two entities: Case and case_t. case_t contains the test case data structure while Case provide the interface to the test case. Unlike the class Case, case _t is a POD and can be instantiated at compile time and put in the constant data section (in ROM).
The Specification class has also been modified to accept arrays of case_t.
It fixes #4363 and will allow tests with many cases on the most constrained targets.
Status
READY
Migrations
NO