Linux-kselftest Archive on
 help / color / Atom feed
From: David Gow <>
	David Gow <>
Subject: [PATCH v10 4/5] KASAN: Testing Documentation
Date: Sat,  1 Aug 2020 00:09:23 -0700
Message-ID: <> (raw)
In-Reply-To: <>

From: Patricia Alfonso <>

Include documentation on how to test KASAN using CONFIG_TEST_KASAN_KUNIT

Signed-off-by: Patricia Alfonso <>
Signed-off-by: David Gow <>
Reviewed-by: Andrey Konovalov <>
Reviewed-by: Dmitry Vyukov <>
Acked-by: Brendan Higgins <>
 Documentation/dev-tools/kasan.rst | 70 +++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/Documentation/dev-tools/kasan.rst b/Documentation/dev-tools/kasan.rst
index 38fd5681fade..42991e40cbe1 100644
--- a/Documentation/dev-tools/kasan.rst
+++ b/Documentation/dev-tools/kasan.rst
@@ -281,3 +281,73 @@ unmapped. This will require changes in arch-specific code.
 This allows ``VMAP_STACK`` support on x86, and can simplify support of
 architectures that do not have a fixed module region.
+``CONFIG_KASAN_KUNIT_TEST`` utilizes the KUnit Test Framework for testing.
+This means each test focuses on a small unit of functionality and
+there are a few ways these tests can be run.
+Each test will print the KASAN report if an error is detected and then
+print the number of the test and the status of the test:
+        ok 28 - kmalloc_double_kzfree
+or, if kmalloc failed::
+        # kmalloc_large_oob_right: ASSERTION FAILED at lib/test_kasan.c:163
+        Expected ptr is not null, but is
+        not ok 4 - kmalloc_large_oob_right
+or, if a KASAN report was expected, but not found::
+        # kmalloc_double_kzfree: EXPECTATION FAILED at lib/test_kasan.c:629
+        Expected kasan_data->report_expected == kasan_data->report_found, but
+        kasan_data->report_expected == 1
+        kasan_data->report_found == 0
+        not ok 28 - kmalloc_double_kzfree
+All test statuses are tracked as they run and an overall status will
+be printed at the end::
+        ok 1 - kasan_kunit_test
+        not ok 1 - kasan_kunit_test
+(1) Loadable Module
+With ``CONFIG_KUNIT`` enabled, ``CONFIG_KASAN_KUNIT_TEST`` can be built as
+a loadable module and run on any architecture that supports KASAN
+using something like insmod or modprobe.
+(2) Built-In
+With ``CONFIG_KUNIT`` built-in, ``CONFIG_KASAN_KUNIT_TEST`` can be built-in
+on any architecure that supports KASAN. These and any other KUnit
+tests enabled will run and print the results at boot as a late-init
+(3) Using kunit_tool
+With ``CONFIG_KUNIT`` and ``CONFIG_KASAN_KUNIT_TEST`` built-in, we can also
+use kunit_tool to see the results of these along with other KUnit
+tests in a more readable way. This will not print the KASAN reports
+of tests that passed. Use `KUnit documentation <>`_ for more up-to-date
+information on kunit_tool.
+.. _KUnit:
+``CONFIG_TEST_KASAN_MODULE`` is a set of KASAN tests that could not be
+converted to KUnit. These tests can be run only as a module with
+``CONFIG_TEST_KASAN_MODULE`` built as a loadable module and
+``CONFIG_KASAN`` built-in. The type of error expected and the
+function being run is printed before the expression expected to give
+an error. Then the error is printed, if found, and that test
+should be interpretted to pass only if the error was the one expected
+by the test.

  parent reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-01  7:09 [PATCH v10 0/5] KASAN-KUnit Integration David Gow
2020-08-01  7:09 ` [PATCH v10 1/5] Add KUnit Struct to Current Task David Gow
2020-08-01  7:09 ` [PATCH v10 2/5] KUnit: KASAN Integration David Gow
2020-08-01  7:09 ` [PATCH v10 3/5] KASAN: Port KASAN Tests to KUnit David Gow
2020-08-03 22:58   ` David Gow
2020-08-04 10:15     ` Andrey Konovalov
2020-08-04 23:15       ` David Gow
2020-08-01  7:09 ` David Gow [this message]
2020-08-01  7:09 ` [PATCH v10 5/5] mm: kasan: Do not panic if both panic_on_warn and kasan_multishot set David Gow
2020-08-03 16:25 ` [PATCH v10 0/5] KASAN-KUnit Integration Andrey Konovalov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-kselftest Archive on

Archives are clonable:
	git clone --mirror linux-kselftest/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-kselftest linux-kselftest/ \
	public-inbox-index linux-kselftest

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone