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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A8B2C001DE for ; Tue, 15 Aug 2023 15:56:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A4E6E940022; Tue, 15 Aug 2023 11:56:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D949940020; Tue, 15 Aug 2023 11:56:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7DC4E940022; Tue, 15 Aug 2023 11:56:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6BACA940020 for ; Tue, 15 Aug 2023 11:56:36 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4A279B25C9 for ; Tue, 15 Aug 2023 15:56:36 +0000 (UTC) X-FDA: 81126791592.21.64EF31F Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf27.hostedemail.com (Postfix) with ESMTP id 7C0C840022 for ; Tue, 15 Aug 2023 15:56:34 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf27.hostedemail.com: domain of andre.przywara@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=andre.przywara@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692114994; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X11AuKtTvNC2UkBqL4LZFW9s6HCPxq5R6zq+xDkPXv8=; b=qHNKiRBRNv/YdV2Xe0q+6W2+PeOZceZGlmDlIi3eJbvqQcUXhr4gDytECD3KjOffiADFGu adtp/Z+uMOK7VRGGagUSoXkHREWeVwZb4s9kRN8jJccu96o3EGAKqF+S1omsGlHcsCAWr8 HIObwZqzHboXyR2TJnYpSm5e7wTuzvg= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf27.hostedemail.com: domain of andre.przywara@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=andre.przywara@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692114994; a=rsa-sha256; cv=none; b=MZ22wRE+S4PU066uREeiCEJj1hkEtaxmFpS9FDtTo9Cna9Q8lOfy3OsNLT42liZnEXsCYk +eRRbMufrtguyABqGMW5l/sg/aixB4j1DWWaCtJB9p1kkTrbtwg5wi5bKdHUGVbvtWtQrd reRmAklxGaSNLMkPacpdfj7SK4I9qXY= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CA2F21515; Tue, 15 Aug 2023 08:57:15 -0700 (PDT) Received: from donnerap.arm.com (donnerap.manchester.arm.com [10.32.100.58]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7B6893F6C4; Tue, 15 Aug 2023 08:56:32 -0700 (PDT) From: Andre Przywara To: Shuah Khan , Nhat Pham , Johannes Weiner Cc: linux-kselftest@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] selftests: cachestat: test for cachestat availability Date: Tue, 15 Aug 2023 16:56:12 +0100 Message-Id: <20230815155612.2535947-4-andre.przywara@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230815155612.2535947-1-andre.przywara@arm.com> References: <20230815155612.2535947-1-andre.przywara@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 7C0C840022 X-Stat-Signature: biceggzuszjxfk4m1ajiqgunqa6o1myb X-HE-Tag: 1692114994-702761 X-HE-Meta: U2FsdGVkX18s1eZO23EIPr29VeC94HrY8yaOMRiC7ZQD9gd9CW1xDLpgZUXq8VB0xUi0K/P266LDYUxcw05xLtNHnbkloYDU6roV49jS98Xfmp8O6q8JDw30pH4mcdWCPr4/LI2wabvMPEg3uZalopaH0HB3AdyCvxEQEs2dgwbTjZGYhRVsGZu8x/BTNbUUSVq54hgvZZBo5gH0BXTLwyKIQUIY/ol8b+fnXhhGqhhO6cDeEIbTBzoxjqyn3iY274jpKzThWKsbZlb2IwcPWxqrC8ilSu1KwMleZWfD1KPS8G3BRj2srjaGzaiDXAbMrttJdnk4rRwMAmzfzNXFqJarHaDrlzHv+Hq2ZyNyufAPIkyMcJBADKU4HPhi4tKsRcAmheTSBTMRYddmPEePxrmZn7jC06H0OFV3ROOsxArnVv4BMUkamOOUQWttw71xMW8eRgI0K/eYGWDgR2/GpmqNwq0Q4Gt5MXaS8fUZuiNH+A+ZR1gE+U1K5JpzK0e3xvh3v9x8/hxAfKHpHeK/Wo70zp78eI7TtGUmESu3OWnoTkhUD5K4n6bRVIi0jAWPmZGaPZK5Wea9N+ssRbJ4yjlBOLfQsTl0ao1m2HAz4sSF4w4HykfLeaR/i796qy2o/InVNTijwDdMt85CHbgheY53JFErEq9/3qXfSSbWchXmcSysr+Ye806WeAGmBLCnd03r0OXTFt3hKuZRv8M0vsj2+CfDhKU50aTU2IM5a0U2k5v66BwbZMvGfpbi/rTOEo6qKyoXY1ZHwKhYVNmLkpB3cm8PpSo3tTWG4ShUPU4IYApf5f/npsoWRMqmcjIqny++a1gMJ2ca6ST7GNoxSG3hHfHADbWOwfmG1wHyT9HsCoEQNPEjYyNlt7Hyr5+ZZMQzUHzEG1C4aBqb1z/77ViJhKbiZULE4xrjWvhOqQ3tj/MeMNVyVfryQnIxwNf20uxVGMkNdp3dXDyw9Yx c7sviKFo 8i+P+VNwuZv4uxT6r+T6j41GqvW94xb2+LmaPzxyrCaTqV8y66z4/WQP2urTtDeYvmhObF5R/lxOQh3IT5tWXledMvvmE9QJHLzqCzsObh5uBKbUYuB57SkgTVd+EHps4tsyluKPVvTFMhIe5xFp8WMRFcw== 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: As cachestat is a new syscall, it won't be available on older kernels, for instance those running on a build machine. In this case, a run reports all tests as "not ok" at the moment. Test for the cachestat syscall availability first, before doing further tests, and bail out early with a TAP SKIP comment. This also uses the opportunity to add the proper TAP headers, and add one check for the syscall error handling (illegal file descriptor). Signed-off-by: Andre Przywara --- .../selftests/cachestat/test_cachestat.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/cachestat/test_cachestat.c b/tools/testing/selftests/cachestat/test_cachestat.c index a5a4ac8dcb76c..77620e7ecf562 100644 --- a/tools/testing/selftests/cachestat/test_cachestat.c +++ b/tools/testing/selftests/cachestat/test_cachestat.c @@ -15,6 +15,8 @@ #include "../kselftest.h" +#define NR_TESTS 8 + static const char * const dev_files[] = { "/dev/zero", "/dev/null", "/dev/urandom", "/proc/version", "/proc" @@ -235,7 +237,25 @@ bool test_cachestat_shmem(void) int main(void) { - int ret = 0; + int ret; + + ksft_print_header(); + + ret = syscall(__NR_cachestat, -1, NULL, NULL, 0); + if (ret == -1 && errno == ENOSYS) { + printf("1..0 # Skipped: cachestat syscall not available\n"); + return KSFT_SKIP; + } + + ksft_set_plan(NR_TESTS); + + if (ret == -1 && errno == EBADF) { + ksft_test_result_pass("bad file descriptor recognized\n"); + ret = 0; + } else { + ksft_test_result_fail("bad file descriptor ignored\n"); + ret = 1; + } for (int i = 0; i < 5; i++) { const char *dev_filename = dev_files[i]; -- 2.25.1