From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A682B2122C2F3 for ; Wed, 8 May 2019 18:01:04 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id w22so268943pgi.6 for ; Wed, 08 May 2019 18:01:04 -0700 (PDT) Subject: Re: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework References: <20190501230126.229218-1-brendanhiggins@google.com> <54940124-50df-16ec-1a32-ad794ee05da7@gmail.com> <20190507080119.GB28121@kroah.com> <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> From: Frank Rowand Message-ID: <911e44bb-9bb1-e603-a260-fac63760fff6@gmail.com> Date: Wed, 8 May 2019 18:01:00 -0700 MIME-Version: 1.0 In-Reply-To: <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: shuah , Greg KH Cc: pmladek@suse.com, linux-doc@vger.kernel.org, amir73il@gmail.com, Brendan Higgins , dri-devel@lists.freedesktop.org, Alexander.Levin@microsoft.com, mpe@ellerman.id.au, linux-kselftest@vger.kernel.org, robh@kernel.org, linux-nvdimm@lists.01.org, khilman@baylibre.com, knut.omang@oracle.com, kieran.bingham@ideasonboard.com, wfg@linux.intel.com, joel@jms.id.au, rientjes@google.com, jdike@addtoit.com, dan.carpenter@oracle.com, devicetree@vger.kernel.org, linux-kbuild@vger.kernel.org, Tim.Bird@sony.com, linux-um@lists.infradead.org, rostedt@goodmis.org, julia.lawall@lip6.fr, kunit-dev@googlegroups.com, richard@nod.at, sboyd@kernel.org, linux-kernel@vger.kernel.org, mcgrof@kernel.org, daniel@ffwll.ch, keescook@google.com, linux-fsdevel@vger.kernel.org List-ID: T24gNS83LzE5IDg6MjMgQU0sIHNodWFoIHdyb3RlOgo+IE9uIDUvNy8xOSAyOjAxIEFNLCBHcmVn IEtIIHdyb3RlOgo+PiBPbiBNb24sIE1heSAwNiwgMjAxOSBhdCAwODoxNDoxMlBNIC0wNzAwLCBG cmFuayBSb3dhbmQgd3JvdGU6Cj4+PiBPbiA1LzEvMTkgNDowMSBQTSwgQnJlbmRhbiBIaWdnaW5z IHdyb3RlOgo+Pj4+ICMjIFRMRFIKPj4+Pgo+Pj4+IEkgcmViYXNlZCB0aGUgbGFzdCBwYXRjaHNl dCBvbiA1LjEtcmM3IGluIGhvcGVzIHRoYXQgd2UgY2FuIGdldCB0aGlzIGluCj4+Pj4gNS4yLgo+ Pj4+Cj4+Pj4gU2h1YWgsIEkgdGhpbmsgeW91LCBHcmVnIEtILCBhbmQgbXlzZWxmIHRhbGtlZCBv ZmYgdGhyZWFkLCBhbmQgd2UgYWdyZWVkCj4+Pj4gd2Ugd291bGQgbWVyZ2UgdGhyb3VnaCB5b3Vy IHRyZWUgd2hlbiB0aGUgdGltZSBjYW1lPyBBbSBJIHJlbWVtYmVyaW5nCj4+Pj4gY29ycmVjdGx5 Pwo+Pj4+Cj4+Pj4gIyMgQmFja2dyb3VuZAo+Pj4+Cj4+Pj4gVGhpcyBwYXRjaCBzZXQgcHJvcG9z ZXMgS1VuaXQsIGEgbGlnaHR3ZWlnaHQgdW5pdCB0ZXN0aW5nIGFuZCBtb2NraW5nCj4+Pj4gZnJh bWV3b3JrIGZvciB0aGUgTGludXgga2VybmVsLgo+Pj4+Cj4+Pj4gVW5saWtlIEF1dG90ZXN0IGFu ZCBrc2VsZnRlc3QsIEtVbml0IGlzIGEgdHJ1ZSB1bml0IHRlc3RpbmcgZnJhbWV3b3JrOwo+Pj4+ IGl0IGRvZXMgbm90IHJlcXVpcmUgaW5zdGFsbGluZyB0aGUga2VybmVsIG9uIGEgdGVzdCBtYWNo aW5lIG9yIGluIGEgVk0KPj4+PiBhbmQgZG9lcyBub3QgcmVxdWlyZSB0ZXN0cyB0byBiZSB3cml0 dGVuIGluIHVzZXJzcGFjZSBydW5uaW5nIG9uIGEgaG9zdAo+Pj4+IGtlcm5lbC4gQWRkaXRpb25h bGx5LCBLVW5pdCBpcyBmYXN0OiBGcm9tIGludm9jYXRpb24gdG8gY29tcGxldGlvbiBLVW5pdAo+ Pj4+IGNhbiBydW4gc2V2ZXJhbCBkb3plbiB0ZXN0cyBpbiB1bmRlciBhIHNlY29uZC4gQ3VycmVu dGx5LCB0aGUgZW50aXJlCj4+Pj4gS1VuaXQgdGVzdCBzdWl0ZSBmb3IgS1VuaXQgcnVucyBpbiB1 bmRlciBhIHNlY29uZCBmcm9tIHRoZSBpbml0aWFsCj4+Pj4gaW52b2NhdGlvbiAoYnVpbGQgdGlt ZSBleGNsdWRlZCkuCj4+Pj4KPj4+PiBLVW5pdCBpcyBoZWF2aWx5IGluc3BpcmVkIGJ5IEpVbml0 LCBQeXRob24ncyB1bml0dGVzdC5tb2NrLCBhbmQKPj4+PiBHb29nbGV0ZXN0L0dvb2dsZW1vY2sg Zm9yIEMrKy4gS1VuaXQgcHJvdmlkZXMgZmFjaWxpdGllcyBmb3IgZGVmaW5pbmcKPj4+PiB1bml0 IHRlc3QgY2FzZXMsIGdyb3VwaW5nIHJlbGF0ZWQgdGVzdCBjYXNlcyBpbnRvIHRlc3Qgc3VpdGVz LCBwcm92aWRpbmcKPj4+PiBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgZm9yIHJ1bm5pbmcgdGVzdHMs IG1vY2tpbmcsIHNweWluZywgYW5kIG11Y2ggbW9yZS4KPj4+Cj4+PiBBcyBhIHJlc3VsdCBvZiB0 aGUgZW1haWxzIHJlcGx5aW5nIHRvIHRoaXMgcGF0Y2ggdGhyZWFkLCBJIGFtIG5vdwo+Pj4gc3Rh cnRpbmcgdG8gbG9vayBhdCBrc2VsZnRlc3QuwqAgTXkgbGV2ZWwgb2YgdW5kZXJzdGFuZGluZyBp cyBiYXNlZAo+Pj4gb24gc29tZSBzbGlkZSBwcmVzZW50YXRpb25zLCBhbiBMV04gYXJ0aWNsZSwg aHR0cHM6Ly9rc2VsZnRlc3Qud2lraS5rZXJuZWwub3JnLwo+Pj4gYW5kIGEgX3RpbnlfIGJpdCBv ZiBsb29raW5nIGF0IGtzZWxmdGVzdCBjb2RlLgo+Pj4KPj4+IHRsO2RyOyBJIGRvbid0IHJlYWxs eSB1bmRlcnN0YW5kIGtzZWxmdGVzdCB5ZXQuCj4+Pgo+Pj4KPj4+ICgxKSB3aHkgS1VuaXQgZXhp c3RzCj4+Pgo+Pj4+ICMjIFdoYXQncyBzbyBzcGVjaWFsIGFib3V0IHVuaXQgdGVzdGluZz8KPj4+ Pgo+Pj4+IEEgdW5pdCB0ZXN0IGlzIHN1cHBvc2VkIHRvIHRlc3QgYSBzaW5nbGUgdW5pdCBvZiBj b2RlIGluIGlzb2xhdGlvbiwKPj4+PiBoZW5jZSB0aGUgbmFtZS4gVGhlcmUgc2hvdWxkIGJlIG5v IGRlcGVuZGVuY2llcyBvdXRzaWRlIHRoZSBjb250cm9sIG9mCj4+Pj4gdGhlIHRlc3Q7IHRoaXMg bWVhbnMgbm8gZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLCB3aGljaCBtYWtlcyB0ZXN0cyBvcmRlcnMK Pj4+PiBvZiBtYWduaXR1ZGVzIGZhc3Rlci4gTGlrZXdpc2UsIHNpbmNlIHRoZXJlIGFyZSBubyBl eHRlcm5hbCBkZXBlbmRlbmNpZXMsCj4+Pj4gdGhlcmUgYXJlIG5vIGhvb3BzIHRvIGp1bXAgdGhy b3VnaCB0byBydW4gdGhlIHRlc3RzLiBBZGRpdGlvbmFsbHksIHRoaXMKPj4+PiBtYWtlcyB1bml0 IHRlc3RzIGRldGVybWluaXN0aWM6IGEgZmFpbGluZyB1bml0IHRlc3QgYWx3YXlzIGluZGljYXRl cyBhCj4+Pj4gcHJvYmxlbS4gRmluYWxseSwgYmVjYXVzZSB1bml0IHRlc3RzIG5lY2Vzc2FyaWx5 IGhhdmUgZmluZXIgZ3JhbnVsYXJpdHksCj4+Pj4gdGhleSBhcmUgYWJsZSB0byB0ZXN0IGFsbCBj b2RlIHBhdGhzIGVhc2lseSBzb2x2aW5nIHRoZSBjbGFzc2ljIHByb2JsZW0KPj4+PiBvZiBkaWZm aWN1bHR5IGluIGV4ZXJjaXNpbmcgZXJyb3IgaGFuZGxpbmcgY29kZS4KPj4+Cj4+PiAoMikgS1Vu aXQgaXMgbm90IG1lYW50IHRvIHJlcGxhY2Uga3NlbGZ0ZXN0Cj4+Pgo+Pj4+ICMjIElzIEtVbml0 IHRyeWluZyB0byByZXBsYWNlIG90aGVyIHRlc3RpbmcgZnJhbWV3b3JrcyBmb3IgdGhlIGtlcm5l bD8KPj4+Pgo+Pj4+IE5vLiBNb3N0IGV4aXN0aW5nIHRlc3RzIGZvciB0aGUgTGludXgga2VybmVs IGFyZSBlbmQtdG8tZW5kIHRlc3RzLCB3aGljaAo+Pj4+IGhhdmUgdGhlaXIgcGxhY2UuIEEgd2Vs bCB0ZXN0ZWQgc3lzdGVtIGhhcyBsb3RzIG9mIHVuaXQgdGVzdHMsIGEKPj4+PiByZWFzb25hYmxl IG51bWJlciBvZiBpbnRlZ3JhdGlvbiB0ZXN0cywgYW5kIHNvbWUgZW5kLXRvLWVuZCB0ZXN0cy4g S1VuaXQKPj4+PiBpcyBqdXN0IHRyeWluZyB0byBhZGRyZXNzIHRoZSB1bml0IHRlc3Qgc3BhY2Ug d2hpY2ggaXMgY3VycmVudGx5IG5vdAo+Pj4+IGJlaW5nIGFkZHJlc3NlZC4KPj4+Cj4+PiBNeSB1 bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIGludGVudCBvZiBLVW5pdCBpcyB0byBhdm9pZCBib290 aW5nIGEga2VybmVsIG9uCj4+PiByZWFsIGhhcmR3YXJlIG9yIGluIGEgdmlydHVhbCBtYWNoaW5l LsKgIFRoYXQgc2VlbXMgdG8gYmUgYSBtYXR0ZXIgb2Ygc2VtYW50aWNzCj4+PiB0byBtZSBiZWNh dXNlIGlzbid0IGludm9raW5nIGEgVU1MIExpbnV4IGp1c3QgcnVubmluZyB0aGUgTGludXgga2Vy bmVsIGluCj4+PiBhIGRpZmZlcmVudCBmb3JtIG9mIHZpcnR1YWxpemF0aW9uPwo+Pj4KPj4+IFNv IEkgZG8gbm90IHVuZGVyc3RhbmQgd2h5IEtVbml0IGlzIGFuIGltcHJvdmVtZW50IG92ZXIga3Nl bGZ0ZXN0Lgo+IAo+IFRoZXkgYXJlIGluIHR3byBkaWZmZXJlbnQgY2F0ZWdvcmllcy4gS3NlbGZ0 ZXN0IGZhbGxzIGludG8gYmxhY2sgYm94Cj4gcmVncmVzc2lvbiB0ZXN0IHN1aXRlIHdoaWNoIGlz IGEgY29sbGVjdGlvbiBvZiB1c2VyLXNwYWNlIHRlc3RzIHdpdGggYQo+IGZldyBrZXJuZWwgdGVz dCBtb2R1bGVzIGJhY2stZW5kaW5nIHRoZSB0ZXN0cyBpbiBzb21lIGNhc2VzLgo+IAo+IEtzZWxm dGVzdCBjYW4gYmUgdXNlZCBieSBib3RoIGtlcm5lbCBkZXZlbG9wZXJzIGFuZCB1c2VycyBhbmQg cHJvdmlkZXMKPiBhIGdvb2Qgd2F5IHRvIHJlZ3Jlc3Npb24gdGVzdCByZWxlYXNlcyBpbiB0ZXN0 IHJpbmdzLgo+IAo+IEtVbml0IGlzIGEgd2hpdGUgYm94IGNhdGVnb3J5IGFuZCBpcyBhIGJldHRl ciBmaXQgYXMgdW5pdCB0ZXN0IGZyYW1ld29yawo+IGZvciBkZXZlbG9wbWVudCBhbmQgcHJvdmlk ZXMgYSBpbi1rZXJuZWwgdGVzdGluZy4gSSB3b3VsZG4ndCB2aWV3IHRoZW0KPiBvbmUgcmVwbGFj aW5nIHRoZSBvdGhlci4gVGhleSBqdXN0IHByb3ZpZGUgY292ZXJhZ2UgZm9yIGRpZmZlcmVudCBh cmVhcwo+IG9mIHRlc3RpbmcuCgpJIGRvbid0IHNlZSB3aGF0IGFib3V0IGtzZWxmdGVzdCBvciBL VW5pdCBpcyBpbmhlcmVudGx5IGJsYWNrIGJveCBvcgp3aGl0ZSBib3guICBJIHdvdWxkIGV4cGVj dCBib3RoIGZyYW1ld29ya3MgdG8gYmUgdXNlZCBmb3IgZWl0aGVyIHR5cGUKb2YgdGVzdGluZy4K Cgo+IEkgd291bGRuJ3QgdmlldyBLVW5pdCBhcyBzb21ldGhpbmcgdGhhdCB3b3VsZCBiZSBlYXNp bHkgcnVuIGluIHRlc3QgcmluZ3MgZm9yIGV4YW1wbGUuCgpJIGRvbid0IHNlZSB3aHkgbm90LgoK LUZyYW5rCgo+IAo+IEJyZW5kYW4sIGRvZXMgdGhhdCBzb3VuZCBhYm91dCByaWdodD8KPiAKPj4+ Cj4+PiBJdCBzZWVtcyB0byBtZSB0aGF0IEtVbml0IGlzIGp1c3QgYW5vdGhlciBwaWVjZSBvZiBp bmZyYXN0cnVjdHVyZSB0aGF0IEkKPj4+IGFtIGdvaW5nIHRvIGhhdmUgdG8gYmUgZmFtaWxpYXIg d2l0aCBhcyBhIGtlcm5lbCBkZXZlbG9wZXIuwqAgTW9yZSBvdmVyaGVhZCwKPj4+IG1vcmUgaW5m b3JtYXRpb24gdG8gc3R1ZmYgaW50byBteSB0aW55IGxpdHRsZSBicmFpbi4KPj4+Cj4+PiBJIHdv dWxkIGd1ZXNzIHRoYXQgc29tZSBkZXZlbG9wZXJzIHdpbGwgZm9jdXMgb24ganVzdCBvbmUgb2Yg dGhlIHR3byB0ZXN0Cj4+PiBlbnZpcm9ubWVudHMgKGFuZCBzb21lIHdpbGwgZm9jdXMgb24gYm90 aCksIHNwbGl0dGluZyB0aGUgZGV2ZWxvcG1lbnQKPj4+IHJlc291cmNlcyBpbnN0ZWFkIG9mIHBv b2xpbmcgdGhlbSBvbiBhIGNvbW1vbiBpbmZyYXN0cnVjdHVyZS4KPiAKPj4+IFdoYXQgYW0gSSBt aXNzaW5nPwo+Pgo+PiBrc2VsZnRlc3QgcHJvdmlkZXMgbm8gaW4ta2VybmVsIGZyYW1ld29yayBm b3IgdGVzdGluZyBrZXJuZWwgY29kZQo+PiBzcGVjaWZpY2FsbHkuwqAgVGhhdCBzaG91bGQgYmUg d2hhdCBrdW5pdCBwcm92aWRlcywgYW4gImVhc3kiIHdheSB0bwo+PiB3cml0ZSBpbi1rZXJuZWwg dGVzdHMgZm9yIHRoaW5ncy4KPj4KPj4gQnJlbmRhbiwgZGlkIEkgZ2V0IGl0IHJpZ2h0Pwo+IHRo YW5rcywKPiAtLSBTaHVhaAo+IC4KPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkxpbnV4LW52ZGltbSBtYWlsaW5nIGxpc3QKTGludXgtbnZkaW1tQGxp c3RzLjAxLm9yZwpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52 ZGltbQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AAA89C04A6B for ; Thu, 9 May 2019 01:01:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 62FF62173B for ; Thu, 9 May 2019 01:01:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="q6xuWARh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726492AbfEIBBF (ORCPT ); Wed, 8 May 2019 21:01:05 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:45150 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725778AbfEIBBF (ORCPT ); Wed, 8 May 2019 21:01:05 -0400 Received: by mail-pf1-f196.google.com with SMTP id s11so332362pfm.12; Wed, 08 May 2019 18:01:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=yViYa+n9NYDtvHDz0r+K4+Oq95Cqmi6zykBegH2S9+U=; b=q6xuWARhhaCyOtUDiM13Mq2TCdqcqKupS3zwIqMPehPxy2dz2ZMD7U2PVt+jR9lZz+ 2nRqsnpVOKzcK54vtxFntv+RFvdYg4stm9737Agrnk2/tY5aURLb8arfUosWg9ydusYH W1TWfgD3pvEWC39AVZVJ4j3ptsQ9ZNc7yOXKPURwxPcO9gN+TT273HnVJ3QjfSDMsugZ HwS2354TdboEeYwv/UOXS1+XimZ2WljTCF2XE0z5K9/D/XSnTxbJImLp2p1Y0Y8MbhcW ahg4eVcH+uEmwOrLS6T5gfmIwH8EtOEJaiZEHJ2OETOp0h4LkXlUemXkJCW5Vv5rKgFC X1Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=yViYa+n9NYDtvHDz0r+K4+Oq95Cqmi6zykBegH2S9+U=; b=jqLEPFRk/NYGgpALUxyX7fCzKkA0LP3CjfWY8TdhTkUA3HRyutS7ktaxkty9eTrHUb OKfh2VdF6CtAn4JWzdL52Pb8NlD4GCfJiT4uODnQKVDophRQu9ywz5jyVNhlq5BlPSTQ 9brK4IBvcYHbMVOqJ/yTtfzesRBZqCuR2u4Pui+zUHHYbCt9x8RMt1YMZOWTbhlEZ76o AVTduBuVaukyCrSimdjoUWbHNxjLYi3VUdA+ok/8puLMTDJUEtSJH+cpX8Ru+It+Sh2e Fc+g6/N7xh7yCp0iUJwNSpa/0Qt0SAay/B+lkKWJcA754qpAWC5hnWLppgTjNh3A8dIz De9w== X-Gm-Message-State: APjAAAU8iQJJUowItkqEn98C77F5gFZ4YxFhiie+ijxvoVzWFMhFtH6M PLZozz9At9+CdV0OeTs/1Sf+fHIa X-Google-Smtp-Source: APXvYqz/V92Failmv0rkia78qR5hdpdS0xfB1JYjVMeOpzkJ527SwnH/qSInDGxbdmN18Nckfk3b+A== X-Received: by 2002:aa7:8a81:: with SMTP id a1mr900658pfc.121.1557363664135; Wed, 08 May 2019 18:01:04 -0700 (PDT) Received: from [192.168.1.70] (c-24-6-192-50.hsd1.ca.comcast.net. [24.6.192.50]) by smtp.gmail.com with ESMTPSA id u66sm553077pfb.76.2019.05.08.18.01.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 May 2019 18:01:03 -0700 (PDT) Subject: Re: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework To: shuah , Greg KH Cc: Brendan Higgins , keescook@google.com, kieran.bingham@ideasonboard.com, mcgrof@kernel.org, robh@kernel.org, sboyd@kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, kunit-dev@googlegroups.com, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, linux-um@lists.infradead.org, Alexander.Levin@microsoft.com, Tim.Bird@sony.com, amir73il@gmail.com, dan.carpenter@oracle.com, dan.j.williams@intel.com, daniel@ffwll.ch, jdike@addtoit.com, joel@jms.id.au, julia.lawall@lip6.fr, khilman@baylibre.com, knut.omang@oracle.com, logang@deltatee.com, mpe@ellerman.id.au, pmladek@suse.com, richard@nod.at, rientjes@google.com, rostedt@goodmis.org, wfg@linux.intel.com References: <20190501230126.229218-1-brendanhiggins@google.com> <54940124-50df-16ec-1a32-ad794ee05da7@gmail.com> <20190507080119.GB28121@kroah.com> <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> From: Frank Rowand Message-ID: <911e44bb-9bb1-e603-a260-fac63760fff6@gmail.com> Date: Wed, 8 May 2019 18:01:00 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/7/19 8:23 AM, shuah wrote: > On 5/7/19 2:01 AM, Greg KH wrote: >> On Mon, May 06, 2019 at 08:14:12PM -0700, Frank Rowand wrote: >>> On 5/1/19 4:01 PM, 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. >>> >>> As a result of the emails replying to this patch thread, I am now >>> starting to look at kselftest.  My level of understanding is based >>> on some slide presentations, an LWN article, https://kselftest.wiki.kernel.org/ >>> and a _tiny_ bit of looking at kselftest code. >>> >>> tl;dr; I don't really understand kselftest yet. >>> >>> >>> (1) why KUnit exists >>> >>>> ## 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. >>> >>> (2) KUnit is not meant to replace kselftest >>> >>>> ## 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. >>> >>> My understanding is that the intent of KUnit is to avoid booting a kernel on >>> real hardware or in a virtual machine.  That seems to be a matter of semantics >>> to me because isn't invoking a UML Linux just running the Linux kernel in >>> a different form of virtualization? >>> >>> So I do not understand why KUnit is an improvement over kselftest. > > They are in two different categories. Kselftest falls into black box > regression test suite which is a collection of user-space tests with a > few kernel test modules back-ending the tests in some cases. > > Kselftest can be used by both kernel developers and users and provides > a good way to regression test releases in test rings. > > KUnit is a white box category and is a better fit as unit test framework > for development and provides a in-kernel testing. I wouldn't view them > one replacing the other. They just provide coverage for different areas > of testing. I don't see what about kselftest or KUnit is inherently black box or white box. I would expect both frameworks to be used for either type of testing. > I wouldn't view KUnit as something that would be easily run in test rings for example. I don't see why not. -Frank > > Brendan, does that sound about right? > >>> >>> It seems to me that KUnit is just another piece of infrastructure that I >>> am going to have to be familiar with as a kernel developer.  More overhead, >>> more information to stuff into my tiny little brain. >>> >>> I would guess that some developers will focus on just one of the two test >>> environments (and some will focus on both), splitting the development >>> resources instead of pooling them on a common infrastructure. > >>> What am I missing? >> >> kselftest provides no in-kernel framework for testing kernel code >> specifically.  That should be what kunit provides, an "easy" way to >> write in-kernel tests for things. >> >> Brendan, did I get it right? > thanks, > -- Shuah > . > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Frank Rowand Subject: Re: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework Date: Wed, 8 May 2019 18:01:00 -0700 Message-ID: <911e44bb-9bb1-e603-a260-fac63760fff6@gmail.com> References: <20190501230126.229218-1-brendanhiggins@google.com> <54940124-50df-16ec-1a32-ad794ee05da7@gmail.com> <20190507080119.GB28121@kroah.com> <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: shuah , Greg KH Cc: Brendan Higgins , keescook@google.com, kieran.bingham@ideasonboard.com, mcgrof@kernel.org, robh@kernel.org, sboyd@kernel.org, devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, kunit-dev@googlegroups.com, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, linux-um@lists.infradead.org, Alexander.Levin@microsoft.com, Tim.Bird@sony.com, amir73il@gmail.com, dan.carpenter@oracle.com, dan.j.williams@intel.com, daniel@ffwll.ch, jdike@addtoit.com, joel@jms.id.au, julia.lawall@lip6.fr, khilman@baylibre.com, knut.omang@oracle.com, logang@deltatee.com, mpe@ellerman.id.au, pmladek@suse.com, richard@nod.at, rientjes@google.com, roste List-Id: devicetree@vger.kernel.org On 5/7/19 8:23 AM, shuah wrote: > On 5/7/19 2:01 AM, Greg KH wrote: >> On Mon, May 06, 2019 at 08:14:12PM -0700, Frank Rowand wrote: >>> On 5/1/19 4:01 PM, 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. >>> >>> As a result of the emails replying to this patch thread, I am now >>> starting to look at kselftest.  My level of understanding is based >>> on some slide presentations, an LWN article, https://kselftest.wiki.kernel.org/ >>> and a _tiny_ bit of looking at kselftest code. >>> >>> tl;dr; I don't really understand kselftest yet. >>> >>> >>> (1) why KUnit exists >>> >>>> ## 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. >>> >>> (2) KUnit is not meant to replace kselftest >>> >>>> ## 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. >>> >>> My understanding is that the intent of KUnit is to avoid booting a kernel on >>> real hardware or in a virtual machine.  That seems to be a matter of semantics >>> to me because isn't invoking a UML Linux just running the Linux kernel in >>> a different form of virtualization? >>> >>> So I do not understand why KUnit is an improvement over kselftest. > > They are in two different categories. Kselftest falls into black box > regression test suite which is a collection of user-space tests with a > few kernel test modules back-ending the tests in some cases. > > Kselftest can be used by both kernel developers and users and provides > a good way to regression test releases in test rings. > > KUnit is a white box category and is a better fit as unit test framework > for development and provides a in-kernel testing. I wouldn't view them > one replacing the other. They just provide coverage for different areas > of testing. I don't see what about kselftest or KUnit is inherently black box or white box. I would expect both frameworks to be used for either type of testing. > I wouldn't view KUnit as something that would be easily run in test rings for example. I don't see why not. -Frank > > Brendan, does that sound about right? > >>> >>> It seems to me that KUnit is just another piece of infrastructure that I >>> am going to have to be familiar with as a kernel developer.  More overhead, >>> more information to stuff into my tiny little brain. >>> >>> I would guess that some developers will focus on just one of the two test >>> environments (and some will focus on both), splitting the development >>> resources instead of pooling them on a common infrastructure. > >>> What am I missing? >> >> kselftest provides no in-kernel framework for testing kernel code >> specifically.  That should be what kunit provides, an "easy" way to >> write in-kernel tests for things. >> >> Brendan, did I get it right? > thanks, > -- Shuah > . > From mboxrd@z Thu Jan 1 00:00:00 1970 From: frowand.list at gmail.com (Frank Rowand) Date: Wed, 8 May 2019 18:01:00 -0700 Subject: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework In-Reply-To: <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> References: <20190501230126.229218-1-brendanhiggins@google.com> <54940124-50df-16ec-1a32-ad794ee05da7@gmail.com> <20190507080119.GB28121@kroah.com> <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> Message-ID: <911e44bb-9bb1-e603-a260-fac63760fff6@gmail.com> On 5/7/19 8:23 AM, shuah wrote: > On 5/7/19 2:01 AM, Greg KH wrote: >> On Mon, May 06, 2019 at 08:14:12PM -0700, Frank Rowand wrote: >>> On 5/1/19 4:01 PM, 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. >>> >>> As a result of the emails replying to this patch thread, I am now >>> starting to look at kselftest.  My level of understanding is based >>> on some slide presentations, an LWN article, https://kselftest.wiki.kernel.org/ >>> and a _tiny_ bit of looking at kselftest code. >>> >>> tl;dr; I don't really understand kselftest yet. >>> >>> >>> (1) why KUnit exists >>> >>>> ## 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. >>> >>> (2) KUnit is not meant to replace kselftest >>> >>>> ## 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. >>> >>> My understanding is that the intent of KUnit is to avoid booting a kernel on >>> real hardware or in a virtual machine.  That seems to be a matter of semantics >>> to me because isn't invoking a UML Linux just running the Linux kernel in >>> a different form of virtualization? >>> >>> So I do not understand why KUnit is an improvement over kselftest. > > They are in two different categories. Kselftest falls into black box > regression test suite which is a collection of user-space tests with a > few kernel test modules back-ending the tests in some cases. > > Kselftest can be used by both kernel developers and users and provides > a good way to regression test releases in test rings. > > KUnit is a white box category and is a better fit as unit test framework > for development and provides a in-kernel testing. I wouldn't view them > one replacing the other. They just provide coverage for different areas > of testing. I don't see what about kselftest or KUnit is inherently black box or white box. I would expect both frameworks to be used for either type of testing. > I wouldn't view KUnit as something that would be easily run in test rings for example. I don't see why not. -Frank > > Brendan, does that sound about right? > >>> >>> It seems to me that KUnit is just another piece of infrastructure that I >>> am going to have to be familiar with as a kernel developer.  More overhead, >>> more information to stuff into my tiny little brain. >>> >>> I would guess that some developers will focus on just one of the two test >>> environments (and some will focus on both), splitting the development >>> resources instead of pooling them on a common infrastructure. > >>> What am I missing? >> >> kselftest provides no in-kernel framework for testing kernel code >> specifically.  That should be what kunit provides, an "easy" way to >> write in-kernel tests for things. >> >> Brendan, did I get it right? > thanks, > -- Shuah > . > From mboxrd@z Thu Jan 1 00:00:00 1970 From: frowand.list@gmail.com (Frank Rowand) Date: Wed, 8 May 2019 18:01:00 -0700 Subject: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework In-Reply-To: <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> References: <20190501230126.229218-1-brendanhiggins@google.com> <54940124-50df-16ec-1a32-ad794ee05da7@gmail.com> <20190507080119.GB28121@kroah.com> <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> Message-ID: <911e44bb-9bb1-e603-a260-fac63760fff6@gmail.com> Content-Type: text/plain; charset="UTF-8" Message-ID: <20190509010100.h1tn4bY6Q6pBDP08BYBEsTgTirgQlUUedPSb99BQHig@z> On 5/7/19 8:23 AM, shuah wrote: > On 5/7/19 2:01 AM, Greg KH wrote: >> On Mon, May 06, 2019@08:14:12PM -0700, Frank Rowand wrote: >>> On 5/1/19 4:01 PM, 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. >>> >>> As a result of the emails replying to this patch thread, I am now >>> starting to look at kselftest.  My level of understanding is based >>> on some slide presentations, an LWN article, https://kselftest.wiki.kernel.org/ >>> and a _tiny_ bit of looking at kselftest code. >>> >>> tl;dr; I don't really understand kselftest yet. >>> >>> >>> (1) why KUnit exists >>> >>>> ## 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. >>> >>> (2) KUnit is not meant to replace kselftest >>> >>>> ## 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. >>> >>> My understanding is that the intent of KUnit is to avoid booting a kernel on >>> real hardware or in a virtual machine.  That seems to be a matter of semantics >>> to me because isn't invoking a UML Linux just running the Linux kernel in >>> a different form of virtualization? >>> >>> So I do not understand why KUnit is an improvement over kselftest. > > They are in two different categories. Kselftest falls into black box > regression test suite which is a collection of user-space tests with a > few kernel test modules back-ending the tests in some cases. > > Kselftest can be used by both kernel developers and users and provides > a good way to regression test releases in test rings. > > KUnit is a white box category and is a better fit as unit test framework > for development and provides a in-kernel testing. I wouldn't view them > one replacing the other. They just provide coverage for different areas > of testing. I don't see what about kselftest or KUnit is inherently black box or white box. I would expect both frameworks to be used for either type of testing. > I wouldn't view KUnit as something that would be easily run in test rings for example. I don't see why not. -Frank > > Brendan, does that sound about right? > >>> >>> It seems to me that KUnit is just another piece of infrastructure that I >>> am going to have to be familiar with as a kernel developer.  More overhead, >>> more information to stuff into my tiny little brain. >>> >>> I would guess that some developers will focus on just one of the two test >>> environments (and some will focus on both), splitting the development >>> resources instead of pooling them on a common infrastructure. > >>> What am I missing? >> >> kselftest provides no in-kernel framework for testing kernel code >> specifically.  That should be what kunit provides, an "easy" way to >> write in-kernel tests for things. >> >> Brendan, did I get it right? > thanks, > -- Shuah > . > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hOXQn-00030Q-8F for linux-um@lists.infradead.org; Thu, 09 May 2019 01:01:06 +0000 Received: by mail-pg1-x544.google.com with SMTP id t22so259169pgi.10 for ; Wed, 08 May 2019 18:01:04 -0700 (PDT) Subject: Re: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework References: <20190501230126.229218-1-brendanhiggins@google.com> <54940124-50df-16ec-1a32-ad794ee05da7@gmail.com> <20190507080119.GB28121@kroah.com> <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> From: Frank Rowand Message-ID: <911e44bb-9bb1-e603-a260-fac63760fff6@gmail.com> Date: Wed, 8 May 2019 18:01:00 -0700 MIME-Version: 1.0 In-Reply-To: <1b1efa91-0523-21a9-e541-fdc3612bd117@kernel.org> Content-Language: en-US List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-um" Errors-To: linux-um-bounces+geert=linux-m68k.org@lists.infradead.org To: shuah , Greg KH Cc: pmladek@suse.com, linux-doc@vger.kernel.org, amir73il@gmail.com, Brendan Higgins , dri-devel@lists.freedesktop.org, Alexander.Levin@microsoft.com, mpe@ellerman.id.au, linux-kselftest@vger.kernel.org, robh@kernel.org, linux-nvdimm@lists.01.org, khilman@baylibre.com, knut.omang@oracle.com, kieran.bingham@ideasonboard.com, wfg@linux.intel.com, joel@jms.id.au, rientjes@google.com, jdike@addtoit.com, dan.carpenter@oracle.com, devicetree@vger.kernel.org, linux-kbuild@vger.kernel.org, Tim.Bird@sony.com, linux-um@lists.infradead.org, rostedt@goodmis.org, julia.lawall@lip6.fr, dan.j.williams@intel.com, kunit-dev@googlegroups.com, richard@nod.at, sboyd@kernel.org, linux-kernel@vger.kernel.org, mcgrof@kernel.org, daniel@ffwll.ch, keescook@google.com, linux-fsdevel@vger.kernel.org, logang@deltatee.com T24gNS83LzE5IDg6MjMgQU0sIHNodWFoIHdyb3RlOgo+IE9uIDUvNy8xOSAyOjAxIEFNLCBHcmVn IEtIIHdyb3RlOgo+PiBPbiBNb24sIE1heSAwNiwgMjAxOSBhdCAwODoxNDoxMlBNIC0wNzAwLCBG cmFuayBSb3dhbmQgd3JvdGU6Cj4+PiBPbiA1LzEvMTkgNDowMSBQTSwgQnJlbmRhbiBIaWdnaW5z IHdyb3RlOgo+Pj4+ICMjIFRMRFIKPj4+Pgo+Pj4+IEkgcmViYXNlZCB0aGUgbGFzdCBwYXRjaHNl dCBvbiA1LjEtcmM3IGluIGhvcGVzIHRoYXQgd2UgY2FuIGdldCB0aGlzIGluCj4+Pj4gNS4yLgo+ Pj4+Cj4+Pj4gU2h1YWgsIEkgdGhpbmsgeW91LCBHcmVnIEtILCBhbmQgbXlzZWxmIHRhbGtlZCBv ZmYgdGhyZWFkLCBhbmQgd2UgYWdyZWVkCj4+Pj4gd2Ugd291bGQgbWVyZ2UgdGhyb3VnaCB5b3Vy IHRyZWUgd2hlbiB0aGUgdGltZSBjYW1lPyBBbSBJIHJlbWVtYmVyaW5nCj4+Pj4gY29ycmVjdGx5 Pwo+Pj4+Cj4+Pj4gIyMgQmFja2dyb3VuZAo+Pj4+Cj4+Pj4gVGhpcyBwYXRjaCBzZXQgcHJvcG9z ZXMgS1VuaXQsIGEgbGlnaHR3ZWlnaHQgdW5pdCB0ZXN0aW5nIGFuZCBtb2NraW5nCj4+Pj4gZnJh bWV3b3JrIGZvciB0aGUgTGludXgga2VybmVsLgo+Pj4+Cj4+Pj4gVW5saWtlIEF1dG90ZXN0IGFu ZCBrc2VsZnRlc3QsIEtVbml0IGlzIGEgdHJ1ZSB1bml0IHRlc3RpbmcgZnJhbWV3b3JrOwo+Pj4+ IGl0IGRvZXMgbm90IHJlcXVpcmUgaW5zdGFsbGluZyB0aGUga2VybmVsIG9uIGEgdGVzdCBtYWNo aW5lIG9yIGluIGEgVk0KPj4+PiBhbmQgZG9lcyBub3QgcmVxdWlyZSB0ZXN0cyB0byBiZSB3cml0 dGVuIGluIHVzZXJzcGFjZSBydW5uaW5nIG9uIGEgaG9zdAo+Pj4+IGtlcm5lbC4gQWRkaXRpb25h bGx5LCBLVW5pdCBpcyBmYXN0OiBGcm9tIGludm9jYXRpb24gdG8gY29tcGxldGlvbiBLVW5pdAo+ Pj4+IGNhbiBydW4gc2V2ZXJhbCBkb3plbiB0ZXN0cyBpbiB1bmRlciBhIHNlY29uZC4gQ3VycmVu dGx5LCB0aGUgZW50aXJlCj4+Pj4gS1VuaXQgdGVzdCBzdWl0ZSBmb3IgS1VuaXQgcnVucyBpbiB1 bmRlciBhIHNlY29uZCBmcm9tIHRoZSBpbml0aWFsCj4+Pj4gaW52b2NhdGlvbiAoYnVpbGQgdGlt ZSBleGNsdWRlZCkuCj4+Pj4KPj4+PiBLVW5pdCBpcyBoZWF2aWx5IGluc3BpcmVkIGJ5IEpVbml0 LCBQeXRob24ncyB1bml0dGVzdC5tb2NrLCBhbmQKPj4+PiBHb29nbGV0ZXN0L0dvb2dsZW1vY2sg Zm9yIEMrKy4gS1VuaXQgcHJvdmlkZXMgZmFjaWxpdGllcyBmb3IgZGVmaW5pbmcKPj4+PiB1bml0 IHRlc3QgY2FzZXMsIGdyb3VwaW5nIHJlbGF0ZWQgdGVzdCBjYXNlcyBpbnRvIHRlc3Qgc3VpdGVz LCBwcm92aWRpbmcKPj4+PiBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgZm9yIHJ1bm5pbmcgdGVzdHMs IG1vY2tpbmcsIHNweWluZywgYW5kIG11Y2ggbW9yZS4KPj4+Cj4+PiBBcyBhIHJlc3VsdCBvZiB0 aGUgZW1haWxzIHJlcGx5aW5nIHRvIHRoaXMgcGF0Y2ggdGhyZWFkLCBJIGFtIG5vdwo+Pj4gc3Rh cnRpbmcgdG8gbG9vayBhdCBrc2VsZnRlc3QuwqAgTXkgbGV2ZWwgb2YgdW5kZXJzdGFuZGluZyBp cyBiYXNlZAo+Pj4gb24gc29tZSBzbGlkZSBwcmVzZW50YXRpb25zLCBhbiBMV04gYXJ0aWNsZSwg aHR0cHM6Ly9rc2VsZnRlc3Qud2lraS5rZXJuZWwub3JnLwo+Pj4gYW5kIGEgX3RpbnlfIGJpdCBv ZiBsb29raW5nIGF0IGtzZWxmdGVzdCBjb2RlLgo+Pj4KPj4+IHRsO2RyOyBJIGRvbid0IHJlYWxs eSB1bmRlcnN0YW5kIGtzZWxmdGVzdCB5ZXQuCj4+Pgo+Pj4KPj4+ICgxKSB3aHkgS1VuaXQgZXhp c3RzCj4+Pgo+Pj4+ICMjIFdoYXQncyBzbyBzcGVjaWFsIGFib3V0IHVuaXQgdGVzdGluZz8KPj4+ Pgo+Pj4+IEEgdW5pdCB0ZXN0IGlzIHN1cHBvc2VkIHRvIHRlc3QgYSBzaW5nbGUgdW5pdCBvZiBj b2RlIGluIGlzb2xhdGlvbiwKPj4+PiBoZW5jZSB0aGUgbmFtZS4gVGhlcmUgc2hvdWxkIGJlIG5v IGRlcGVuZGVuY2llcyBvdXRzaWRlIHRoZSBjb250cm9sIG9mCj4+Pj4gdGhlIHRlc3Q7IHRoaXMg bWVhbnMgbm8gZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLCB3aGljaCBtYWtlcyB0ZXN0cyBvcmRlcnMK Pj4+PiBvZiBtYWduaXR1ZGVzIGZhc3Rlci4gTGlrZXdpc2UsIHNpbmNlIHRoZXJlIGFyZSBubyBl eHRlcm5hbCBkZXBlbmRlbmNpZXMsCj4+Pj4gdGhlcmUgYXJlIG5vIGhvb3BzIHRvIGp1bXAgdGhy b3VnaCB0byBydW4gdGhlIHRlc3RzLiBBZGRpdGlvbmFsbHksIHRoaXMKPj4+PiBtYWtlcyB1bml0 IHRlc3RzIGRldGVybWluaXN0aWM6IGEgZmFpbGluZyB1bml0IHRlc3QgYWx3YXlzIGluZGljYXRl cyBhCj4+Pj4gcHJvYmxlbS4gRmluYWxseSwgYmVjYXVzZSB1bml0IHRlc3RzIG5lY2Vzc2FyaWx5 IGhhdmUgZmluZXIgZ3JhbnVsYXJpdHksCj4+Pj4gdGhleSBhcmUgYWJsZSB0byB0ZXN0IGFsbCBj b2RlIHBhdGhzIGVhc2lseSBzb2x2aW5nIHRoZSBjbGFzc2ljIHByb2JsZW0KPj4+PiBvZiBkaWZm aWN1bHR5IGluIGV4ZXJjaXNpbmcgZXJyb3IgaGFuZGxpbmcgY29kZS4KPj4+Cj4+PiAoMikgS1Vu aXQgaXMgbm90IG1lYW50IHRvIHJlcGxhY2Uga3NlbGZ0ZXN0Cj4+Pgo+Pj4+ICMjIElzIEtVbml0 IHRyeWluZyB0byByZXBsYWNlIG90aGVyIHRlc3RpbmcgZnJhbWV3b3JrcyBmb3IgdGhlIGtlcm5l bD8KPj4+Pgo+Pj4+IE5vLiBNb3N0IGV4aXN0aW5nIHRlc3RzIGZvciB0aGUgTGludXgga2VybmVs IGFyZSBlbmQtdG8tZW5kIHRlc3RzLCB3aGljaAo+Pj4+IGhhdmUgdGhlaXIgcGxhY2UuIEEgd2Vs bCB0ZXN0ZWQgc3lzdGVtIGhhcyBsb3RzIG9mIHVuaXQgdGVzdHMsIGEKPj4+PiByZWFzb25hYmxl IG51bWJlciBvZiBpbnRlZ3JhdGlvbiB0ZXN0cywgYW5kIHNvbWUgZW5kLXRvLWVuZCB0ZXN0cy4g S1VuaXQKPj4+PiBpcyBqdXN0IHRyeWluZyB0byBhZGRyZXNzIHRoZSB1bml0IHRlc3Qgc3BhY2Ug d2hpY2ggaXMgY3VycmVudGx5IG5vdAo+Pj4+IGJlaW5nIGFkZHJlc3NlZC4KPj4+Cj4+PiBNeSB1 bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlIGludGVudCBvZiBLVW5pdCBpcyB0byBhdm9pZCBib290 aW5nIGEga2VybmVsIG9uCj4+PiByZWFsIGhhcmR3YXJlIG9yIGluIGEgdmlydHVhbCBtYWNoaW5l LsKgIFRoYXQgc2VlbXMgdG8gYmUgYSBtYXR0ZXIgb2Ygc2VtYW50aWNzCj4+PiB0byBtZSBiZWNh dXNlIGlzbid0IGludm9raW5nIGEgVU1MIExpbnV4IGp1c3QgcnVubmluZyB0aGUgTGludXgga2Vy bmVsIGluCj4+PiBhIGRpZmZlcmVudCBmb3JtIG9mIHZpcnR1YWxpemF0aW9uPwo+Pj4KPj4+IFNv IEkgZG8gbm90IHVuZGVyc3RhbmQgd2h5IEtVbml0IGlzIGFuIGltcHJvdmVtZW50IG92ZXIga3Nl bGZ0ZXN0Lgo+IAo+IFRoZXkgYXJlIGluIHR3byBkaWZmZXJlbnQgY2F0ZWdvcmllcy4gS3NlbGZ0 ZXN0IGZhbGxzIGludG8gYmxhY2sgYm94Cj4gcmVncmVzc2lvbiB0ZXN0IHN1aXRlIHdoaWNoIGlz IGEgY29sbGVjdGlvbiBvZiB1c2VyLXNwYWNlIHRlc3RzIHdpdGggYQo+IGZldyBrZXJuZWwgdGVz dCBtb2R1bGVzIGJhY2stZW5kaW5nIHRoZSB0ZXN0cyBpbiBzb21lIGNhc2VzLgo+IAo+IEtzZWxm dGVzdCBjYW4gYmUgdXNlZCBieSBib3RoIGtlcm5lbCBkZXZlbG9wZXJzIGFuZCB1c2VycyBhbmQg cHJvdmlkZXMKPiBhIGdvb2Qgd2F5IHRvIHJlZ3Jlc3Npb24gdGVzdCByZWxlYXNlcyBpbiB0ZXN0 IHJpbmdzLgo+IAo+IEtVbml0IGlzIGEgd2hpdGUgYm94IGNhdGVnb3J5IGFuZCBpcyBhIGJldHRl ciBmaXQgYXMgdW5pdCB0ZXN0IGZyYW1ld29yawo+IGZvciBkZXZlbG9wbWVudCBhbmQgcHJvdmlk ZXMgYSBpbi1rZXJuZWwgdGVzdGluZy4gSSB3b3VsZG4ndCB2aWV3IHRoZW0KPiBvbmUgcmVwbGFj aW5nIHRoZSBvdGhlci4gVGhleSBqdXN0IHByb3ZpZGUgY292ZXJhZ2UgZm9yIGRpZmZlcmVudCBh cmVhcwo+IG9mIHRlc3RpbmcuCgpJIGRvbid0IHNlZSB3aGF0IGFib3V0IGtzZWxmdGVzdCBvciBL VW5pdCBpcyBpbmhlcmVudGx5IGJsYWNrIGJveCBvcgp3aGl0ZSBib3guICBJIHdvdWxkIGV4cGVj dCBib3RoIGZyYW1ld29ya3MgdG8gYmUgdXNlZCBmb3IgZWl0aGVyIHR5cGUKb2YgdGVzdGluZy4K Cgo+IEkgd291bGRuJ3QgdmlldyBLVW5pdCBhcyBzb21ldGhpbmcgdGhhdCB3b3VsZCBiZSBlYXNp bHkgcnVuIGluIHRlc3QgcmluZ3MgZm9yIGV4YW1wbGUuCgpJIGRvbid0IHNlZSB3aHkgbm90LgoK LUZyYW5rCgo+IAo+IEJyZW5kYW4sIGRvZXMgdGhhdCBzb3VuZCBhYm91dCByaWdodD8KPiAKPj4+ Cj4+PiBJdCBzZWVtcyB0byBtZSB0aGF0IEtVbml0IGlzIGp1c3QgYW5vdGhlciBwaWVjZSBvZiBp bmZyYXN0cnVjdHVyZSB0aGF0IEkKPj4+IGFtIGdvaW5nIHRvIGhhdmUgdG8gYmUgZmFtaWxpYXIg d2l0aCBhcyBhIGtlcm5lbCBkZXZlbG9wZXIuwqAgTW9yZSBvdmVyaGVhZCwKPj4+IG1vcmUgaW5m b3JtYXRpb24gdG8gc3R1ZmYgaW50byBteSB0aW55IGxpdHRsZSBicmFpbi4KPj4+Cj4+PiBJIHdv dWxkIGd1ZXNzIHRoYXQgc29tZSBkZXZlbG9wZXJzIHdpbGwgZm9jdXMgb24ganVzdCBvbmUgb2Yg dGhlIHR3byB0ZXN0Cj4+PiBlbnZpcm9ubWVudHMgKGFuZCBzb21lIHdpbGwgZm9jdXMgb24gYm90 aCksIHNwbGl0dGluZyB0aGUgZGV2ZWxvcG1lbnQKPj4+IHJlc291cmNlcyBpbnN0ZWFkIG9mIHBv b2xpbmcgdGhlbSBvbiBhIGNvbW1vbiBpbmZyYXN0cnVjdHVyZS4KPiAKPj4+IFdoYXQgYW0gSSBt aXNzaW5nPwo+Pgo+PiBrc2VsZnRlc3QgcHJvdmlkZXMgbm8gaW4ta2VybmVsIGZyYW1ld29yayBm b3IgdGVzdGluZyBrZXJuZWwgY29kZQo+PiBzcGVjaWZpY2FsbHkuwqAgVGhhdCBzaG91bGQgYmUg d2hhdCBrdW5pdCBwcm92aWRlcywgYW4gImVhc3kiIHdheSB0bwo+PiB3cml0ZSBpbi1rZXJuZWwg dGVzdHMgZm9yIHRoaW5ncy4KPj4KPj4gQnJlbmRhbiwgZGlkIEkgZ2V0IGl0IHJpZ2h0Pwo+IHRo YW5rcywKPiAtLSBTaHVhaAo+IC4KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC11bSBtYWlsaW5nIGxpc3QKbGludXgtdW1AbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LXVtCg==