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