Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1962195yba; Fri, 10 May 2019 04:10:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqwA0bBcLnVDiX5IpmXNWdZt+WOkzZNWT4tTfengpo2vLr8f+aI79MxbzR96Na8JxTKda4gW X-Received: by 2002:a17:902:e409:: with SMTP id ci9mr1767191plb.103.1557486612760; Fri, 10 May 2019 04:10:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557486612; cv=none; d=google.com; s=arc-20160816; b=VO5wLz245MAAszk1qfgviur0fuCz+9CtrxzWuQXCKlUP1BD980isc5QKob1EyU3d4/ NYTJuAijgOgW/KEZh1jccF11Va1Dffa5ybN7cHEGkQDBrHuYmLHT66fbhWOKL10Kh/9o QvEAh+2G+u5y0DCzVaxXPSZGQEFBhQIaYw94x1OD74TYUtGKXA7bMNiukG88AaIHXJXJ UGD3yropXLxIw2Thm6PbFrDxLSwFE+Hv+3W45LttPHdxLJgfbsFUWfILjaXiHGSfkJkt ULe6niyK3VGdNKd8cvWfKXyjOoTPS2rDMI34mQD4tZ+vVlSoZHPfvT1F9NZsjxZtQ2c+ tGMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=iI9UjzWLOTz9GmvdS5N+dD4tpC8SGzYvR6XlaJd6X3w=; b=mGbxzxejE7xwgNhpI/0RFJTlB84x7XBDY3vDQLf/w7qrYImQ6C27Z5JskaiBwDInbc n28T3RmlEoBvUfcycAVNGYhA4Wz5BisTzbpczqXNBYqymHZDwTYiCktyiNCBJiTVdv5Z G5PYPfNmDxiPsDt+tTwLLXkqBxCjTs5BbkPP6ATD6nykl5G7on+wwwHuHL6F9aRFdT+s UTd9fclCsdGFcyuCSekYsgmnZ3VldMw1eplsWoZV0JKUmwvutPxUaSQ7xS/22HnrKt76 9XTgnKEZZ0awL98wnWj55I/K1mwre+Rnq+MHGCQLVnTuRx73rrRIoR9ezCHhrI/ZRr/+ U2Nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RWz50WjG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i3si6642786pld.129.2019.05.10.04.09.56; Fri, 10 May 2019 04:10:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=RWz50WjG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727511AbfEJKZU (ORCPT + 99 others); Fri, 10 May 2019 06:25:20 -0400 Received: from mail-ot1-f67.google.com ([209.85.210.67]:47039 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727376AbfEJKZU (ORCPT ); Fri, 10 May 2019 06:25:20 -0400 Received: by mail-ot1-f67.google.com with SMTP id v17so5052386otp.13 for ; Fri, 10 May 2019 03:25:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iI9UjzWLOTz9GmvdS5N+dD4tpC8SGzYvR6XlaJd6X3w=; b=RWz50WjGVhE778RI5E/gnmwHtyGZ0gaAmZ0iZ0plK5kWhBoeeKOWqyMXplH8fTtUsP YFZpCe51wfH5rpKYyGn5ULLWDdnHqiz/qOEV7NBjxq+KfO41fJG4qhtbH5TVMqmlTXuD b5rf6YzechDPYqaa7IxCgG1hq1vCZ1jw2HsD3qL0n5got4d9IQUHA7ngtw1jru23KETZ S2a1Yzky70EiE/cKvmqv3j36xHYkNkJZpgW2MH+/MVDg0jSJzsPJ2n3uuvsMbcTdrYqq lTHYE5RDq+PIvvcx+UdbW+CJ6Tf73MUjggBvl433KWXT2rTGYfdgh08GkTh9dkD5qrWP Kl5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=iI9UjzWLOTz9GmvdS5N+dD4tpC8SGzYvR6XlaJd6X3w=; b=eZShJkWp1bQ2WumQQxmb9ZGCS+NZd1smSqncZYLNlae1zKFvCLfgx1oCxVrqRTHQUd zCYylKiJ30c3ExJI2ePQM0Dy+xuuMfDCpK5LDIM9VLj9W2FzWJ52HBLLbMk1NzLifJ6/ AworXtRvIi4/bduhlF+nL7ViN/uq0vIeO1JL5thH44oMn8N+rsBEPUj5bdWmlMpnND4T HV/xV4MzogFNnDNEq+EY0enmEV17thI/ohYd4g35doJPy9JDRGrD4ADrlJN4l675dNhm ktCznVAM6G+FMYBa1w6jJcol/a4Qmqkfj9EMs3WQ1wPadsGRzQyqwwtIx3B3HTLiCYSt U6uA== X-Gm-Message-State: APjAAAUM3p8F4zlBSK0MymkJs7zF9XSbCPCF4C11/c/VMHRnlekvyUJG LgJgjAT2++7X9PAN0WEa2UCxXj6Zjd0e2YcIdpti4g== X-Received: by 2002:a9d:640f:: with SMTP id h15mr622694otl.338.1557483918605; Fri, 10 May 2019 03:25:18 -0700 (PDT) MIME-Version: 1.0 References: <20190501230126.229218-1-brendanhiggins@google.com> In-Reply-To: From: Brendan Higgins Date: Fri, 10 May 2019 03:25:06 -0700 Message-ID: Subject: Re: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework To: Masahiro Yamada Cc: Frank Rowand , Greg Kroah-Hartman , Kees Cook , Kieran Bingham , "Luis R. Rodriguez" , Rob Herring , Stephen Boyd , "Cc: Shuah Khan" , DTML , dri-devel , kunit-dev@googlegroups.com, "open list:DOCUMENTATION" , linux-fsdevel@vger.kernel.org, Linux Kbuild mailing list , Linux Kernel Mailing List , "open list:KERNEL SELFTEST FRAMEWORK" , linux-nvdimm , linux-um@lists.infradead.org, Sasha Levin , Tim Bird , Amir Goldstein , Dan Carpenter , Dan Williams , Daniel Vetter , Jeff Dike , Joel Stanley , Julia Lawall , Kevin Hilman , Knut Omang , Logan Gunthorpe , Michael Ellerman , Petr Mladek , Richard Weinberger , David Rientjes , Steven Rostedt , wfg@linux.intel.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Thu, May 2, 2019 at 8:02 AM Brendan Higgins > wrote: > > > > ## TLDR > > > > I rebased the last patchset on 5.1-rc7 in hopes that we can get this in > > 5.2. > > > > Shuah, I think you, Greg KH, and myself talked off thread, and we agreed > > we would merge through your tree when the time came? Am I remembering > > correctly? > > > > ## Background > > > > This patch set proposes KUnit, a lightweight unit testing and mocking > > framework for the Linux kernel. > > > > Unlike Autotest and kselftest, KUnit is a true unit testing framework; > > it does not require installing the kernel on a test machine or in a VM > > and does not require tests to be written in userspace running on a host > > kernel. Additionally, KUnit is fast: From invocation to completion KUnit > > can run several dozen tests in under a second. Currently, the entire > > KUnit test suite for KUnit runs in under a second from the initial > > invocation (build time excluded). > > > > KUnit is heavily inspired by JUnit, Python's unittest.mock, and > > Googletest/Googlemock for C++. KUnit provides facilities for defining > > unit test cases, grouping related test cases into test suites, providing > > common infrastructure for running tests, mocking, spying, and much more. > > > > ## What's so special about unit testing? > > > > A unit test is supposed to test a single unit of code in isolation, > > hence the name. There should be no dependencies outside the control of > > the test; this means no external dependencies, which makes tests orders > > of magnitudes faster. Likewise, since there are no external dependencies, > > there are no hoops to jump through to run the tests. Additionally, this > > makes unit tests deterministic: a failing unit test always indicates a > > problem. Finally, because unit tests necessarily have finer granularity, > > they are able to test all code paths easily solving the classic problem > > of difficulty in exercising error handling code. > > > > ## Is KUnit trying to replace other testing frameworks for the kernel? > > > > No. Most existing tests for the Linux kernel are end-to-end tests, which > > have their place. A well tested system has lots of unit tests, a > > reasonable number of integration tests, and some end-to-end tests. KUnit > > is just trying to address the unit test space which is currently not > > being addressed. > > > > ## More information on KUnit > > > > There is a bunch of documentation near the end of this patch set that > > describes how to use KUnit and best practices for writing unit tests. > > For convenience I am hosting the compiled docs here: > > https://google.github.io/kunit-docs/third_party/kernel/docs/ > > Additionally for convenience, I have applied these patches to a branch: > > https://kunit.googlesource.com/linux/+/kunit/rfc/v5.1-rc7/v1 > > The repo may be cloned with: > > git clone https://kunit.googlesource.com/linux > > This patchset is on the kunit/rfc/v5.1-rc7/v1 branch. > > > > ## Changes Since Last Version > > > > None. I just rebased the last patchset on v5.1-rc7. > > > > -- > > 2.21.0.593.g511ec345e18-goog > > > > The following is the log of 'git am' of this series. > I see several 'new blank line at EOF' warnings. > > > > masahiro@pug:~/workspace/bsp/linux$ git am ~/Downloads/*.patch > Applying: kunit: test: add KUnit test runner core > Applying: kunit: test: add test resource management API > Applying: kunit: test: add string_stream a std::stream like string builder > .git/rebase-apply/patch:223: new blank line at EOF. > + > warning: 1 line adds whitespace errors. > Applying: kunit: test: add kunit_stream a std::stream like logger > Applying: kunit: test: add the concept of expectations > .git/rebase-apply/patch:475: new blank line at EOF. > + > warning: 1 line adds whitespace errors. > Applying: kbuild: enable building KUnit > Applying: kunit: test: add initial tests > .git/rebase-apply/patch:203: new blank line at EOF. > + > warning: 1 line adds whitespace errors. > Applying: kunit: test: add support for test abort > .git/rebase-apply/patch:453: new blank line at EOF. > + > warning: 1 line adds whitespace errors. > Applying: kunit: test: add tests for kunit test abort > Applying: kunit: test: add the concept of assertions > .git/rebase-apply/patch:518: new blank line at EOF. > + > warning: 1 line adds whitespace errors. > Applying: kunit: test: add test managed resource tests > Applying: kunit: tool: add Python wrappers for running KUnit tests > .git/rebase-apply/patch:457: new blank line at EOF. > + > warning: 1 line adds whitespace errors. > Applying: kunit: defconfig: add defconfigs for building KUnit tests > Applying: Documentation: kunit: add documentation for KUnit > .git/rebase-apply/patch:71: new blank line at EOF. > + > .git/rebase-apply/patch:209: new blank line at EOF. > + > .git/rebase-apply/patch:848: new blank line at EOF. > + > warning: 3 lines add whitespace errors. > Applying: MAINTAINERS: add entry for KUnit the unit testing framework > Applying: kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec() > Applying: MAINTAINERS: add proc sysctl KUnit test to PROC SYSCTL section Sorry about this! I will have it fixed on the next revision.