]> git.baikalelectronics.ru Git - kernel.git/commit
kunit: bail out of test filtering logic quicker if OOM
authorDaniel Latypov <dlatypov@google.com>
Wed, 11 May 2022 21:16:26 +0000 (14:16 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Thu, 12 May 2022 17:15:08 +0000 (11:15 -0600)
commit424a89e43073e66fb0c0132dda04ef918f2bb1d9
tree0ae4a8dba612237ad7fd5145c896114ccc766a8a
parentec93cc0d7782c682051803612a950f4158a32a4a
kunit: bail out of test filtering logic quicker if OOM

When filtering what tests to run (suites and/or cases) via
kunit.filter_glob (e.g. kunit.py run <glob>), we allocate copies of
suites.

These allocations can fail, and we largely don't handle that.
Note: realistically, this probably doesn't matter much.
We're not allocating much memory and this happens early in boot, so if
we can't do that, then there's likely far bigger problems.

This patch makes us immediately bail out from the top-level function
(kunit_filter_suites) with -ENOMEM if any of the underlying kmalloc()
calls return NULL.

Implementation note: we used to return NULL pointers from some functions
to indicate either that all suites/tests were filtered out or there was
an error allocating the new array.

We'll log a short error in this case and not run any tests or print a
TAP header. From a kunit.py user's perspective, they'll get a message
about missing/invalid TAP output and have to dig into the test.log to
see it. Since hitting this error seems so unlikely, it's probably fine
to not invent a way to plumb this error message more visibly.

See also: https://lore.kernel.org/linux-kselftest/20220329103919.2376818-1-lv.ruyi@zte.com.cn/

Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reported-by: Zeal Robot <zealci@zte.com.cn>
Reported-by: Lv Ruyi <lv.ruyi@zte.com.cn>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
lib/kunit/executor.c
lib/kunit/executor_test.c