cute optional macros for the main function of a test
This commit is contained in:
parent
c6280ddf85
commit
88d3836926
|
@ -9,8 +9,7 @@ void example_groups();
|
|||
void example_parameterized();
|
||||
void example_skip();
|
||||
|
||||
|
||||
int main(int argc, char ** argv) {
|
||||
XTEST_MAIN({
|
||||
xtest_run_group(example_assertions);
|
||||
xtest_run_group(example_expect_assertions);
|
||||
xtest_run_group(example_fail);
|
||||
|
@ -18,5 +17,4 @@ int main(int argc, char ** argv) {
|
|||
xtest_run_group(example_groups);
|
||||
xtest_run_group(example_parameterized);
|
||||
xtest_run_group(example_skip);
|
||||
return xtest_complete();
|
||||
}
|
||||
})
|
||||
|
|
|
@ -99,8 +99,5 @@ void example_assertions() {
|
|||
}
|
||||
|
||||
#ifndef XTEST_ALL_EXAMPLES
|
||||
int main(int argc, char **argv) {
|
||||
example_assertions();
|
||||
return xtest_complete();
|
||||
}
|
||||
#endif
|
||||
XTEST_RUN_MAIN(example_assertions)
|
||||
#endif //XTEST_ALL_EXAMPLES
|
||||
|
|
|
@ -39,8 +39,5 @@ void example_expect_assertions() {
|
|||
}
|
||||
|
||||
#ifndef XTEST_ALL_EXAMPLES
|
||||
int main(int argc, char **argv) {
|
||||
example_expect_assertions();
|
||||
return xtest_complete();
|
||||
}
|
||||
XTEST_RUN_MAIN(example_expect_assertions)
|
||||
#endif
|
|
@ -181,8 +181,5 @@ void example_fail() {
|
|||
}
|
||||
|
||||
#ifndef XTEST_ALL_EXAMPLES
|
||||
int main(int argc, char **argv) {
|
||||
example_fail();
|
||||
return xtest_complete();
|
||||
}
|
||||
XTEST_RUN_MAIN(example_fail)
|
||||
#endif
|
|
@ -39,8 +39,5 @@ void example_float() {
|
|||
}
|
||||
|
||||
#ifndef XTEST_ALL_EXAMPLES
|
||||
int main(int argc, char **argv) {
|
||||
example_float();
|
||||
return xtest_complete();
|
||||
}
|
||||
XTEST_RUN_MAIN(example_float)
|
||||
#endif
|
|
@ -96,8 +96,5 @@ void example_groups() {
|
|||
}
|
||||
|
||||
#ifndef XTEST_ALL_EXAMPLES
|
||||
int main(int argc, char **argv) {
|
||||
example_groups();
|
||||
return xtest_complete();
|
||||
}
|
||||
XTEST_RUN_MAIN(example_groups)
|
||||
#endif
|
|
@ -79,8 +79,5 @@ void example_parameterized() {
|
|||
}
|
||||
|
||||
#ifndef XTEST_ALL_EXAMPLES
|
||||
int main(int argc, char **argv) {
|
||||
example_parameterized();
|
||||
return xtest_complete();
|
||||
}
|
||||
XTEST_RUN_MAIN(example_parameterized)
|
||||
#endif
|
|
@ -54,8 +54,5 @@ void example_skip() {
|
|||
}
|
||||
|
||||
#ifndef XTEST_ALL_EXAMPLES
|
||||
int main(int argc, char **argv) {
|
||||
example_skip();
|
||||
return xtest_complete();
|
||||
}
|
||||
XTEST_RUN_MAIN(example_skip)
|
||||
#endif
|
7
xtest.c
7
xtest.c
|
@ -1,5 +1,4 @@
|
|||
#include <setjmp.h>
|
||||
#include <math.h>
|
||||
|
||||
#define XTEST_SOURCE
|
||||
|
||||
|
@ -276,8 +275,10 @@ void
|
|||
xtest_assert_float(double expected, double actual, int precision, int invert, const char *expression, const char *file,
|
||||
int line) {
|
||||
|
||||
double epsilon = pow(10, -(precision));
|
||||
double diff = fabs(expected - actual);
|
||||
double epsilon = 1.0;
|
||||
for (int i = 0; i < precision; ++i) epsilon /= 10.0;
|
||||
double diff = expected - actual;
|
||||
if (diff < 0) diff = -diff;
|
||||
int equals = diff < epsilon;
|
||||
int failed = invert == equals; // invert = true: fail if equals, invert = false: fail if not equals
|
||||
if (!failed) return;
|
||||
|
|
11
xtest.h
11
xtest.h
|
@ -130,4 +130,15 @@ int xtest_complete();
|
|||
#define xtest_assert_mem_is_not(actual, expected, len) xtest_assert_(memcmp(actual, expected, len) != 0, #actual " is not " #expected " (" #len " bytes)", NULL, NULL, 1)
|
||||
|
||||
|
||||
#define XTEST_RUN_MAIN(fn) int main(int argc, char ** argv) { \
|
||||
fn(); \
|
||||
return xtest_complete(); \
|
||||
}
|
||||
|
||||
|
||||
#define XTEST_MAIN(block) int main(int argc, char ** argv) { \
|
||||
block \
|
||||
return xtest_complete(); \
|
||||
}
|
||||
|
||||
#endif //XTEST_XTEST_H
|
||||
|
|
Loading…
Reference in a new issue