Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp5914457rwl; Mon, 9 Jan 2023 01:22:18 -0800 (PST) X-Google-Smtp-Source: AMrXdXsnPSQNe4SeE/kicx966L2vsrpm2may6LbiSvwxoN4Aogh+MJNGyoRllhhttgXcOCbb2dAJ X-Received: by 2002:a05:6402:12cc:b0:494:cb3b:eb59 with SMTP id k12-20020a05640212cc00b00494cb3beb59mr10757784edx.12.1673256138319; Mon, 09 Jan 2023 01:22:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673256138; cv=none; d=google.com; s=arc-20160816; b=KHdMS7x3tMBpk9q+Rid/mU4wL4sh5rJL6vuRpyCCbhHH2WZqyAxL2haRjkRNoD2fzK YywwtibwFSFtkYW7SKrEpCqOiDHofr10bk52fNAlt+rDcGmbt6+LXGf9E2QSBcKQ+fCg vuCWqB3qx9NTRi/DkwXcri9SqIPZwnIVsd8wpaQSOjUKfcCPkeOOqLmJ4fLWxjerKGvm cCeiPAQmHY1vm30Aa/RuBKNc7EBdsuKlmVaVgRIxxM5Ov/nlSUzLnTaYFenWAuickgDw /I0770XHpApxv0X9MolBB2DAPy/pFxZPBF73Gi+VcKmt/fDdQFSTduwPO2RSOEh3hfP9 +1NA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=1cjuYEPGHAk6P4ORwkFgZWfKTcL6xeAyns82QT6GK64=; b=tvWX3SM7fsVKp8mvMw6KyumNkWMP3NUhDXxP0NujtaBxtzY9y1ngWjkmWoi8qcRcyl NnJXwLy/IUpK2Fwz5VOksSj+rXxQTH9ys1aZacLGWN8uIGiH50YhwAMPix2rm6189GyK N0QHPa1x+jJMdPNsp5U6/JaOmgQU2sUlCHUAPGppuP0MMOxyljJ77E5PSVWl7L3Ure/f 1FV55OMLvrdsVt5mrjyi0uh2qjEq7f0PH6yWG5Y0ybCbmzGykvXLDCKbnR3ZQu471z3n aKt2tqYpRU+vk4tqHUV7GirixWBTq1J8GvFtbBiIqUCja9f5U0M7zoxalGdDRBe4ZSe0 TaJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cq10-20020a056402220a00b0048544ebce3esi7470126edb.462.2023.01.09.01.22.05; Mon, 09 Jan 2023 01:22:18 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236884AbjAIInZ (ORCPT + 54 others); Mon, 9 Jan 2023 03:43:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236847AbjAIImY (ORCPT ); Mon, 9 Jan 2023 03:42:24 -0500 Received: from 1wt.eu (wtarreau.pck.nerim.net [62.212.114.60]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 30ADBDFBE for ; Mon, 9 Jan 2023 00:42:23 -0800 (PST) Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id 3098gG7L027441; Mon, 9 Jan 2023 09:42:16 +0100 From: Willy Tarreau To: "Paul E. McKenney" Cc: linux-kernel@vger.kernel.org, Ammar Faizi Subject: [PATCH 22/22] selftests/nolibc: Add `getpagesize(2)` selftest Date: Mon, 9 Jan 2023 09:42:08 +0100 Message-Id: <20230109084208.27355-23-w@1wt.eu> X-Mailer: git-send-email 2.17.5 In-Reply-To: <20230109084208.27355-1-w@1wt.eu> References: <20230109084208.27355-1-w@1wt.eu> X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ammar Faizi Test the getpagesize() function. Make sure it returns the correct value. Signed-off-by: Ammar Faizi --- tools/testing/selftests/nolibc/nolibc-test.c | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c index f14f5076fb6d..c4a0c915139c 100644 --- a/tools/testing/selftests/nolibc/nolibc-test.c +++ b/tools/testing/selftests/nolibc/nolibc-test.c @@ -442,6 +442,35 @@ int test_getdents64(const char *dir) return ret; } +static int test_getpagesize(void) +{ + long x = getpagesize(); + int c; + + if (x < 0) + return x; + +#if defined(__x86_64__) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) + /* + * x86 family is always 4K page. + */ + c = (x == 4096); +#elif defined(__aarch64__) + /* + * Linux aarch64 supports three values of page size: 4K, 16K, and 64K + * which are selected at kernel compilation time. + */ + c = (x == 4096 || x == (16 * 1024) || x == (64 * 1024)); +#else + /* + * Assuming other architectures must have at least 4K page. + */ + c = (x >= 4096); +#endif + + return !c; +} + /* Run syscall tests between IDs and . * Return 0 on success, non-zero on failure. */ @@ -502,6 +531,7 @@ int run_syscall(int min, int max) CASE_TEST(gettimeofday_bad2); EXPECT_SYSER(1, gettimeofday(NULL, (void *)1), -1, EFAULT); break; CASE_TEST(gettimeofday_bad2); EXPECT_SYSER(1, gettimeofday(NULL, (void *)1), -1, EFAULT); break; #endif + CASE_TEST(getpagesize); EXPECT_SYSZR(1, test_getpagesize()); break; CASE_TEST(ioctl_tiocinq); EXPECT_SYSZR(1, ioctl(0, TIOCINQ, &tmp)); break; CASE_TEST(ioctl_tiocinq); EXPECT_SYSZR(1, ioctl(0, TIOCINQ, &tmp)); break; CASE_TEST(link_root1); EXPECT_SYSER(1, link("/", "/"), -1, EEXIST); break; -- 2.17.5