#include <linux/slab.h>
 #include <linux/string.h>
 
+#include "../tools/testing/selftests/kselftest_module.h"
+
 static unsigned total_tests __initdata;
 static unsigned failed_tests __initdata;
 
        }
 }
 
-static int __init test_bitmap_init(void)
+static void __init selftest(void)
 {
        test_zero_clear();
        test_fill_set();
        test_bitmap_arr32();
        test_bitmap_parselist();
        test_mem_optimisations();
-
-       if (failed_tests == 0)
-               pr_info("all %u tests passed\n", total_tests);
-       else
-               pr_warn("failed %u out of %u tests\n",
-                       failed_tests, total_tests);
-
-       return failed_tests ? -EINVAL : 0;
 }
 
-static void __exit test_bitmap_cleanup(void)
-{
-}
-
-module_init(test_bitmap_init);
-module_exit(test_bitmap_cleanup);
-
+KSTM_MODULE_LOADERS(test_bitmap);
 MODULE_AUTHOR("david decotigny <david.decotigny@googlers.com>");
 MODULE_LICENSE("GPL");
 
 #include <linux/gfp.h>
 #include <linux/mm.h>
 
+#include "../tools/testing/selftests/kselftest_module.h"
+
 #define BUF_SIZE 256
 #define PAD_SIZE 16
 #define FILL_CHAR '$'
        flags();
 }
 
-static int __init
-test_printf_init(void)
+static void __init selftest(void)
 {
        alloced_buffer = kmalloc(BUF_SIZE + 2*PAD_SIZE, GFP_KERNEL);
        if (!alloced_buffer)
-               return -ENOMEM;
+               return;
        test_buffer = alloced_buffer + PAD_SIZE;
 
        test_basic();
        test_pointer();
 
        kfree(alloced_buffer);
-
-       if (failed_tests == 0)
-               pr_info("all %u tests passed\n", total_tests);
-       else
-               pr_warn("failed %u out of %u tests\n", failed_tests, total_tests);
-
-       return failed_tests ? -EINVAL : 0;
 }
 
-module_init(test_printf_init);
-
-static void __exit test_printf_exit(void)
-{
-}
-
-module_exit(test_printf_exit);
-
+KSTM_MODULE_LOADERS(test_printf);
 MODULE_AUTHOR("Rasmus Villemoes <linux@rasmusvillemoes.dk>");
 MODULE_LICENSE("GPL");