Files
David Cermak 3ec12c3be0 test: Make test application scalable
also fixes github CI and makes the linger stress test run multiple times
2024-10-23 10:56:22 +02:00

50 lines
1.1 KiB
C

#include "lwip_check.h"
#include "api/test_sockets.h"
#include "lwip/init.h"
#include "lwip/tcpip.h"
Suite* create_suite(const char* name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown)
{
size_t i;
Suite *s = suite_create(name);
for(i = 0; i < num_tests; i++) {
TCase *tc_core = tcase_create(name);
if ((setup != NULL) || (teardown != NULL)) {
tcase_add_checked_fixture(tc_core, setup, teardown);
}
tcase_add_named_test(tc_core, tests[i]);
suite_add_tcase(s, tc_core);
}
return s;
}
int main(void)
{
int number_failed;
SRunner *sr;
size_t i;
suite_getter_fn* suites[] = {
sockets_suite,
};
size_t num = sizeof(suites)/sizeof(void*);
LWIP_ASSERT("No suites defined", num > 0);
tcpip_init(NULL, NULL);
sr = srunner_create((suites[0])());
srunner_set_xml(sr, "lwip_test_apps.xml");
for(i = 1; i < num; i++) {
srunner_add_suite(sr, ((suite_getter_fn*)suites[i])());
}
srunner_set_fork_status(sr, CK_NOFORK);
srunner_run_all(sr, CK_NORMAL);
number_failed = srunner_ntests_failed(sr);
srunner_free(sr);
return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
}