From: Brendan Higgins <brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
To: frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
jpoimboe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
keescook-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
kieran.bingham-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org,
mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
sboyd-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
shuah-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
tytso-3s7WtUTddSA@public.gmane.org,
yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org
Cc: pmladek-IBi9RG/b67k@public.gmane.org,
linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
amir73il-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
Brendan Higgins
<brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
Alexander.Levin-0li6OtcxBFHby3iVrkZq2A@public.gmane.org,
linux-kselftest-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org,
khilman-rdvid1DuHRBWk0Htik3J/w@public.gmane.org,
knut.omang-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
wfg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
joel-U3u1mxZcP9KHXe+LvDLADg@public.gmane.org,
rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
jdike-OPE4K8JWMJJBDgjK7y7TUQ@public.gmane.org,
dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kbuild-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Tim.Bird-7U/KSKJipcs@public.gmane.org,
linux-um-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org,
julia.lawall-L2FTfq7BK8M@public.gmane.org,
kunit-dev-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
richard-/L3Ra7n9ekc@public.gmane.org,
rdunlap-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
daniel-/w4YWyX8dFk@public.gmane.org,
mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH v12 14/18] kunit: defconfig: add defconfigs for building KUnit tests
Date: Mon, 12 Aug 2019 11:24:17 -0700 [thread overview]
Message-ID: <20190812182421.141150-15-brendanhiggins@google.com> (raw)
In-Reply-To: <20190812182421.141150-1-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Add defconfig for UML and a fragment that can be used to configure other
architectures for building KUnit tests. Add option to kunit_tool to use
a defconfig to create the kunitconfig.
Signed-off-by: Brendan Higgins <brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Reviewed-by: Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
Reviewed-by: Logan Gunthorpe <logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org>
---
arch/um/configs/kunit_defconfig | 8 ++++++
tools/testing/kunit/configs/all_tests.config | 8 ++++++
tools/testing/kunit/kunit.py | 28 +++++++++++++++++---
tools/testing/kunit/kunit_kernel.py | 3 ++-
4 files changed, 42 insertions(+), 5 deletions(-)
create mode 100644 arch/um/configs/kunit_defconfig
create mode 100644 tools/testing/kunit/configs/all_tests.config
diff --git a/arch/um/configs/kunit_defconfig b/arch/um/configs/kunit_defconfig
new file mode 100644
index 0000000000000..bfe49689038f1
--- /dev/null
+++ b/arch/um/configs/kunit_defconfig
@@ -0,0 +1,8 @@
+CONFIG_OF=y
+CONFIG_OF_UNITTEST=y
+CONFIG_OF_OVERLAY=y
+CONFIG_I2C=y
+CONFIG_I2C_MUX=y
+CONFIG_KUNIT=y
+CONFIG_KUNIT_TEST=y
+CONFIG_KUNIT_EXAMPLE_TEST=y
diff --git a/tools/testing/kunit/configs/all_tests.config b/tools/testing/kunit/configs/all_tests.config
new file mode 100644
index 0000000000000..bfe49689038f1
--- /dev/null
+++ b/tools/testing/kunit/configs/all_tests.config
@@ -0,0 +1,8 @@
+CONFIG_OF=y
+CONFIG_OF_UNITTEST=y
+CONFIG_OF_OVERLAY=y
+CONFIG_I2C=y
+CONFIG_I2C_MUX=y
+CONFIG_KUNIT=y
+CONFIG_KUNIT_TEST=y
+CONFIG_KUNIT_EXAMPLE_TEST=y
diff --git a/tools/testing/kunit/kunit.py b/tools/testing/kunit/kunit.py
index da11bd62a4b82..0944dea5c3211 100755
--- a/tools/testing/kunit/kunit.py
+++ b/tools/testing/kunit/kunit.py
@@ -11,6 +11,7 @@ import argparse
import sys
import os
import time
+import shutil
from collections import namedtuple
from enum import Enum, auto
@@ -21,7 +22,7 @@ import kunit_parser
KunitResult = namedtuple('KunitResult', ['status','result'])
-KunitRequest = namedtuple('KunitRequest', ['raw_output','timeout', 'jobs', 'build_dir'])
+KunitRequest = namedtuple('KunitRequest', ['raw_output','timeout', 'jobs', 'build_dir', 'defconfig'])
class KunitStatus(Enum):
SUCCESS = auto()
@@ -29,8 +30,16 @@ class KunitStatus(Enum):
BUILD_FAILURE = auto()
TEST_FAILURE = auto()
+def create_default_kunitconfig():
+ if not os.path.exists(kunit_kernel.KUNITCONFIG_PATH):
+ shutil.copyfile('arch/um/configs/kunit_defconfig',
+ kunit_kernel.KUNITCONFIG_PATH)
+
def run_tests(linux: kunit_kernel.LinuxSourceTree,
request: KunitRequest) -> KunitResult:
+ if request.defconfig:
+ create_default_kunitconfig()
+
config_start = time.time()
success = linux.build_reconfig(request.build_dir)
config_end = time.time()
@@ -72,7 +81,7 @@ def run_tests(linux: kunit_kernel.LinuxSourceTree,
else:
return KunitResult(KunitStatus.SUCCESS, test_result)
-def main(argv, linux):
+def main(argv, linux=None):
parser = argparse.ArgumentParser(
description='Helps writing and running KUnit tests.')
subparser = parser.add_subparsers(dest='subcommand')
@@ -99,13 +108,24 @@ def main(argv, linux):
'directory.',
type=str, default=None, metavar='build_dir')
+ run_parser.add_argument('--defconfig',
+ help='Uses a default kunitconfig.',
+ action='store_true')
+
cli_args = parser.parse_args(argv)
if cli_args.subcommand == 'run':
+ if cli_args.defconfig:
+ create_default_kunitconfig()
+
+ if not linux:
+ linux = kunit_kernel.LinuxSourceTree()
+
request = KunitRequest(cli_args.raw_output,
cli_args.timeout,
cli_args.jobs,
- cli_args.build_dir)
+ cli_args.build_dir,
+ cli_args.defconfig)
result = run_tests(linux, request)
if result.status != KunitStatus.SUCCESS:
sys.exit(1)
@@ -113,4 +133,4 @@ def main(argv, linux):
parser.print_help()
if __name__ == '__main__':
- main(sys.argv[1:], kunit_kernel.LinuxSourceTree())
+ main(sys.argv[1:])
diff --git a/tools/testing/kunit/kunit_kernel.py b/tools/testing/kunit/kunit_kernel.py
index 07c0abf2f47df..bf38768353313 100644
--- a/tools/testing/kunit/kunit_kernel.py
+++ b/tools/testing/kunit/kunit_kernel.py
@@ -14,6 +14,7 @@ import os
import kunit_config
KCONFIG_PATH = '.config'
+KUNITCONFIG_PATH = 'kunitconfig'
class ConfigError(Exception):
"""Represents an error trying to configure the Linux kernel."""
@@ -81,7 +82,7 @@ class LinuxSourceTree(object):
def __init__(self):
self._kconfig = kunit_config.Kconfig()
- self._kconfig.read_from_file('kunitconfig')
+ self._kconfig.read_from_file(KUNITCONFIG_PATH)
self._ops = LinuxSourceTreeOperations()
def clean(self):
--
2.23.0.rc1.153.gdeed80330f-goog
next prev parent reply other threads:[~2019-08-12 18:24 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-12 18:24 [PATCH v12 00/18] kunit: introduce KUnit, the Linux kernel unit testing framework Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 01/18] kunit: test: add KUnit test runner core Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 02/18] kunit: test: add test resource management API Brendan Higgins
[not found] ` <20190812182421.141150-3-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-08-12 22:10 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 03/18] kunit: test: add string_stream a std::stream like string builder Brendan Higgins
2019-08-12 22:55 ` Stephen Boyd
2019-08-12 23:33 ` Brendan Higgins
2019-08-12 23:59 ` Stephen Boyd
2019-08-13 0:41 ` Brendan Higgins
[not found] ` <CAFd5g44xciLPBhH_J3zUcY3TedWTijdnWgF055qffF+dAguhPQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-08-13 4:56 ` Stephen Boyd
2019-08-13 5:02 ` Brendan Higgins
2019-08-13 5:30 ` Stephen Boyd
2019-08-13 9:04 ` Brendan Higgins
[not found] ` <CAFd5g47v7410QRAizPV8zaHrKrc95-Sk-GNzRRVngN741OKnvg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-08-13 9:12 ` Brendan Higgins
2019-08-13 16:48 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 04/18] kunit: test: add assertion printing library Brendan Higgins
2019-08-12 23:46 ` Stephen Boyd
2019-08-12 23:56 ` Brendan Higgins
[not found] ` <CAFd5g44huOiR9B0H1C2TtiPy63BDuwi_Qpb_exF3zmT3ttV8eg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-08-13 4:27 ` Brendan Higgins
2019-08-13 4:57 ` Stephen Boyd
2019-08-13 5:03 ` Brendan Higgins
[not found] ` <20190812182421.141150-1-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-08-12 18:24 ` [PATCH v12 05/18] kunit: test: add the concept of expectations Brendan Higgins
2019-08-12 23:57 ` Stephen Boyd
[not found] ` <20190812235701.533E82063F-+nuXSHJNwjE76Z2rM5mHXA@public.gmane.org>
2019-08-13 0:33 ` Brendan Higgins
2019-08-13 5:02 ` Stephen Boyd
2019-08-13 5:04 ` Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 06/18] kbuild: enable building KUnit Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 07/18] kunit: test: add initial tests Brendan Higgins
2019-08-12 23:59 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 08/18] objtool: add kunit_try_catch_throw to the noreturn list Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 09/18] kunit: test: add support for test abort Brendan Higgins
2019-08-13 4:21 ` Stephen Boyd
2019-08-13 4:57 ` Brendan Higgins
2019-08-13 5:56 ` Stephen Boyd
2019-08-13 7:52 ` Brendan Higgins
[not found] ` <CAFd5g4415URtJBKPhsEw98GxiExJr-fstW6SQ6nmV9ts9ggK-g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-08-13 17:06 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 10/18] kunit: test: add tests for kunit " Brendan Higgins
[not found] ` <20190812182421.141150-11-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-08-13 4:24 ` Stephen Boyd
2019-08-13 5:06 ` Brendan Higgins
2019-08-13 5:57 ` Stephen Boyd
2019-08-13 7:53 ` Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 12/18] kunit: test: add tests for KUnit managed resources Brendan Higgins
2019-08-13 4:31 ` Stephen Boyd
2019-08-13 7:57 ` Brendan Higgins
2019-08-13 17:07 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 13/18] kunit: tool: add Python wrappers for running KUnit tests Brendan Higgins
[not found] ` <20190812182421.141150-14-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-08-13 6:02 ` Stephen Boyd
2019-08-12 18:24 ` Brendan Higgins [this message]
2019-08-13 4:38 ` [PATCH v12 14/18] kunit: defconfig: add defconfigs for building " Stephen Boyd
2019-08-13 7:59 ` Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 15/18] Documentation: kunit: add documentation for KUnit Brendan Higgins
2019-08-13 4:46 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 16/18] MAINTAINERS: add entry for KUnit the unit testing framework Brendan Higgins
2019-08-13 5:26 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 11/18] kunit: test: add the concept of assertions Brendan Higgins
2019-08-13 4:55 ` Stephen Boyd
[not found] ` <20190813045510.C1D6E206C2-+nuXSHJNwjE76Z2rM5mHXA@public.gmane.org>
2019-08-13 5:09 ` Brendan Higgins
2019-08-12 18:24 ` [PATCH v12 17/18] kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec() Brendan Higgins
2019-08-13 4:48 ` Stephen Boyd
2019-08-12 18:24 ` [PATCH v12 18/18] MAINTAINERS: add proc sysctl KUnit test to PROC SYSCTL section Brendan Higgins
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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190812182421.141150-15-brendanhiggins@google.com \
--to=brendanhiggins-hpiqsd4aklfqt0dzr+alfa@public.gmane.org \
--cc=Alexander.Levin-0li6OtcxBFHby3iVrkZq2A@public.gmane.org \
--cc=Tim.Bird-7U/KSKJipcs@public.gmane.org \
--cc=amir73il-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=daniel-/w4YWyX8dFk@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=frowand.list-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=jdike-OPE4K8JWMJJBDgjK7y7TUQ@public.gmane.org \
--cc=joel-U3u1mxZcP9KHXe+LvDLADg@public.gmane.org \
--cc=jpoimboe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=julia.lawall-L2FTfq7BK8M@public.gmane.org \
--cc=keescook-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=khilman-rdvid1DuHRBWk0Htik3J/w@public.gmane.org \
--cc=kieran.bingham-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
--cc=knut.omang-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=kunit-dev-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kbuild-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kselftest-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org \
--cc=linux-um-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=mcgrof-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org \
--cc=peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=pmladek-IBi9RG/b67k@public.gmane.org \
--cc=rdunlap-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=richard-/L3Ra7n9ekc@public.gmane.org \
--cc=rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org \
--cc=sboyd-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=shuah-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=tytso-3s7WtUTddSA@public.gmane.org \
--cc=wfg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=yamada.masahiro-uWyLwvC0a2jby3iVrkZq2A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).