[code-utils] enhance 'VerifyOrExit' to make action optional (#5659)

This commit uses the newly added macros from `arg_macros.hpp` to
enhance `VerifyOfExit()` enabling `aAction` argument to be optional.
This commit is contained in:
Abtin Keshavarzian
2020-10-16 08:07:16 -07:00
committed by Jonathan Hui
parent 8691e90d55
commit c9c0cf404d
112 changed files with 701 additions and 681 deletions
+50
View File
@@ -116,9 +116,59 @@ void TestMacros(void)
VerifyOrQuit(OT_SECOND_ARG(1, 2) == 2, "OT_SECOND_ARG() failed");
}
void TestVerifyOrExitSuccessNoAction(void)
{
bool reachedEnd = false;
VerifyOrExit(true);
reachedEnd = true;
exit:
VerifyOrQuit(reachedEnd, "VerifyOrExit() failed");
}
void TestVerifyOrExitFailureNoAction(void)
{
bool reachedEnd = false;
VerifyOrExit(false);
reachedEnd = true;
exit:
VerifyOrQuit(!reachedEnd, "VerifyOrExit() failed");
}
void TestVerifyOrExitSuccessWithAction(void)
{
bool didAction = false;
bool reachedEnd = false;
VerifyOrExit(true, didAction = true);
reachedEnd = true;
exit:
VerifyOrQuit(reachedEnd && !didAction, "VerifyOrExit() failed");
}
void TestVerifyOrExitFailureWithAction(void)
{
bool didAction = false;
bool reachedEnd = false;
VerifyOrExit(false, didAction = true);
reachedEnd = true;
exit:
VerifyOrQuit(!reachedEnd && didAction, "VerifyOrExit() failed");
}
int main(void)
{
TestMacros();
TestVerifyOrExitSuccessNoAction();
TestVerifyOrExitFailureNoAction();
TestVerifyOrExitSuccessWithAction();
TestVerifyOrExitFailureWithAction();
printf("All tests passed\n");
return 0;
}