On Mon, May 2, 2022 at 3:23 PM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote: > > The test currently is a bunch of checks (implemented using BUG_ON()) > that can be built into the kernel or as a module. > > Convert it to a KUnit test, which can also run in both modes. > From a user's perspective, this change adds a CONFIG_KUNIT=y dep and > changes the output format of the test [1]. The test itself is the same. > > This hopefully makes the test easier to run and more consistent with > similar tests in lib/. > Since it has no dependencies, it can be run without explicitly setting > up a .kunitconfig via > $ ./tools/testing/kunit/kunit.py run atomic > ... > [13:53:44] Starting KUnit Kernel (1/1)... > [13:53:44] ============================================================ > [13:53:47] =================== atomic (2 subtests) ==================== > [13:53:47] [PASSED] test_atomic > [13:53:47] [PASSED] test_atomic64 > [13:53:47] ===================== [PASSED] atomic ====================== > [13:53:47] ============================================================ > [13:53:47] Testing complete. Passed: 2, Failed: 0, Crashed: 0, Skipped: 0, Errors: 0 > [13:53:47] Elapsed time: 13.902s total, 1.629s configuring, 9.331s building, 2.852s running > > It can be run on ARCH=x86_64 (and others) via: > $ ./tools/testing/kunit/kunit.py run --arch=x86_64 atomic > > The message about which platform the test ran on won't show up in > kunit.py, but still gets printed out in dmesg, e.g. > > TAP version 14 > > 1..1 > > # Subtest: atomic > > 1..2 > > ok 1 - test_atomic > > ok 2 - test_atomic64 > > # atomic: ran on x86-64 platform with CX8 and with SSE > > # atomic: pass:2 fail:0 skip:0 total:2 > > # Totals: pass:2 fail:0 skip:0 total:2 > > ok 1 - atomic > > Signed-off-by: Daniel Latypov <dlatypov@xxxxxxxxxx> I am also not an expert, but it looks good to me. Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>