Linux-kselftest Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v1 0/7] kunit: create a centralized executor to dispatch all KUnit tests
@ 2020-01-28  7:19 Brendan Higgins
  2020-01-28  7:19 ` [PATCH v1 1/7] vmlinux.lds.h: add linker section for KUnit test suites Brendan Higgins
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Brendan Higgins @ 2020-01-28  7:19 UTC (permalink / raw)
  To: jdike, richard, anton.ivanov, arnd, keescook, skhan,
	alan.maguire, yzaikin, davidgow, akpm, rppt, frowand.list
  Cc: gregkh, sboyd, logang, mcgrof, knut.omang, linux-um, linux-arch,
	linux-kselftest, kunit-dev, linux-kernel, linux-doc,
	Brendan Higgins

## TL;DR

This patchset adds a centralized executor to dispatch tests rather than
relying on late_initcall to schedule each test suite separately along
with a couple of new features that depend on it.

## What am I trying to do?

Conceptually, I am trying to provide a mechanism by which test suites
can be grouped together so that they can be reasoned about collectively.
The last two of three patches in this series add features which depend
on this:

PATCH 5/7 Prints out a test plan right before KUnit tests are run[1];
          this is valuable because it makes it possible for a test
          harness to detect whether the number of tests run matches the
          number of tests expected to be run, ensuring that no tests
          silently failed.

PATCH 6/7 Add a new kernel command-line option which allows the user to
          specify that the kernel poweroff, halt, or reboot after
          completing all KUnit tests; this is very handy for running
          KUnit tests on UML or a VM so that the UML/VM process exits
          cleanly immediately after running all tests without needing a
          special initramfs.

In addition, by dispatching tests from a single location, we can
guarantee that all KUnit tests run after late_init is complete, which
was a concern during the initial KUnit patchset review (this has not
been a problem in practice, but resolving with certainty is nevertheless
desirable).

Other use cases for this exist, but the above features should provide an
idea of the value that this could provide.

Alan Maguire (1):
  kunit: test: create a single centralized executor for all tests

Brendan Higgins (5):
  vmlinux.lds.h: add linker section for KUnit test suites
  arch: um: add linker section for KUnit test suites
  init: main: add KUnit to kernel init
  kunit: test: add test plan to KUnit TAP format
  Documentation: Add kunit_shutdown to kernel-parameters.txt

David Gow (1):
  kunit: Add 'kunit_shutdown' option

 .../admin-guide/kernel-parameters.txt         |  7 ++
 arch/um/include/asm/common.lds.S              |  4 +
 include/asm-generic/vmlinux.lds.h             |  8 ++
 include/kunit/test.h                          | 82 ++++++++++++-------
 init/main.c                                   |  4 +
 lib/kunit/Makefile                            |  3 +-
 lib/kunit/executor.c                          | 71 ++++++++++++++++
 lib/kunit/test.c                              | 11 ---
 tools/testing/kunit/kunit_kernel.py           |  2 +-
 tools/testing/kunit/kunit_parser.py           | 76 ++++++++++++++---
 .../test_is_test_passed-all_passed.log        |  1 +
 .../test_data/test_is_test_passed-crash.log   |  1 +
 .../test_data/test_is_test_passed-failure.log |  1 +
 13 files changed, 217 insertions(+), 54 deletions(-)
 create mode 100644 lib/kunit/executor.c

-- 
2.25.0.341.g760bfbb309-goog


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, back to index

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-28  7:19 [PATCH v1 0/7] kunit: create a centralized executor to dispatch all KUnit tests Brendan Higgins
2020-01-28  7:19 ` [PATCH v1 1/7] vmlinux.lds.h: add linker section for KUnit test suites Brendan Higgins
2020-01-28  7:19 ` [PATCH v1 2/7] arch: um: " Brendan Higgins
2020-01-28  7:19 ` [PATCH v1 3/7] kunit: test: create a single centralized executor for all tests Brendan Higgins
2020-01-29  6:38   ` Stephen Boyd
2020-01-28  7:19 ` [PATCH v1 4/7] init: main: add KUnit to kernel init Brendan Higgins
2020-01-29  6:38   ` Stephen Boyd
2020-01-30 22:50     ` Brendan Higgins
2020-01-28  7:20 ` [PATCH v1 5/7] kunit: test: add test plan to KUnit TAP format Brendan Higgins
2020-01-28  7:20 ` [PATCH v1 6/7] kunit: Add 'kunit_shutdown' option Brendan Higgins
2020-01-29  6:33   ` Stephen Boyd
2020-01-30 22:56     ` Brendan Higgins
2020-01-28  7:20 ` [PATCH v1 7/7] Documentation: Add kunit_shutdown to kernel-parameters.txt Brendan Higgins
2020-01-29  6:27   ` Stephen Boyd
2020-01-30 23:04     ` Brendan Higgins

Linux-kselftest Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-kselftest/0 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/ https://lore.kernel.org/linux-kselftest \
		linux-kselftest@vger.kernel.org
	public-inbox-index linux-kselftest

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kselftest


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git