> +static void kunit_run_case_internal(struct kunit *test, > + struct kunit_module *module, > + struct kunit_case *test_case) > +{ > + int ret; > + > + if (module->init) { > + ret = module->init(test); > + if (ret) { > + kunit_err(test, "failed to initialize: %d", ret); > + kunit_set_success(test, false); > + return; > + } > + } > + > + test_case->run_case(test); > +} <-- snip --> > +static bool kunit_run_case(struct kunit *test, > + struct kunit_module *module, > + struct kunit_case *test_case) > +{ > + kunit_set_success(test, true); > + > + kunit_run_case_internal(test, module, test_case); > + kunit_run_case_cleanup(test, module, test_case); > + > + return kunit_get_success(test); > +} So we are running the module->init() for each test case... is that correct? Shouldn't the init run once? Also, typically init calls are pegged with __init so we free them later. You seem to have skipped the init annotations. Why? Luis