test.c: Fix counting of tests and add 2 new tests
The unit test XML output was counting all registered tests as "run" even when only a subset were actually requested to be run and the "failures" attribute was missing. * The "tests" attribute of the "testsuite" element in the output XML now reflects only the tests actually requested to be executed instead of all the tests registered. * The "failures" attribute was added to the "testsuite" element. Also added 2 new unit tests that just pass and fail to be used for CI testing. Change-Id: Ia137814b5aeb0e1a44c75034bd3615c26021da69
This commit is contained in:
parent
df554a447c
commit
a0fd95ef52
|
@ -0,0 +1,11 @@
|
||||||
|
Subject: test.c
|
||||||
|
|
||||||
|
The "tests" attribute of the "testsuite" element in the
|
||||||
|
output XML now reflects only the tests actually requested
|
||||||
|
to be executed instead of all the tests registered.
|
||||||
|
|
||||||
|
The "failures" attribute was added to the "testsuite"
|
||||||
|
element.
|
||||||
|
|
||||||
|
Also added two new unit tests that just pass and fail
|
||||||
|
to be used for testing CI itself.
|
|
@ -715,8 +715,8 @@ static int test_execute_multiple(const char *name, const char *category, struct
|
||||||
/* update total counts as well during this iteration
|
/* update total counts as well during this iteration
|
||||||
* even if the current test did not execute this time */
|
* even if the current test did not execute this time */
|
||||||
last_results.total_time += test->time;
|
last_results.total_time += test->time;
|
||||||
last_results.total_tests++;
|
|
||||||
if (test->state != AST_TEST_NOT_RUN) {
|
if (test->state != AST_TEST_NOT_RUN) {
|
||||||
|
last_results.total_tests++;
|
||||||
if (test->state == AST_TEST_PASS) {
|
if (test->state == AST_TEST_PASS) {
|
||||||
last_results.total_passed++;
|
last_results.total_passed++;
|
||||||
} else {
|
} else {
|
||||||
|
@ -793,10 +793,10 @@ static int test_generate_results(const char *name, const char *category, const c
|
||||||
*/
|
*/
|
||||||
fprintf(f_xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
fprintf(f_xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
|
||||||
fprintf(f_xml, "<testsuites>\n");
|
fprintf(f_xml, "<testsuites>\n");
|
||||||
fprintf(f_xml, "\t<testsuite errors=\"0\" time=\"%u.%u\" tests=\"%u\" "
|
fprintf(f_xml, "\t<testsuite errors=\"0\" time=\"%u.%u\" tests=\"%u\" failures=\"%u\" "
|
||||||
"name=\"AsteriskUnitTests\">\n",
|
"name=\"AsteriskUnitTests\">\n",
|
||||||
last_results.total_time / 1000, last_results.total_time % 1000,
|
last_results.total_time / 1000, last_results.total_time % 1000,
|
||||||
last_results.total_tests);
|
last_results.total_tests, last_results.total_failed);
|
||||||
fprintf(f_xml, "\t\t<properties>\n");
|
fprintf(f_xml, "\t\t<properties>\n");
|
||||||
fprintf(f_xml, "\t\t\t<property name=\"version\" value=\"%s\"/>\n", ast_get_version());
|
fprintf(f_xml, "\t\t\t<property name=\"version\" value=\"%s\"/>\n", ast_get_version());
|
||||||
fprintf(f_xml, "\t\t</properties>\n");
|
fprintf(f_xml, "\t\t</properties>\n");
|
||||||
|
|
|
@ -383,8 +383,48 @@ AST_TEST_DEFINE(call_backtrace)
|
||||||
return AST_TEST_PASS;
|
return AST_TEST_PASS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AST_TEST_DEFINE(just_fail)
|
||||||
|
{
|
||||||
|
switch (cmd) {
|
||||||
|
case TEST_INIT:
|
||||||
|
info->name = "JUST_FAIL";
|
||||||
|
info->category = "/TEST_PASS_FAIL/";
|
||||||
|
info->summary = "Just fails";
|
||||||
|
info->description = "Just fails. "
|
||||||
|
"This test is mainly used for testing CI and tool failure scenarios.";
|
||||||
|
info->explicit_only = 1;
|
||||||
|
return AST_TEST_NOT_RUN;
|
||||||
|
case TEST_EXECUTE:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ast_test_status_update(test, "This test just forces a fail\n");
|
||||||
|
|
||||||
|
return AST_TEST_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
AST_TEST_DEFINE(just_pass)
|
||||||
|
{
|
||||||
|
switch (cmd) {
|
||||||
|
case TEST_INIT:
|
||||||
|
info->name = "JUST_PASS";
|
||||||
|
info->category = "/TEST_PASS_FAIL/";
|
||||||
|
info->summary = "Just passes";
|
||||||
|
info->description = "Just passes. "
|
||||||
|
"This test is mainly used for testing CI and tool failure scenarios.";
|
||||||
|
info->explicit_only = 1;
|
||||||
|
return AST_TEST_NOT_RUN;
|
||||||
|
case TEST_EXECUTE:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ast_test_status_update(test, "This test just forces a pass\n");
|
||||||
|
|
||||||
|
return AST_TEST_PASS;
|
||||||
|
}
|
||||||
|
|
||||||
static int unload_module(void)
|
static int unload_module(void)
|
||||||
{
|
{
|
||||||
|
AST_TEST_UNREGISTER(just_pass);
|
||||||
|
AST_TEST_UNREGISTER(just_fail);
|
||||||
AST_TEST_UNREGISTER(call_backtrace);
|
AST_TEST_UNREGISTER(call_backtrace);
|
||||||
AST_TEST_UNREGISTER(call_assert);
|
AST_TEST_UNREGISTER(call_assert);
|
||||||
AST_TEST_UNREGISTER(segv);
|
AST_TEST_UNREGISTER(segv);
|
||||||
|
@ -398,6 +438,8 @@ static int load_module(void)
|
||||||
AST_TEST_REGISTER(segv);
|
AST_TEST_REGISTER(segv);
|
||||||
AST_TEST_REGISTER(call_assert);
|
AST_TEST_REGISTER(call_assert);
|
||||||
AST_TEST_REGISTER(call_backtrace);
|
AST_TEST_REGISTER(call_backtrace);
|
||||||
|
AST_TEST_REGISTER(just_fail);
|
||||||
|
AST_TEST_REGISTER(just_pass);
|
||||||
return AST_MODULE_LOAD_SUCCESS;
|
return AST_MODULE_LOAD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue