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=-8.5 required=3.0 tests=INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 ED2CCC4CECC for ; Mon, 27 Apr 2020 18:39:17 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B0D05205C9 for ; Mon, 27 Apr 2020 18:39:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B0D05205C9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 467C38E0005; Mon, 27 Apr 2020 14:39:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 418B48E0001; Mon, 27 Apr 2020 14:39:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2E0198E0005; Mon, 27 Apr 2020 14:39:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0217.hostedemail.com [216.40.44.217]) by kanga.kvack.org (Postfix) with ESMTP id 143578E0001 for ; Mon, 27 Apr 2020 14:39:17 -0400 (EDT) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id C00E5181AC9CB for ; Mon, 27 Apr 2020 18:39:16 +0000 (UTC) X-FDA: 76754497512.14.flock55_6e147a4578813 X-HE-Tag: flock55_6e147a4578813 X-Filterd-Recvd-Size: 6524 Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by imf19.hostedemail.com (Postfix) with ESMTP for ; Mon, 27 Apr 2020 18:39:16 +0000 (UTC) Received: by mail-pl1-f194.google.com with SMTP id t7so1390507plr.0 for ; Mon, 27 Apr 2020 11:39:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=aJjRKvHUuurfa5tTmPiIRcId8pwnjrxFIxb83E9PK2E=; b=mVT5tRR091H77B2Flze/hgYa5xemQLeengfXtl+Tmfu6qWX9vh4IzwYouxHFPdS5MB 80V/aBpWIgoSUbZ8MNXiwviUHc9ROYGmtqeSXFA7vZJnF2h4knSkl2XfVdK0BWYjAmAm tsAivz21QYCKAuCaRVAxHAG50jkXc9vNtLfe816koLbA0W8cEC8LdKAoVj9hxv9Dzpw+ ATWQmGsSdOSzSNDpDewfL/9Bkvdl9XI17fnLtd90rtwN0LYpdzQtyxOVjcJAcPBF2+hZ DLRbzAH8vR39X9F8a766dCdQU9tWqDDpH4RW7diugfdu4o/2rq/mCJbrGuJRxl6ohRZr gRng== X-Gm-Message-State: AGi0PuYefmJz2upNR+rlnorh6eVZDRQ5KGmXGzUTEssstN6M73EvsqQy ElRhJ7vpPoKutknH8q7t8j4= X-Google-Smtp-Source: APiQypJXPXTBI691XNB890WMBtVuzThUhN2h6cKf1GRBcpDHp6H/0dkj0d9MxWqJ3k40ylJ/xg6sQQ== X-Received: by 2002:a17:902:a40e:: with SMTP id p14mr23117257plq.297.1588012755305; Mon, 27 Apr 2020 11:39:15 -0700 (PDT) Received: from 42.do-not-panic.com (42.do-not-panic.com. [157.230.128.187]) by smtp.gmail.com with ESMTPSA id v127sm12730060pfv.77.2020.04.27.11.39.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Apr 2020 11:39:14 -0700 (PDT) Received: by 42.do-not-panic.com (Postfix, from userid 1000) id 53962403AB; Mon, 27 Apr 2020 18:39:13 +0000 (UTC) Date: Mon, 27 Apr 2020 18:39:13 +0000 From: Luis Chamberlain To: Vlastimil Babka Cc: Andrew Morton , Kees Cook , Iurii Zaikin , linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, linux-mm@kvack.org, Ivan Teterevkov , Michal Hocko , David Rientjes , Matthew Wilcox , "Eric W . Biederman" , "Guilherme G . Piccoli" , Alexey Dobriyan , Thomas Gleixner , Greg Kroah-Hartman , Christian Brauner , Masami Hiramatsu Subject: Re: [PATCH v3 5/5] lib/test_sysctl: support testing of sysctl. boot parameter Message-ID: <20200427183913.GH11244@42.do-not-panic.com> References: <20200427180433.7029-1-vbabka@suse.cz> <20200427180433.7029-6-vbabka@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200427180433.7029-6-vbabka@suse.cz> User-Agent: Mutt/1.10.1 (2018-07-13) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Mon, Apr 27, 2020 at 08:04:33PM +0200, Vlastimil Babka wrote: > Testing is done by a new parameter debug.test_sysctl.boot_int which defaults to > 0 and it's expected that the tester passes a boot parameter that sets it to 1. > The test checks if it's set to 1. To distinguish true failure from parameter > not being set, the test checks /proc/cmdline for the expected parameter, and > whether test_sysctl is built-in and not a module. > > Signed-off-by: Vlastimil Babka > --- > lib/test_sysctl.c | 13 +++++++++ > tools/testing/selftests/sysctl/sysctl.sh | 36 ++++++++++++++++++++++++ > 2 files changed, 49 insertions(+) > > diff --git a/lib/test_sysctl.c b/lib/test_sysctl.c > index 566dad3f4196..84eaae22d3a6 100644 > --- a/lib/test_sysctl.c > +++ b/lib/test_sysctl.c > @@ -44,6 +44,8 @@ struct test_sysctl_data { > int int_0002; > int int_0003[4]; > > + int boot_int; > + > unsigned int uint_0001; > > char string_0001[65]; > @@ -61,6 +63,8 @@ static struct test_sysctl_data test_data = { > .int_0003[2] = 2, > .int_0003[3] = 3, > > + .boot_int = 0, > + > .uint_0001 = 314, > > .string_0001 = "(none)", > @@ -91,6 +95,15 @@ static struct ctl_table test_table[] = { > .mode = 0644, > .proc_handler = proc_dointvec, > }, > + { > + .procname = "boot_int", > + .data = &test_data.boot_int, > + .maxlen = sizeof(test_data.boot_int), > + .mode = 0644, > + .proc_handler = proc_dointvec, > + .extra1 = SYSCTL_ZERO, > + .extra2 = SYSCTL_ONE, > + }, > { > .procname = "uint_0001", > .data = &test_data.uint_0001, > diff --git a/tools/testing/selftests/sysctl/sysctl.sh b/tools/testing/selftests/sysctl/sysctl.sh > index ce1eeea6f769..ef6417b8067b 100755 > --- a/tools/testing/selftests/sysctl/sysctl.sh > +++ b/tools/testing/selftests/sysctl/sysctl.sh > @@ -39,6 +39,7 @@ ALL_TESTS="$ALL_TESTS 0003:1:1:int_0002" > ALL_TESTS="$ALL_TESTS 0004:1:1:uint_0001" > ALL_TESTS="$ALL_TESTS 0005:3:1:int_0003" > ALL_TESTS="$ALL_TESTS 0006:50:1:bitmap_0001" > +ALL_TESTS="$ALL_TESTS 0007:1:1:boot_int" > > test_modprobe() > { > @@ -752,6 +753,40 @@ sysctl_test_0006() > run_bitmaptest > } > > +sysctl_test_0007() > +{ > + TARGET="${SYSCTL}/boot_int" > + if [ -d $DIR ]; then > + echo "Boot param test only possible sysctl_test is built-in, not module:" > + cat $TEST_DIR/config >&2 > + return 0 > + fi Nice, also we could just require diff --git a/tools/testing/selftests/sysctl/config b/tools/testing/selftests/sysctl/config index 6ca14800d755..34461cc99a2b 100644 --- a/tools/testing/selftests/sysctl/config +++ b/tools/testing/selftests/sysctl/config @@ -1 +1,3 @@ CONFIG_TEST_SYSCTL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y tools/testing/selftests/firmware/fw_lib.sh then has a kconfig_has() which can verify the exact config. > + > + echo -n "Testing if $TARGET is set to 1 ..." > + ORIG=$(cat "${TARGET}") This would fail if someone uses this script to test an older kernel, and the scripts in selftests are supposed to work with older kernels. One way to address this would be to just see if the file exists first and ignore the test if the $SYSCTL directory exists but the file $TARGET does not. For now we can just do this: if [ ! -d $TARGET ]; then echo "Skipping test for $TARGET as it is not present ..." return 0 fi Luis