Patch "kunit: Fix result propagation for parameterised tests" has been added to the 5.13-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    kunit: Fix result propagation for parameterised tests

to the 5.13-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     kunit-fix-result-propagation-for-parameterised-tests.patch
and it can be found in the queue-5.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit d920e3422f459f1410090c9b08e5b76f99036a45
Author: David Gow <davidgow@xxxxxxxxxx>
Date:   Thu Jun 10 20:57:25 2021 -0700

    kunit: Fix result propagation for parameterised tests
    
    [ Upstream commit 384426bd101cb3cd580b18de19d4891ec5ca5bf9 ]
    
    When one parameter of a parameterised test failed, its failure would be
    propagated to the overall test, but not to the suite result (unless it
    was the last parameter).
    
    This is because test_case->success was being reset to the test->success
    result after each parameter was used, so a failing test's result would
    be overwritten by a non-failing result. The overall test result was
    handled in a third variable, test_result, but this was discarded after
    the status line was printed.
    
    Instead, just propagate the result after each parameter run.
    
    Signed-off-by: David Gow <davidgow@xxxxxxxxxx>
    Fixes: fadb08e7c750 ("kunit: Support for Parameterized Testing")
    Reviewed-by: Marco Elver <elver@xxxxxxxxxx>
    Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>
    Signed-off-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/lib/kunit/test.c b/lib/kunit/test.c
index 2f6cc0123232..17973a4a44c2 100644
--- a/lib/kunit/test.c
+++ b/lib/kunit/test.c
@@ -376,7 +376,7 @@ static void kunit_run_case_catch_errors(struct kunit_suite *suite,
 	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)
@@ -388,7 +388,7 @@ 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. */
@@ -398,7 +398,6 @@ int kunit_run_tests(struct kunit_suite *suite)
 
 		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') {
@@ -420,7 +419,7 @@ int kunit_run_tests(struct kunit_suite *suite)
 			}
 		} 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);
 	}



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux