Add _TEST_NO_EXCEPTION macro

This commit is contained in:
augustin64 2023-11-14 17:03:42 +01:00
parent fcd0c34885
commit 430ac2be09
3 changed files with 30 additions and 5 deletions

View File

@ -15,11 +15,20 @@ int execute(string s) {
int main() { int main() {
_TEST_PRESENTATION("Expressions Arithmétiques"); _TEST_PRESENTATION("Expressions Arithmétiques");
_TEST_ASSERT(execute("10 + 3 * (7 - 2);") == 25, "Priorités"); _TEST_ASSERT(
_TEST_NO_EXCEPTION(execute("10 + 3 * (7 - 2);") == 25),
"Priorités"
);
_TEST_ASSERT(execute("12 - 4 - 20;") == -12, "Ordre de soustraction"); _TEST_ASSERT(
_TEST_NO_EXCEPTION(execute("12 - 4 - 20;") == -12),
"Ordre de soustraction"
);
_TEST_ASSERT(execute("-7 + 13 + -6;") == 0, "Opérateurs unaires"); _TEST_ASSERT(
_TEST_NO_EXCEPTION(execute("-7 + 13 + -6;") == 0),
"Opérateurs unaires"
);
return 0; return 0;
} }

View File

@ -19,5 +19,15 @@
} }
#define _TEST_NO_EXCEPTION(expr) \
[&]() -> bool { \
try { \
bool result = (expr); \
return result; \
} catch (...) { \
return false; \
} \
}()
#endif #endif

View File

@ -15,9 +15,15 @@ int execute(string s) {
int main() { int main() {
_TEST_PRESENTATION("Variables"); _TEST_PRESENTATION("Variables");
_TEST_ASSERT(execute("int uneVariableFarfelue__ = 12;") == 12, "Déclaration avec assignement"); _TEST_ASSERT(
_TEST_NO_EXCEPTION(execute("int uneVariableFarfelue__ = 12;") == 12),
"Déclaration avec assignement"
);
_TEST_ASSERT(execute("int x = 5; x + 3;") == 8, "Déclaration puis assignement"); _TEST_ASSERT(
_TEST_NO_EXCEPTION(execute("int x = 5; x = x + 3;") == 8),
"Déclaration puis assignement"
);
return 0; return 0;
} }