From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailtransmit04.runbox.com (mailtransmit04.runbox.com [185.226.149.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 36661395D9B for ; Mon, 2 Mar 2026 10:18:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.226.149.37 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772446722; cv=none; b=Eoa7Gvyh/kc4drRffyS8J9vsRQbSlmp3SWw2gwwrI1poV0v9/br738qnFW9eNFUiSau4uJSNl8KtKg/Bpxp7wKShd70aZqlNlwKExYR9Top//1+6kJDfWgN7jjI8tVNmZWmSAiJLJA4rrovesmIniAXonphujEZvt+O2ApkRnOM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772446722; c=relaxed/simple; bh=5IwX7Xq9LPPMflMctz/LObqroKJVbPpDW97osJppcfo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Cn3repzT83AgcQE1ox8S3zntLschkdk+juakkoAzWVR3FKyCVJp99Kj2+OjIZ9d/iVWucHlYy7hkOqN9vxiXYNTZayAaMXVi7Iyn54k5j5134wHmFfRoRY0VJLPG22PsYVZdRSlnyYup5wETm4HhF7+1ebr/y1rpj8hGN9vcYhU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=runbox.com; dkim=pass (2048-bit key) header.d=runbox.com header.i=@runbox.com header.b=IMsWKAmO; arc=none smtp.client-ip=185.226.149.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=runbox.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=runbox.com header.i=@runbox.com header.b="IMsWKAmO" Received: from mailtransmit02.runbox ([10.9.9.162] helo=aibo.runbox.com) by mailtransmit04.runbox.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1vx0ME-0037zU-Vq; Mon, 02 Mar 2026 11:18:35 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=runbox.com; s=selector2; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To :Message-Id:Date:Subject:Cc:To:From; bh=8SH88166dxV2p/4Py6d86xiDUf9A5wxKjgItQsA1Rpo=; b=IMsWKAmOULt0u0BVOIbmzMp295 49vzWHaohs+LkiKnPQwy8zQtdqL0i0ZFKGcMpYhrMjbmYm/fQE1mkqME26w8jwOATFlhcQRF7nGAg RJ5o1FWtIwNgVzHKm3F/QbeBIU/MlCfh9npaOGvG7aNCXFvuM/9OVP+KmMXSoEmLT3eBz8fRWN4tM 79IykXCrfzvJ1WwvJNSbQBk+hHLhUI3biSYWE52DVE1Gkwjd0Wf0I06603XlVzeSOPOdMgPLi9H32 CoTmIL3QBy7flgrEYZ5jlPXzNTUB8sd97OBMQr4uc5ec1wsrnkGWf3a5dYtSWu/ANaLL7JLfjfkQv WLjCFw2g==; Received: from [10.9.9.72] (helo=submission01.runbox) by mailtransmit02.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1vx0MA-000522-KH; Mon, 02 Mar 2026 11:18:34 +0100 Received: by submission01.runbox with esmtpsa [Authenticated ID (1493616)] (TLS1.2:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.93) id 1vx0MA-006y7o-6q; Mon, 02 Mar 2026 11:18:30 +0100 From: david.laight.linux@gmail.com To: Willy Tarreau , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , linux-kernel@vger.kernel.org, Cheng Li Cc: David Laight Subject: [PATCH v4 next 07/23] selftests/nolibc: Let EXPECT_VFPRINTF() tests be skipped Date: Mon, 2 Mar 2026 10:17:59 +0000 Message-Id: <20260302101815.3043-8-david.laight.linux@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260302101815.3043-1-david.laight.linux@gmail.com> References: <20260302101815.3043-1-david.laight.linux@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: David Laight Tests that check explicit nolibc behavior (eg "%m") or test places where the nolibc behaviour deviates from the libc need skipping when compiled to use the host libc. Signed-off-by: David Laight --- Changes for v4: - Split out from patch 3. - Implement the 'skip' in EXPECT_VFPRINTF() not expect_vfprintf() to match the other tests. tools/testing/selftests/nolibc/nolibc-test.c | 34 ++++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c index 420f2d25e8cf..51390b709af1 100644 --- a/tools/testing/selftests/nolibc/nolibc-test.c +++ b/tools/testing/selftests/nolibc/nolibc-test.c @@ -1660,8 +1660,8 @@ int run_stdlib(int min, int max) return ret; } -#define EXPECT_VFPRINTF(expected, fmt, ...) \ - ret += expect_vfprintf(llen, expected, fmt, ##__VA_ARGS__) +#define EXPECT_VFPRINTF(cond, expected, fmt, ...) \ + do { if (!(cond)) result(llen, SKIPPED); else ret += expect_vfprintf(llen, expected, fmt, ##__VA_ARGS__); } while (0) #define VFPRINTF_LEN 20 static int expect_vfprintf(int llen, const char *expected, const char *fmt, ...) @@ -1837,21 +1837,21 @@ static int run_printf(int min, int max) * test numbers. */ switch (test + __LINE__ + 1) { - CASE_TEST(empty); EXPECT_VFPRINTF("", ""); break; - CASE_TEST(simple); EXPECT_VFPRINTF("foo", "foo"); break; - CASE_TEST(string); EXPECT_VFPRINTF("foo", "%s", "foo"); break; - CASE_TEST(number); EXPECT_VFPRINTF("1234", "%d", 1234); break; - CASE_TEST(negnumber); EXPECT_VFPRINTF("-1234", "%d", -1234); break; - CASE_TEST(unsigned); EXPECT_VFPRINTF("12345", "%u", 12345); break; - CASE_TEST(char); EXPECT_VFPRINTF("c", "%c", 'c'); break; - CASE_TEST(hex); EXPECT_VFPRINTF("f", "%x", 0xf); break; - CASE_TEST(pointer); EXPECT_VFPRINTF("0x1", "%p", (void *) 0x1); break; - CASE_TEST(uintmax_t); EXPECT_VFPRINTF("18446744073709551615", "%ju", 0xffffffffffffffffULL); break; - CASE_TEST(intmax_t); EXPECT_VFPRINTF("-9223372036854775807", "%jd", 0x8000000000000001LL); break; - CASE_TEST(truncation); EXPECT_VFPRINTF("0123456789012345678901234", "%s", "0123456789012345678901234"); break; - CASE_TEST(string_width); EXPECT_VFPRINTF(" 1", "%10s", "1"); break; - CASE_TEST(number_width); EXPECT_VFPRINTF(" 1", "%10d", 1); break; - CASE_TEST(width_trunc); EXPECT_VFPRINTF(" 1", "%25d", 1); break; + CASE_TEST(empty); EXPECT_VFPRINTF(1, "", ""); break; + CASE_TEST(simple); EXPECT_VFPRINTF(1, "foo", "foo"); break; + CASE_TEST(string); EXPECT_VFPRINTF(1, "foo", "%s", "foo"); break; + CASE_TEST(number); EXPECT_VFPRINTF(1, "1234", "%d", 1234); break; + CASE_TEST(negnumber); EXPECT_VFPRINTF(1, "-1234", "%d", -1234); break; + CASE_TEST(unsigned); EXPECT_VFPRINTF(1, "12345", "%u", 12345); break; + CASE_TEST(char); EXPECT_VFPRINTF(1, "c", "%c", 'c'); break; + CASE_TEST(hex); EXPECT_VFPRINTF(1, "f", "%x", 0xf); break; + CASE_TEST(pointer); EXPECT_VFPRINTF(1, "0x1", "%p", (void *) 0x1); break; + CASE_TEST(uintmax_t); EXPECT_VFPRINTF(1, "18446744073709551615", "%ju", 0xffffffffffffffffULL); break; + CASE_TEST(intmax_t); EXPECT_VFPRINTF(1, "-9223372036854775807", "%jd", 0x8000000000000001LL); break; + CASE_TEST(truncation); EXPECT_VFPRINTF(1, "0123456789012345678901234", "%s", "0123456789012345678901234"); break; + CASE_TEST(string_width); EXPECT_VFPRINTF(1, " 1", "%10s", "1"); break; + CASE_TEST(number_width); EXPECT_VFPRINTF(1, " 1", "%10d", 1); break; + CASE_TEST(width_trunc); EXPECT_VFPRINTF(1, " 1", "%25d", 1); break; CASE_TEST(scanf); EXPECT_ZR(1, test_scanf()); break; CASE_TEST(strerror); EXPECT_ZR(1, test_strerror()); break; CASE_TEST(printf_error); EXPECT_ZR(1, test_printf_error()); break; -- 2.39.5