Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp4109959img; Tue, 26 Mar 2019 03:14:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqxBx0I578D22YujYFhyb50YJ1HCJTYU5+vGW4+xw/kkGM4/+TR2o+zkS5DmmlJIlpQN8vRI X-Received: by 2002:a62:3001:: with SMTP id w1mr28450736pfw.59.1553595261248; Tue, 26 Mar 2019 03:14:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553595261; cv=none; d=google.com; s=arc-20160816; b=wzACKCB4RVbfWn+4Y9m5IfczdpUz3aCMPvr+5Cq0t1fMllk6g2pVLZi0DEUxhAmw/d wOHNjkJZcdnNUou3NeM0WYovT8hPrNiShttY0sit3Z98eQxRDU6Ksvm0ufQW32YqKKjN M4aa3YFLm8BbP1r5XCA/JfW+mnu9dSguzKisoMBTI0r0op3GrOtV7JZmTDMIglnxb8xm 3NSp9F8n/DxulhhBs2WxzKv0GiqBDshFUIj60jbQPA5jEaa80k9nn/ZuEg+QrQXgKUq3 ssjc6Huyt+PhzK20wWYW2XU8FoGB7fBa21PvxA7QLvK4Kq0tT+G78EltRNRF95HY6Zlo fmFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:organization:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=muAHU5fpM2iiK7/kuHHt3C0p0x9njQ5IN30nFaMoRkk=; b=OtYnnZXrQzpkvb5n5WjYpFcUXLjksgoUslsMcaWePj0pbM8WYzJSqu5mM7YbhT0HFG E3/oUJPYLl7MuqkKjveXXfwe02QEt87BEypLjcTRYWggw2ewnXe4II3b+ZP8tA3Z2nzr Mg2DR5XcISO/dCTmccP8XL+Njwg0osWVc3Rihg0GJ9qbDzkG0tchrR+IW9v4vtjqoPpE vOJXsHPQY0TKNljHms1dnRyN/d5Qk/b/Lk+OTSLy1iwAGVvyIABJkAY8U8wE3ybMFEbz NJgIcMcA1c6e12Ndorny7xJoFCjG5tl/qrplQJNUW5JI1tzkiPTve6EdUeKuBr5Boeze LeHQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n5si15642646pgn.105.2019.03.26.03.14.05; Tue, 26 Mar 2019 03:14:21 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731003AbfCZKMs (ORCPT + 99 others); Tue, 26 Mar 2019 06:12:48 -0400 Received: from mga09.intel.com ([134.134.136.24]:4030 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726175AbfCZKMs (ORCPT ); Tue, 26 Mar 2019 06:12:48 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Mar 2019 03:12:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,271,1549958400"; d="scan'208";a="137344286" Received: from smile.fi.intel.com (HELO smile) ([10.237.72.86]) by orsmga003.jf.intel.com with ESMTP; 26 Mar 2019 03:12:44 -0700 Received: from andy by smile with local (Exim 4.92) (envelope-from ) id 1h8j4U-0001AK-Vi; Tue, 26 Mar 2019 12:12:42 +0200 Date: Tue, 26 Mar 2019 12:12:42 +0200 From: Andy Shevchenko To: Yury Norov Cc: Andrew Morton , Rasmus Villemoes , Arnd Bergmann , Kees Cook , Matthew Wilcox , Tetsuo Handa , Yury Norov , linux-kernel@vger.kernel.org Subject: Re: [PATCH 6/6] lib/test_bitmap: add tests for bitmap_parselist_user Message-ID: <20190326101242.GU9224@smile.fi.intel.com> References: <20190325210748.6571-1-ynorov@marvell.com> <20190325210748.6571-7-ynorov@marvell.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190325210748.6571-7-ynorov@marvell.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 26, 2019 at 12:07:48AM +0300, Yury Norov wrote: > Propagate existing bitmap_parselist() tests to bitmap_parselist_user(). Increasing test coverage is a good point, Reviewed-by: Andy Shevchenko for all test related patches > > Signed-off-by: Yury Norov > --- > lib/test_bitmap.c | 46 ++++++++++++++++++++++++++++++++++++---------- > 1 file changed, 36 insertions(+), 10 deletions(-) > > diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c > index 709424a788ee..d4ecac0da160 100644 > --- a/lib/test_bitmap.c > +++ b/lib/test_bitmap.c > @@ -11,6 +11,7 @@ > #include > #include > #include > +#include > > static unsigned total_tests __initdata; > static unsigned failed_tests __initdata; > @@ -278,39 +279,63 @@ static const struct test_bitmap_parselist parselist_tests[] __initconst = { > {-EINVAL, "0-\n", NULL, 8, 0}, > }; > > -static void __init test_bitmap_parselist(void) > +static void __init __test_bitmap_parselist(int is_user) > { > int i; > int err; > ktime_t time; > DECLARE_BITMAP(bmap, 2048); > + char *mode = is_user ? "_user" : ""; > > for (i = 0; i < ARRAY_SIZE(parselist_tests); i++) { > #define ptest parselist_tests[i] > > - time = ktime_get(); > - err = bitmap_parselist(ptest.in, bmap, ptest.nbits); > - time = ktime_get() - time; > + if (is_user) { > + mm_segment_t orig_fs = get_fs(); > + size_t len = strlen(ptest.in); > + > + set_fs(KERNEL_DS); > + time = ktime_get(); > + err = bitmap_parselist_user(ptest.in, len, > + bmap, ptest.nbits); > + time = ktime_get() - time; > + set_fs(orig_fs); > + } else { > + time = ktime_get(); > + err = bitmap_parselist(ptest.in, bmap, ptest.nbits); > + time = ktime_get() - time; > + } > > if (err != ptest.errno) { > - pr_err("test %d: input is %s, errno is %d, expected %d\n", > - i, ptest.in, err, ptest.errno); > + pr_err("parselist%s: %d: input is %s, errno is %d, expected %d\n", > + mode, i, ptest.in, err, ptest.errno); > continue; > } > > if (!err && ptest.expected > && !__bitmap_equal(bmap, ptest.expected, ptest.nbits)) { > - pr_err("test %d: input is %s, result is 0x%lx, expected 0x%lx\n", > - i, ptest.in, bmap[0], *ptest.expected); > + pr_err("parselist%s: %d: input is %s, result is 0x%lx, expected 0x%lx\n", > + mode, i, ptest.in, bmap[0], > + *ptest.expected); > continue; > } > > if (ptest.flags & PARSE_TIME) > - pr_err("test %d: input is '%s' OK, Time: %llu\n", > - i, ptest.in, time); > + pr_err("parselist%s: %d: input is '%s' OK, Time: %llu\n", > + mode, i, ptest.in, time); > } > } > > +static void __init test_bitmap_parselist(void) > +{ > + __test_bitmap_parselist(0); > +} > + > +static void __init test_bitmap_parselist_user(void) > +{ > + __test_bitmap_parselist(1); > +} > + > #define EXP_BYTES (sizeof(exp) * 8) > > static void __init test_bitmap_arr32(void) > @@ -383,6 +408,7 @@ static int __init test_bitmap_init(void) > test_copy(); > test_bitmap_arr32(); > test_bitmap_parselist(); > + test_bitmap_parselist_user(); > test_mem_optimisations(); > > if (failed_tests == 0) > -- > 2.17.1 > -- With Best Regards, Andy Shevchenko