From patchwork Tue Jan 4 06:57:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yang Xu \\(Fujitsu\\)" X-Patchwork-Id: 1575003 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=fujitsu.com header.i=@fujitsu.com header.a=rsa-sha256 header.s=170520fj header.b=QHlEG+Vi; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JSk2N3v1Yz9sXM for ; Tue, 4 Jan 2022 17:57:32 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id F18573C90B9 for ; Tue, 4 Jan 2022 07:57:29 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [217.194.8.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 60AFF3C21F9 for ; Tue, 4 Jan 2022 07:57:19 +0100 (CET) Received: from mail1.bemta34.messagelabs.com (mail1.bemta34.messagelabs.com [195.245.231.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by in-4.smtp.seeweb.it (Postfix) with ESMTPS id C0D7E1000970 for ; Tue, 4 Jan 2022 07:57:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1641279437; i=@fujitsu.com; bh=3Fg8mY39HkZi5vsItE5wYTUIYeL3ji8hwBiLbfCiQMk=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=QHlEG+ViwePNoaX/+lCXbzQuK28gqDg2SWTAOXW5n/LfAIUE6FbQLBnLOEc1A2W+W kfxPq3GKICCU6mUCAOHyyl3s9imWcwYOjYYmPSKD8308YHede60RruuDs8nLW8VGwZ rYahO41OnRApMYAC+WpcXz2qgwn2m0ZJ56/LdtpqC2DM5SpGAALx6vtVIcfuUTN0vI tHP/SIfNviFF8sGcPn4GO3S8N8kK6Mu54ZS8JhuJEYOcP8ft9dGdrrMlFhf7F5bHRs pdDB967Qb4Ihes9dwFXtp3OPBewvOQllPdYbTWddzrHiMlusaNAn4N+YM6LJHYSWOm ThUWfCSxLPKCQ== Received: from [100.115.32.243] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-2.bemta.az-a.eu-west-2.aws.ess.symcld.net id EA/DD-27579-DCFE3D16; Tue, 04 Jan 2022 06:57:17 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrCIsWRWlGSWpSXmKPExsViZ8MxSffs+8u JBo1bRC1WfN/B6MDose/3OtYAxijWzLyk/IoE1oz9+9eyFawUq2jb0MzewPhEqIuRi0NI4Cyj xPP+BnYIZyeTxLtV85ggnN2MEk/WbWPuYuTkYBPQlHjWuQDMFhGQkOhoeMsOYjMLqEssn/SLC cQWFoiVmDZrFQuIzSKgInHh2QGwel4BD4mNi/rBaiQEFCSmPHwPFReUODnzCQvEHAmJgy9eME PUKEpc6vjGCGFXSMya1QbVqyZx9dwm5gmM/LOQtM9C0r6AkWkVo3VSUWZ6RkluYmaOrqGBga6 hoamusamuoYmlXmKVbqJeaqlueWpxia6RXmJ5sV5qcbFecWVuck6KXl5qySZGYGCmFCtP3cF4 etVPvUOMkhxMSqK8GScvJwrxJeWnVGYkFmfEF5XmpBYfYpTh4FCS4K14DZQTLEpNT61Iy8wBR glMWoKDR0mE9+c7oDRvcUFibnFmOkTqFKOilDhvHUhCACSRUZoH1waLzEuMslLCvIwMDAxCPA WpRbmZJajyrxjFORiVhHn7QabwZOaVwE1/BbSYCWjxOTmwxSWJCCmpBqYa8cfBfb83thlr7n1 pXz+3etaS1IpZ+lE/wnonrZOY7er9YSbD4xtWGWfyZRWlZ887tNal8/7T3fbTy5bZ6KyPKYvd aXb461nNFK+SXzprk8rORrze8C5hQkKg7gx3e436D5oiVceMxBdP/jvP3DDtR9DlyJvq3OmP9 3VxXT0xS+L0KR9eg2Lpd2a/nBzSDCQltrI9NM37Mrn3xYdfxx+93BB8YqlUk/KJm+USQrfVKv cvO3fgzGmJ8wkaLpw99xhjrLIK41y+clrHKvs55hcXdLdeettxQnzqo7kze9N0Pkd+amS6Ofd XTsMrvvWp833V/F9NvHikXiy+4sVU99npHZmTrZR+2STabi9+9kOJpTgj0VCLuag4EQAqeJma RwMAAA== X-Env-Sender: xuyang2018.jy@fujitsu.com X-Msg-Ref: server-11.tower-548.messagelabs.com!1641279437!336020!1 X-Originating-IP: [62.60.8.146] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.81.7; banners=-,-,- X-VirusChecked: Checked Received: (qmail 15491 invoked from network); 4 Jan 2022 06:57:17 -0000 Received: from unknown (HELO n03ukasimr02.n03.fujitsu.local) (62.60.8.146) by server-11.tower-548.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 4 Jan 2022 06:57:17 -0000 Received: from n03ukasimr02.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTP id 016AD10034F for ; Tue, 4 Jan 2022 06:57:17 +0000 (GMT) Received: from R01UKEXCASM126.r01.fujitsu.local (unknown [10.183.43.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTPS id E86A11000FE for ; Tue, 4 Jan 2022 06:57:16 +0000 (GMT) Received: from localhost.localdomain (10.167.220.84) by R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Tue, 4 Jan 2022 06:56:54 +0000 From: Yang Xu To: Date: Tue, 4 Jan 2022 14:57:17 +0800 Message-ID: <1641279439-2421-1-git-send-email-xuyang2018.jy@fujitsu.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 X-Originating-IP: [10.167.220.84] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) X-Virus-Scanned: clamav-milter 0.102.4 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-4.smtp.seeweb.it Subject: [LTP] [PATCH v1 1/3] lib/tst_kconfig: Modify the return type of tst_kconfig_check function X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" So this function can be used to detect whether the function succeeded in shell api by its return value. Signed-off-by: Yang Xu --- include/tst_kconfig.h | 2 +- lib/tst_kconfig.c | 21 ++++++++++++--------- lib/tst_test.c | 4 ++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/include/tst_kconfig.h b/include/tst_kconfig.h index 1bb21fea8..050687c69 100644 --- a/include/tst_kconfig.h +++ b/include/tst_kconfig.h @@ -53,6 +53,6 @@ void tst_kconfig_read(struct tst_kconfig_var vars[], size_t vars_len); * * @param kconfigs NULL-terminated array of config strings needed for the testrun. */ -void tst_kconfig_check(const char *const kconfigs[]); +int tst_kconfig_check(const char *const kconfigs[]); #endif /* TST_KCONFIG_H__ */ diff --git a/lib/tst_kconfig.c b/lib/tst_kconfig.c index d433b8cf6..dc7decff9 100644 --- a/lib/tst_kconfig.c +++ b/lib/tst_kconfig.c @@ -478,22 +478,26 @@ static void dump_vars(const struct tst_expr *expr) } } -void tst_kconfig_check(const char *const kconfigs[]) +int tst_kconfig_check(const char *const kconfigs[]) { size_t expr_cnt = array_len(kconfigs); struct tst_expr *exprs[expr_cnt]; unsigned int i, var_cnt; - int abort_test = 0; + int ret = 0; for (i = 0; i < expr_cnt; i++) { exprs[i] = tst_bool_expr_parse(kconfigs[i]); - if (!exprs[i]) - tst_brk(TBROK, "Invalid kconfig expression!"); + if (!exprs[i]) { + tst_res(TWARN, "Invalid kconfig expression!"); + return 1; + } } - if (validate_vars(exprs, expr_cnt)) - tst_brk(TBROK, "Invalid kconfig variables!"); + if (validate_vars(exprs, expr_cnt)) { + tst_res(TWARN, "Invalid kconfig variables!"); + return 1; + } var_cnt = get_var_cnt(exprs, expr_cnt); struct tst_kconfig_var vars[var_cnt]; @@ -506,7 +510,7 @@ void tst_kconfig_check(const char *const kconfigs[]) int val = tst_bool_expr_eval(exprs[i], map); if (val != 1) { - abort_test = 1; + ret = 1; tst_res(TINFO, "Constraint '%s' not satisfied!", kconfigs[i]); dump_vars(exprs[i]); } @@ -519,8 +523,7 @@ void tst_kconfig_check(const char *const kconfigs[]) free(vars[i].val); } - if (abort_test) - tst_brk(TCONF, "Aborting due to unsuitable kernel config, see above!"); + return ret; } char tst_kconfig_get(const char *confname) diff --git a/lib/tst_test.c b/lib/tst_test.c index 23fc0ebf4..f0bf97743 100644 --- a/lib/tst_test.c +++ b/lib/tst_test.c @@ -1016,8 +1016,8 @@ static void do_setup(int argc, char *argv[]) if (tst_test->tconf_msg) tst_brk(TCONF, "%s", tst_test->tconf_msg); - if (tst_test->needs_kconfigs) - tst_kconfig_check(tst_test->needs_kconfigs); + if (tst_test->needs_kconfigs && tst_kconfig_check(tst_test->needs_kconfigs)) + tst_brk(TCONF, "Aborting due to unsuitable kernel config, see above!"); assert_test_fn(); From patchwork Tue Jan 4 06:57:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yang Xu \\(Fujitsu\\)" X-Patchwork-Id: 1575004 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=fujitsu.com header.i=@fujitsu.com header.a=rsa-sha256 header.s=170520fj header.b=y6ZshrRY; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JSk2b5RFnz9sXM for ; Tue, 4 Jan 2022 17:57:43 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 8701A3C8FE3 for ; Tue, 4 Jan 2022 07:57:41 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-2.smtp.seeweb.it (in-2.smtp.seeweb.it [217.194.8.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 1DCDA3C1D3C for ; Tue, 4 Jan 2022 07:57:19 +0100 (CET) Received: from mail1.bemta32.messagelabs.com (mail1.bemta32.messagelabs.com [195.245.230.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by in-2.smtp.seeweb.it (Postfix) with ESMTPS id 1B31F653A57 for ; Tue, 4 Jan 2022 07:57:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1641279438; i=@fujitsu.com; bh=CceJcMUa/+lo1xon+FKVml9EEcfEBKFdfDu6/J5ldr8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=y6ZshrRYNpm5sZoDIGsxs7rvxyDuV6wtkjDcIhreTdFIjl/8tFCQB6qA/5AcEFtl/ /6ykLh4F4cZtiagiefkyGqCP43+8FT7eCgzYN0vRQepPBz1wWi1tIE6hoTkSov8iI9 XnFhL2p+IB/o3HF5eeLczhQgwmOyCuINRa8MsPJzhXOMwdGnyoK5nHHBrjwpIJIDCs cFKADHCM9qH2BB88fi0Ll0k7e7qgHJVSnbAcy5vFutC911xMlBssP1b38P3JmAz9m4 CwEgy3QMxz2YjecQLY46Q0NhpEJ+YCy3ZK+RfkDwmRD1BxgXdnPbB1DCx2erEitznh V9iECCULcl0eA== Received: from [100.115.6.48] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-3.bemta.az-a.eu-west-1.aws.ess.symcld.net id CE/C2-13695-ECFE3D16; Tue, 04 Jan 2022 06:57:18 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrEIsWRWlGSWpSXmKPExsViZ8MxSffs+8u JBp/Xy1is+L6D0YHRY9/vdawBjFGsmXlJ+RUJrBnfDk5iLejNq7ixYwJLA+Px2C5GTg4hgbOM Enu7vSDsnUwS0/5pdzFyAdm7GSXur3/PDJJgE9CUeNa5AMwWEZCQ6Gh4yw5iMwuoSyyf9IsJx BYWMJGYuv8qmM0ioCKxeMppoBoODl4BD4mtV7JBwhICChJTHoKM5ODgFPCUOLdVDGKth0TPlu lsIDavgKDEyZlPWCCmS0gcfPGCGaJVUeJSxzdGCLtCYtasNiYIW03i6rlNzBMYBWchaZ+FpH0 BI9MqRsukosz0jJLcxMwcXUMDA11DQ1NdY10LM73EKt1EvdRS3fLU4hJdQ73E8mK91OJiveLK 3OScFL281JJNjMDgTSlmDtvB+Kf3p94hRkkOJiVR3oyTlxOF+JLyUyozEosz4otKc1KLDzHKc HAoSfBWvAbKCRalpqdWpGXmACMJJi3BwaMkwvvzHVCat7ggMbc4Mx0idYpRl2Pn6cWLmIVY8v LzUqXEeetAigRAijJK8+BGwKL6EqOslDAvIwMDgxBPQWpRbmYJqvwrRnEORiVh3n6QKTyZeSV wm14BHcEEdMQ5ObAjShIRUlINTBbd5/OCnhztEGnhWNzavHLJbMF254K2htBLBbwr3jo/tbjC c0L7vkq388Eq0x2rbgj/3Lve5cD/Xz7RMkelgl7LPvj35trL0qZ5By6/XVsdbj2fsyxKT7TMb tPBO60TapqcXt+f/nXXWXOWZPP03R4eOmzSiXP/27FMEvH8tnTZIgHp99qH+g/6l+x+ZbJxZ8 fVZXfO/Jhi3JlhIWkmKfhw+qtKY8GVXRXB+osZZsvbfK/TswzwUuUPqfKqnrpA3j4jaNb867M fbjuz4uPSH89ypjLMcln34t1yxXmCsysZL/zkvCHVULTqiALXoe9bbH+Wb24/Kll7jKlY7fkZ 3aVBBtuXzDm/4uA0BcHZ29iUWIozEg21mIuKEwEr1xv3ZQMAAA== X-Env-Sender: xuyang2018.jy@fujitsu.com X-Msg-Ref: server-21.tower-587.messagelabs.com!1641279437!57453!1 X-Originating-IP: [62.60.8.146] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.81.7; banners=-,-,- X-VirusChecked: Checked Received: (qmail 28805 invoked from network); 4 Jan 2022 06:57:17 -0000 Received: from unknown (HELO n03ukasimr02.n03.fujitsu.local) (62.60.8.146) by server-21.tower-587.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 4 Jan 2022 06:57:17 -0000 Received: from n03ukasimr02.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTP id 04A9E100354 for ; Tue, 4 Jan 2022 06:57:17 +0000 (GMT) Received: from R01UKEXCASM126.r01.fujitsu.local (unknown [10.183.43.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTPS id EBE1C100331 for ; Tue, 4 Jan 2022 06:57:16 +0000 (GMT) Received: from localhost.localdomain (10.167.220.84) by R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Tue, 4 Jan 2022 06:57:04 +0000 From: Yang Xu To: Date: Tue, 4 Jan 2022 14:57:18 +0800 Message-ID: <1641279439-2421-2-git-send-email-xuyang2018.jy@fujitsu.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1641279439-2421-1-git-send-email-xuyang2018.jy@fujitsu.com> References: <1641279439-2421-1-git-send-email-xuyang2018.jy@fujitsu.com> MIME-Version: 1.0 X-Originating-IP: [10.167.220.84] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) X-Virus-Scanned: clamav-milter 0.102.4 at in-2.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-2.smtp.seeweb.it Subject: [LTP] [PATCH v1 2/3] shell: add kconfig parse api X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" Use tst_check_kconfigs command to call tst_kconfig_check function in internal. It introduces three variables in tst_test.sh TST_NEEDS_KCONFIGS TST_NEEDS_KCONFIG_IFS (default value is comma) TST_TCONF_IF_KCONFIG (default value is 1, 0 means to use TWRAN and case continue) Also, we can use tst_check_kconfigs in your shell case if you want to skip subtest case instead the whole test. ps:Don't use array in tst_require_kconfigs because dash doesn't support shell array. Fixes:#891 Suggested-by: Petr Vorel Suggested-by: Cyril Hrubis Signed-off-by: Yang Xu --- doc/shell-test-api.txt | 57 +++++++++++++------ lib/newlib_tests/runtest.sh | 4 +- lib/newlib_tests/shell/tst_check_kconfig01.sh | 26 +++++++++ lib/newlib_tests/shell/tst_check_kconfig02.sh | 16 ++++++ lib/newlib_tests/shell/tst_check_kconfig03.sh | 15 +++++ lib/newlib_tests/shell/tst_check_kconfig04.sh | 16 ++++++ lib/newlib_tests/shell/tst_check_kconfig05.sh | 26 +++++++++ lib/newlib_tests/shell/tst_check_kconfig06.sh | 17 ++++++ testcases/lib/.gitignore | 1 + testcases/lib/Makefile | 4 +- testcases/lib/tst_check_kconfigs.c | 17 ++++++ testcases/lib/tst_test.sh | 41 +++++++++++++ 12 files changed, 221 insertions(+), 19 deletions(-) create mode 100755 lib/newlib_tests/shell/tst_check_kconfig01.sh create mode 100755 lib/newlib_tests/shell/tst_check_kconfig02.sh create mode 100755 lib/newlib_tests/shell/tst_check_kconfig03.sh create mode 100755 lib/newlib_tests/shell/tst_check_kconfig04.sh create mode 100755 lib/newlib_tests/shell/tst_check_kconfig05.sh create mode 100755 lib/newlib_tests/shell/tst_check_kconfig06.sh create mode 100644 testcases/lib/tst_check_kconfigs.c diff --git a/doc/shell-test-api.txt b/doc/shell-test-api.txt index b993a9e1e..c742fff39 100644 --- a/doc/shell-test-api.txt +++ b/doc/shell-test-api.txt @@ -193,22 +193,23 @@ simply by setting right '$TST_NEEDS_FOO'. [options="header"] |============================================================================= -| Variable name | Action done -| 'TST_NEEDS_ROOT' | Exit the test with 'TCONF' unless executed under root. -| | Alternatively the 'tst_require_root' command can be used. -| 'TST_NEEDS_TMPDIR' | Create test temporary directory and cd into it. -| 'TST_NEEDS_DEVICE' | Prepare test temporary device, the path to testing - device is stored in '$TST_DEVICE' variable. - The option implies 'TST_NEEDS_TMPDIR'. -| 'TST_NEEDS_CMDS' | String with command names that has to be present for - the test (see below). -| 'TST_NEEDS_MODULE' | Test module name needed for the test (see below). -| 'TST_NEEDS_DRIVERS'| Checks kernel drivers support for the test. -| 'TST_TIMEOUT' | Maximum timeout set for the test in sec. Must be int >= 1, - or -1 (special value to disable timeout), default is 300. - Variable is meant be set in tests, not by user. - It's an equivalent of `tst_test.timeout` in C, can be set - via 'tst_set_timeout(timeout)' after test has started. +| Variable name | Action done +| 'TST_NEEDS_ROOT' | Exit the test with 'TCONF' unless executed under root. +| | Alternatively the 'tst_require_root' command can be used. +| 'TST_NEEDS_TMPDIR' | Create test temporary directory and cd into it. +| 'TST_NEEDS_DEVICE' | Prepare test temporary device, the path to testing + device is stored in '$TST_DEVICE' variable. + The option implies 'TST_NEEDS_TMPDIR'. +| 'TST_NEEDS_CMDS' | String with command names that has to be present for + the test (see below). +| 'TST_NEEDS_MODULE' | Test module name needed for the test (see below). +| 'TST_NEEDS_DRIVERS' | Checks kernel drivers support for the test. +| 'TST_NEEDS_KCONFIGS'| Checks kernel kconfigs support for the test (see below). +| 'TST_TIMEOUT' | Maximum timeout set for the test in sec. Must be int >= 1, + or -1 (special value to disable timeout), default is 300. + Variable is meant be set in tests, not by user. + It's an equivalent of `tst_test.timeout` in C, can be set + via 'tst_set_timeout(timeout)' after test has started. |============================================================================= [options="header"] @@ -742,3 +743,27 @@ TST_NEEDS_CHECKPOINTS=1 Since both the implementations are compatible, it's also possible to start a child binary process from a shell test and synchronize with it. This process must have checkpoints initialized by calling 'tst_reinit()'. + +1.7 Parsing kernel .config +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The shell library provides an implementation of the kconfig parsing interface +compatible with the C version. + +It's possible to pass kernel kconfig list for tst_require_kconfigs api with +'$TST_NEEDS_KCONFIGS'. +Optional '$TST_NEEDS_KCONFIG_IFS' is used for splitting, default value is comma. +Optional '$TST_TCONF_IF_KCONFIG' is used for deciding how to exit the test if kernel +.config doesn't meet test's requirement, default value is 1(TCONF). Otherwise, just +use TWRAN and continue to run test. + +Now, we support the length of kconfig list is 10. + +------------------------------------------------------------------------------- +#!/bin/sh +TST_NEEDS_KCONFIGS="CONFIG_FS_EXT4 , CONFIG_QUOTACTL=y" +TST_NEEDS_KCONFIG_IFS="," +TST_TCONF_IF_KCONFIG=1 + +. tst_test.sh +------------------------------------------------------------------------------- diff --git a/lib/newlib_tests/runtest.sh b/lib/newlib_tests/runtest.sh index 8b2fe347a..1fb9e7f21 100755 --- a/lib/newlib_tests/runtest.sh +++ b/lib/newlib_tests/runtest.sh @@ -6,7 +6,9 @@ tst_needs_cmds01 tst_needs_cmds02 tst_needs_cmds03 tst_needs_cmds06 tst_needs_cmds07 tst_bool_expr test_exec test_timer tst_res_hexd tst_strstatus tst_fuzzy_sync03 test_zero_hugepage.sh}" -LTP_SHELL_API_TESTS="${LTP_SHELL_API_TESTS:-shell/tst_check_driver.sh shell/net/*.sh}" +LTP_SHELL_API_TESTS="${LTP_SHELL_API_TESTS:-shell/tst_check_driver.sh +shell/tst_check_kconfig0[1-5].sh shell/net/*.sh}" + cd $(dirname $0) PATH="$PWD/../../testcases/lib/:$PATH" diff --git a/lib/newlib_tests/shell/tst_check_kconfig01.sh b/lib/newlib_tests/shell/tst_check_kconfig01.sh new file mode 100755 index 000000000..dc09b6092 --- /dev/null +++ b/lib/newlib_tests/shell/tst_check_kconfig01.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. + +TST_TESTFUNC=do_test +TST_NEEDS_CMDS="tst_check_kconfigs" +TST_NEEDS_KCONFIGS="CONFIG_GENERIC_IRQ_PROBE=y, +CONFIG_GENERIC_IRQ_SHOW=y, +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y, +CONFIG_GENERIC_PENDING_IRQ=y, +CONFIG_GENERIC_IRQ_MIGRATION=y, +CONFIG_IRQ_DOMAIN=y, +CONFIG_IRQ_DOMAIN_HIERARCHY=y, +CONFIG_GENERIC_MSI_IRQ=y, +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y, +CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y, +CONFIG_GENERIC_IRQ_RESERVATION_MODE=y" + +. tst_test.sh + +do_test() +{ + tst_res TFAIL "Kconfig api only supports 10 kernel kconfigs!" +} + +tst_run diff --git a/lib/newlib_tests/shell/tst_check_kconfig02.sh b/lib/newlib_tests/shell/tst_check_kconfig02.sh new file mode 100755 index 000000000..d79f96ff2 --- /dev/null +++ b/lib/newlib_tests/shell/tst_check_kconfig02.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. + +TST_TESTFUNC=do_test +TST_NEEDS_CMDS="tst_check_kconfigs" +TST_NEEDS_KCONFIGS="CONFIG_EXT4" + +. tst_test.sh + +do_test() +{ + tst_res TFAIL "Kernel .config doesn't have CONFIG_EXT4!" +} + +tst_run diff --git a/lib/newlib_tests/shell/tst_check_kconfig03.sh b/lib/newlib_tests/shell/tst_check_kconfig03.sh new file mode 100755 index 000000000..c70f378f8 --- /dev/null +++ b/lib/newlib_tests/shell/tst_check_kconfig03.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. + +TST_TESTFUNC=do_test +TST_NEEDS_CMDS="tst_check_kconfigs" +TST_NEEDS_KCONFIGS="CONFIG_EXT4_FS: CONFIG_XFS_FS" +. tst_test.sh + +do_test() +{ + tst_res TFAIL "Invalid kconfig delimter!" +} + +tst_run diff --git a/lib/newlib_tests/shell/tst_check_kconfig04.sh b/lib/newlib_tests/shell/tst_check_kconfig04.sh new file mode 100755 index 000000000..42b07d287 --- /dev/null +++ b/lib/newlib_tests/shell/tst_check_kconfig04.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. + +TST_TESTFUNC=do_test +TST_NEEDS_CMDS="tst_check_kconfigs" +TST_NEEDS_KCONFIGS="CONFIG_EXT4_FS : CONFIG_XFS_FS" +TST_NEEDS_KCONFIG_IFS=":" +. tst_test.sh + +do_test() +{ + tst_res TPASS "Valid kconfig delimter!" +} + +tst_run diff --git a/lib/newlib_tests/shell/tst_check_kconfig05.sh b/lib/newlib_tests/shell/tst_check_kconfig05.sh new file mode 100755 index 000000000..6e5d5368b --- /dev/null +++ b/lib/newlib_tests/shell/tst_check_kconfig05.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. + +TST_TESTFUNC=do_test +TST_NEEDS_CMDS="tst_check_kconfigs" +. tst_test.sh + +do_test() +{ + tst_check_kconfigs "CONFIG_EXT4_FS" + if [ $? -eq 0 ]; then + tst_res TPASS "kernel .config has CONFIG_EXT4_fs." + else + tst_res TFAIL "kerenl .config doesn't have CONFIG_EXT4_FS." + fi + + tst_check_kconfigs "CONFIG_EXT4" + if [ $? -eq 0 ]; then + tst_res TFAIL "kernel .config has CONFIG_EXT4." + else + tst_res TPASS "kernel .config doesn't have CONFIG_EXT4." + fi +} + +tst_run diff --git a/lib/newlib_tests/shell/tst_check_kconfig06.sh b/lib/newlib_tests/shell/tst_check_kconfig06.sh new file mode 100755 index 000000000..6a6d68fd7 --- /dev/null +++ b/lib/newlib_tests/shell/tst_check_kconfig06.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (c) 2021 FUJITSU LIMITED. All rights reserved. + +TST_TESTFUNC=do_test +TST_NEEDS_CMDS="tst_check_kconfigs" +TST_NEEDS_KCONFIGS="CONFIG_EXT4" +TST_TCONF_IF_KCONFIG=0 + +. tst_test.sh + +do_test() +{ + tst_res TPASS "Kernel .config doesn't have CONFIG_EXT4!" +} + +tst_run diff --git a/testcases/lib/.gitignore b/testcases/lib/.gitignore index 9625d9043..c0d4dc851 100644 --- a/testcases/lib/.gitignore +++ b/testcases/lib/.gitignore @@ -1,4 +1,5 @@ /tst_check_drivers +/tst_check_kconfigs /tst_checkpoint /tst_device /tst_getconf diff --git a/testcases/lib/Makefile b/testcases/lib/Makefile index d6b4c7a91..0e40cc7e3 100644 --- a/testcases/lib/Makefile +++ b/testcases/lib/Makefile @@ -11,6 +11,6 @@ INSTALL_TARGETS := *.sh MAKE_TARGETS := tst_sleep tst_random tst_checkpoint tst_rod tst_kvcmp\ tst_device tst_net_iface_prefix tst_net_ip_prefix tst_net_vars\ tst_getconf tst_supported_fs tst_check_drivers tst_get_unused_port\ - tst_get_median tst_hexdump tst_get_free_pids tst_timeout_kill - + tst_get_median tst_hexdump tst_get_free_pids tst_timeout_kill\ + tst_check_kconfigs include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/testcases/lib/tst_check_kconfigs.c b/testcases/lib/tst_check_kconfigs.c new file mode 100644 index 000000000..fda322746 --- /dev/null +++ b/testcases/lib/tst_check_kconfigs.c @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright (c) 2021 FUJITSU LIMITED. All rights reserved.*/ + +#include +#include "tst_kconfig.h" + +int main(int argc, const char *argv[]) +{ + if (argc < 2) { + fprintf(stderr, "Please provide kernel kconfig list\n"); + return 1; + } + + if (tst_kconfig_check(argv+1)) + return 1; + return 0; +} diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh index 2556b28f5..c8134692e 100644 --- a/testcases/lib/tst_test.sh +++ b/testcases/lib/tst_test.sh @@ -412,6 +412,41 @@ tst_require_drivers() return 0 } +tst_require_kconfigs() +{ + [ $# -eq 0 ] && return 0 + + local kconfigs + local kconfig_i + local kconfig_max + + kconfigs=$@ + [ -z "$kconfigs" ] && return 0 + + tst_check_cmds cut tr wc + kconfig_max=$(( $(echo "$kconfigs" | tr -cd "$TST_NEEDS_KCONFIG_IFS" | wc -c) +1)) + if [ $kconfig_max -gt 10 ]; then + tst_brk TCONF "The max number of kconfig is 10!" + fi + + for kconfig_i in $(seq $kconfig_max); do + eval "local kconfig$kconfig_i" + eval "kconfig$kconfig_i='$(echo "$kconfigs" | cut -d"$TST_NEEDS_KCONFIG_IFS" -f$kconfig_i)'" + done + + tst_check_kconfigs $kconfig1 $kconfig2 $kconfig3 $kconfig4 $kconfig5 $kconfig6\ + $kconfig7 $kconfig8 $kconfig9 $kconfig10 + if [ $? -ne 0 ]; then + if [ $TST_TCONF_IF_KCONFIG -eq 1 ]; then + tst_brk TCONF "kconfig not available" + else + tst_res TWARN "kconfig not available" + fi + fi + + return 0 +} + tst_is_int() { [ "$1" -eq "$1" ] 2>/dev/null @@ -586,6 +621,7 @@ tst_run() OPTS|USAGE|PARSE_ARGS|POS_ARGS);; NEEDS_ROOT|NEEDS_TMPDIR|TMPDIR|NEEDS_DEVICE|DEVICE);; NEEDS_CMDS|NEEDS_MODULE|MODPATH|DATAROOT);; + NEEDS_KCONFIGS|NEEDS_KCONFIG_IFS|TCONF_IF_KCONFIG);; NEEDS_DRIVERS|FS_TYPE|MNTPOINT|MNT_PARAMS);; IPV6|IPV6_FLAG|IPVER|TEST_DATA|TEST_DATA_IFS);; RETRY_FUNC|RETRY_FN_EXP_BACKOFF|TIMEOUT);; @@ -626,6 +662,7 @@ tst_run() [ "$TST_DISABLE_APPARMOR" = 1 ] && tst_disable_apparmor [ "$TST_DISABLE_SELINUX" = 1 ] && tst_disable_selinux + tst_require_kconfigs $TST_NEEDS_KCONFIGS tst_require_cmds $TST_NEEDS_CMDS tst_require_drivers $TST_NEEDS_DRIVERS @@ -748,6 +785,10 @@ if [ -z "$TST_NO_DEFAULT_RUN" ]; then TST_TEST_DATA_IFS="${TST_TEST_DATA_IFS:- }" + TST_NEEDS_KCONFIG_IFS="${TST_NEEDS_KCONFIG_IFS:-,}" + + TST_TCONF_IF_KCONFIG="${TST_TCONF_IF_KCONFIG:-1}" + if [ -n "$TST_CNT" ]; then if ! tst_is_int "$TST_CNT"; then tst_brk TBROK "TST_CNT must be integer" From patchwork Tue Jan 4 06:57:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yang Xu \\(Fujitsu\\)" X-Patchwork-Id: 1575002 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=fujitsu.com header.i=@fujitsu.com header.a=rsa-sha256 header.s=170520fj header.b=O/4Md/+f; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JSk2G200Wz9sXM for ; Tue, 4 Jan 2022 17:57:23 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id BB3543C8FF0 for ; Tue, 4 Jan 2022 07:57:20 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-5.smtp.seeweb.it (in-5.smtp.seeweb.it [217.194.8.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 5CF6E3C1D3C for ; Tue, 4 Jan 2022 07:57:19 +0100 (CET) Received: from mail1.bemta36.messagelabs.com (mail1.bemta36.messagelabs.com [85.158.142.112]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by in-5.smtp.seeweb.it (Postfix) with ESMTPS id B22C060072B for ; Tue, 4 Jan 2022 07:57:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1641279438; i=@fujitsu.com; bh=xXS6wnhzMNkJ5S6TNTJOlhvCNUOnWPB2QdM8ekNKy+o=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=O/4Md/+foBUmGIbsTlQJ0hjNPFrrI4a1nV91cMya1zeH694MHgo9ChlTY95KDKhPe I4vYxHPkNU6xCfP54mLUTAOg5UTJuOF8MeJEaEmKm+H/bvexNQfMYaWpkKFplbv7Bx nWJF8zSTfe9w+cmRb/sMculShuMorVYVWdJsaaTXekcfyIRTmRtaP6yDCQfxlFvin2 tbQAEfO2lsMvm6ohHghZfO2+AKEvbMnah7IEwlL+f3Dp+3yeZ2v5HtZaXSu7PFj+bc xhh25l6QuTDpME1McyQjQq20NQmEBdfTm3eX6dH4t1Bqz0LEzod9ryAZRcDWy+Lpdk F3V/ax5VMcQew== Received: from [100.115.70.228] (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256 bits)) by server-3.bemta.az-a.eu-central-1.aws.ess.symcld.net id 67/8D-06990-DCFE3D16; Tue, 04 Jan 2022 06:57:17 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrFIsWRWlGSWpSXmKPExsViZ8MxSffs+8u JBie/yFms+L6D0YHRY9/vdawBjFGsmXlJ+RUJrBmndl5iLvjEU/Fk7jamBsYG7i5GLg4hgbOM Esf39DJBODuZJD5M284C4exmlNj7+hlQhpODTUBT4lnnAmYQW0RAQqKj4S07iM0soC6xfNIvs BphAUeJ9Rcfs4LYLAIqEi+fLAeL8wp4SFz49xKsXkJAQWLKw/dAczg4OAU8Jc5tFQMJCwGV9G yZzgZRLihxcuYTFojxEhIHX7xghmhVlLjU8Y0Rwq6QmDWrjQnCVpO4em4T8wRGwVlI2mchaV/ AyLSK0S6pKDM9oyQ3MTNH19DAQNfQ0FTX3FDX0NJAL7FKN1EvtVQ3OTWvpCgRKK2XWF6sl1pc rFdcmZuck6KXl1qyiREYzCnF7vt2ML7o+6l3iFGSg0lJlDfj5OVEIb6k/JTKjMTijPii0pzU4 kOMMhwcShK8Fa+BcoJFqempFWmZOcDIgklLcPAoifD+fAeU5i0uSMwtzkyHSJ1i1OVoebRkEb MQS15+XqqUOG8dSJEASFFGaR7cCFiUX2KUlRLmZWRgYBDiKUgtys0sQZV/xSjOwagkzNsPMoU nM68EbtMroCOYgI44Jwd2REkiQkqqgclvC+MKz0uLInaaiwcHvuUMMjhj/uncikK2b38DT7fe YeUJmVGhuSru7fbAV6s+ZCvI1GV1CObI/bpVUaEgqF6/6mqoYZO6bd/9tX6mt87+vaxxIPDrz HNfnpyblLXo+eY5SeqaVdOKFv5zbhB8endX7Jakvj+Od4x/SBYmJvkEOb30DHrLJvtK6tRbvZ 3sL++eWPzoZm2j2AKO1aaX56qfCD+zpmW1VcbOn9N+eb9/d0J1ekzlxMN7TAW2pkddCPH1FI2 cyzwvMUjm9q1Z182LkyofmEzXu6QdJegeO//Kwp5Cu/Ot3HdcdsbH6nHz3i+f4PHM9JXH48m+ fGXrGz225wus9K7dc075jbXWS0UlluKMREMt5qLiRABbSGkybQMAAA== X-Env-Sender: xuyang2018.jy@fujitsu.com X-Msg-Ref: server-16.tower-532.messagelabs.com!1641279437!56490!1 X-Originating-IP: [62.60.8.146] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.81.7; banners=-,-,- X-VirusChecked: Checked Received: (qmail 19932 invoked from network); 4 Jan 2022 06:57:17 -0000 Received: from unknown (HELO n03ukasimr02.n03.fujitsu.local) (62.60.8.146) by server-16.tower-532.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 4 Jan 2022 06:57:17 -0000 Received: from n03ukasimr02.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTP id 0BD7A100445 for ; Tue, 4 Jan 2022 06:57:17 +0000 (GMT) Received: from R01UKEXCASM126.r01.fujitsu.local (unknown [10.183.43.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTPS id F2574100344 for ; Tue, 4 Jan 2022 06:57:16 +0000 (GMT) Received: from localhost.localdomain (10.167.220.84) by R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Tue, 4 Jan 2022 06:57:14 +0000 From: Yang Xu To: Date: Tue, 4 Jan 2022 14:57:19 +0800 Message-ID: <1641279439-2421-3-git-send-email-xuyang2018.jy@fujitsu.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1641279439-2421-1-git-send-email-xuyang2018.jy@fujitsu.com> References: <1641279439-2421-1-git-send-email-xuyang2018.jy@fujitsu.com> MIME-Version: 1.0 X-Originating-IP: [10.167.220.84] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM126.r01.fujitsu.local (10.183.43.178) X-Virus-Scanned: clamav-milter 0.102.4 at in-5.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-5.smtp.seeweb.it Subject: [LTP] [PATCH v1 3/3] sysctl/sysctl02.sh: Use kconfig shell api X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" Signed-off-by: Yang Xu --- testcases/commands/sysctl/sysctl02.sh | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/testcases/commands/sysctl/sysctl02.sh b/testcases/commands/sysctl/sysctl02.sh index 3964a9829..1c444268a 100755 --- a/testcases/commands/sysctl/sysctl02.sh +++ b/testcases/commands/sysctl/sysctl02.sh @@ -20,15 +20,14 @@ TST_CLEANUP=cleanup TST_CNT=4 TST_NEEDS_ROOT=1 TST_NEEDS_CMDS="sysctl" +TST_NEEDS_KCONFIGS="CONFIG_SYSCTL=y, CONFIG_PROC_FS=y" sys_name="fs.file-max" sys_file="/proc/sys/fs/file-max" -syms_file="/proc/kallsyms" . tst_test.sh setup() { - [ ! -f "$sys_file" ] && tst_brk TCONF "$sys_file not enabled" orig_value=$(cat "$sys_file") } @@ -61,17 +60,15 @@ sysctl_test_overflow() sysctl_test_zero() { - [ ! -f "$syms_file" ] && tst_brk TCONF "$syms_file not enabled" + tst_check_kconfigs "CONFIG_KALLSYMS=y" "CONFIG_KALLSYMS_ALL=y" "CONFIG_KASAN=y" \ + || tst_brk TCONF "kconfig doesn't meet test's requirement!" + ROD sysctl -w -q $sys_name=0 - if grep -q kasan_report $syms_file; then - if dmesg | grep -q "KASAN: global-out-of-bounds in __do_proc_doulongvec_minmax"; then - tst_res TFAIL "$sys_file is set 0 and trigger a KASAN error" - else - tst_res TPASS "$sys_file is set 0 and doesn't trigger a KASAN error" - fi + if dmesg | grep -q "KASAN: global-out-of-bounds in __do_proc_doulongvec_minmax"; then + tst_res TFAIL "$sys_file is set 0 and trigger a KASAN error" else - tst_res TCONF "kernel doesn't support KASAN" + tst_res TPASS "$sys_file is set 0 and doesn't trigger a KASAN error" fi }