context.test_case = test_case;
        kunit_try_catch_run(try_catch, &context);
 
-       test_case->success = test->success;
+       test_case->success &= test->success;
 }
 
 int kunit_run_tests(struct kunit_suite *suite)
 
        kunit_suite_for_each_test_case(suite, test_case) {
                struct kunit test = { .param_value = NULL, .param_index = 0 };
-               bool test_success = true;
+               test_case->success = true;
 
                if (test_case->generate_params) {
                        /* Get initial param. */
 
                do {
                        kunit_run_case_catch_errors(suite, test_case, &test);
-                       test_success &= test_case->success;
 
                        if (test_case->generate_params) {
                                if (param_desc[0] == '\0') {
                        }
                } while (test.param_value);
 
-               kunit_print_ok_not_ok(&test, true, test_success,
+               kunit_print_ok_not_ok(&test, true, test_case->success,
                                      kunit_test_case_num(suite, test_case),
                                      test_case->name);
        }