DragonFly On-Line Manual Pages
TBRIDGE(9) DragonFly Kernel Developer's Manual TBRIDGE(9)
NAME
tbridge_printf, tbridge_test_done, TBRIDGE_TESTCASE_MODULE -- kernel test
bridge for dfregress
SYNOPSIS
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/module.h>
#include <sys/tbridge.h>
Functions:
int
tbridge_printf(const char *fmt, ...);
void
tbridge_test_done(int result);
Macros:
TBRIDGE_TESTCASE_MODULE(name, struct tbridge_testcase *testcase);
Defines: RESULT_TIMEOUT, RESULT_SIGNALLED, RESULT_NOTRUN, RESULT_FAIL,
RESULT_PASS, RESULT_UNKNOWN
Callbacks:
typedef int
(*tbridge_abort_t)(void);
typedef void
(*tbridge_run_t)(void *);
DESCRIPTION
To create a new kernel testcase `testfoo' the following is required:
TBRIDGE_TESTCASE_MODULE(testfoo, &testfoo_case);
struct tbridge_testcase testfoo_case = {
.tb_run = testfoo_run,
/* The following are optional */
.tb_abort = testfoo_abort
};
The tb_run callback is called from a separate kernel thread to start
testcase execution.
The tb_abort callback is optional, but highly recommended. It is called
whenever a testcase execution times out, so that the testcase can clean
up and abort all running tasks, if possible. If this is not applicable
to your test because it is impossible to interrupt, set to NULL.
FUNCTIONS
The TBRIDGE_TESTCASE_MODULE() macro declares a tbridge_printf testcase
kernel module. testcase is a structure of type struct tbridge_testcase,
as described above.
The tbridge_printf() function acts as a kprintf replacement that will log
all the output into the testcase metadata that is passed back to userland
upon completion. Its syntax is equivalent to that of kprintf(9).
The tbridge_test_done() function should be called whenever a result for
the testcase is available. The parameter result should be set to one of
the RESULT_ defines.
SEE ALSO
dfregress(8)
HISTORY
The tbridge_printf module first appeared in DragonFly 2.13.
AUTHORS
The tbridge_printf module was written by Alex Hornung.
DragonFly 3.7 November 18, 2011 DragonFly 3.7