diff --git a/README.md b/README.md new file mode 100644 index 0000000..ea32d74 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +# KUnity + +KUnity configure the c unit test framework Unity (http://www.throwtheswitch.org/unity) for running the test cases in kernel space. Testoutputs will be "shown"" by printk + +## Add KUnity to a kernel module + +```Makefile + +# add KUnity and Unity source files +module-objs += lib/KUnity/src/kunity.o +module-objs += lib/KUnity/lib/Unity/src/unity.o + +# include KUnity and Unity header +ccflags-y += -I/KUnity/src +ccflags-y += -I/KUnity/lib/Unity/src + +# set the unity config by header file flag, which is provided by KUnity +ccflags-y += -DUNITY_INCLUDE_CONFIG_H +``` + +## Write and Running test cases + +mainly in the same kind like desripted here KUnity and Unity header, but the test functions have to use the ```KUNITY_TEST``` makro. + +When a kunityy test should run, its nessarrry to add the prefix ```kunity_test_``` to the test function name + +```c +#include +// ... application includes +KUNITY_TEST(first_simple_test) +{ + TEST_ASSERT_EQUAL(1, 0); +} + +// ... more tests + +int module_init(void) { + int result = 0; + UNITY_BEGIN(); + RUN_TEST(kunity_test_first_simple_test); + // ... call the other tests + result = UNITY_END(); + if ( < 1) { + // all tests was successful, startup module + // ... + } + + return -result; +} + +``` +For test runnig it can also use the kunity_test_runner_module