unit-tests: Pass test iteration to fixtures
This commit is contained in:
@@ -215,7 +215,7 @@ static bool run_test(test_function_t *tfun, int i)
|
|||||||
/**
|
/**
|
||||||
* Invoke fixture setup/teardown
|
* Invoke fixture setup/teardown
|
||||||
*/
|
*/
|
||||||
static bool call_fixture(test_case_t *tcase, bool up)
|
static bool call_fixture(test_case_t *tcase, bool up, int i)
|
||||||
{
|
{
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
test_fixture_t *fixture;
|
test_fixture_t *fixture;
|
||||||
@@ -230,14 +230,14 @@ static bool call_fixture(test_case_t *tcase, bool up)
|
|||||||
{
|
{
|
||||||
if (fixture->setup)
|
if (fixture->setup)
|
||||||
{
|
{
|
||||||
fixture->setup();
|
fixture->setup(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (fixture->teardown)
|
if (fixture->teardown)
|
||||||
{
|
{
|
||||||
fixture->teardown();
|
fixture->teardown(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -519,18 +519,18 @@ static bool run_case(test_case_t *tcase, test_runner_init_t init, char *cfg)
|
|||||||
test_setup_timeout(tcase->timeout);
|
test_setup_timeout(tcase->timeout);
|
||||||
start_timing(&start);
|
start_timing(&start);
|
||||||
|
|
||||||
if (call_fixture(tcase, TRUE))
|
if (call_fixture(tcase, TRUE, i))
|
||||||
{
|
{
|
||||||
if (run_test(tfun, i))
|
if (run_test(tfun, i))
|
||||||
{
|
{
|
||||||
if (call_fixture(tcase, FALSE))
|
if (call_fixture(tcase, FALSE, i))
|
||||||
{
|
{
|
||||||
ok = TRUE;
|
ok = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
call_fixture(tcase, FALSE);
|
call_fixture(tcase, FALSE, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!post_test(init, ok, failures, tfun->name, i, &leaks))
|
if (!post_test(init, ok, failures, tfun->name, i, &leaks))
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ typedef void (*test_function_cb_t)(int);
|
|||||||
/**
|
/**
|
||||||
* Fixture for a test case.
|
* Fixture for a test case.
|
||||||
*/
|
*/
|
||||||
typedef void (*test_fixture_cb_t)(void);
|
typedef void (*test_fixture_cb_t)(int);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A test suite; a collection of test cases with fixtures
|
* A test suite; a collection of test cases with fixtures
|
||||||
@@ -388,9 +388,9 @@ void test_fail_if_worker_failed();
|
|||||||
#define suite_add_tcase test_suite_add_case
|
#define suite_add_tcase test_suite_add_case
|
||||||
#define START_TEST(name) static void name (int _i) {
|
#define START_TEST(name) static void name (int _i) {
|
||||||
#define END_TEST test_fail_if_worker_failed(); }
|
#define END_TEST test_fail_if_worker_failed(); }
|
||||||
#define START_SETUP(name) static void name() {
|
#define START_SETUP(name) static void name(int _i) {
|
||||||
#define END_SETUP test_fail_if_worker_failed(); }
|
#define END_SETUP test_fail_if_worker_failed(); }
|
||||||
#define START_TEARDOWN(name) static void name() {
|
#define START_TEARDOWN(name) static void name(int _i) {
|
||||||
#define END_TEARDOWN test_fail_if_worker_failed(); }
|
#define END_TEARDOWN test_fail_if_worker_failed(); }
|
||||||
|
|
||||||
#endif /** TEST_SUITE_H_ @}*/
|
#endif /** TEST_SUITE_H_ @}*/
|
||||||
|
|||||||
Reference in New Issue
Block a user