From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 8E249335067; Tue, 28 Apr 2026 20:44:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777409083; cv=none; b=KWIASDgpmClZeoyUHTRsoHWbDmRTPTqthz5bxL7XFk6nVXH7Bul0474ejvvyiermyuD7PsD+OJ0BZRUQQsysfzekD2JYTph1Ijh5wohMFP2yPmJRG7CyRQnE+sMEkGuqaaaF8YropLrinX+i+pXaCUjzboY66EgLL5pLKGtrCUA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777409083; c=relaxed/simple; bh=FcE7V5Mvmmd2+FOco4bSM+J6XXXcmQOY5rP3hPMkKUk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Dsiki24LPSw9ILl3UdK2n17k91qqr6+b422pq4DrDI36ooPXFIdxsenfphdosmGI2EZO2jzd7bfxPnL1JfXxJzaJnUPS+hOBs+7T4sSLXn2bzne+hu80x3X08S6TvSDXqCSpGgUTaMnFuVaH7crq1XsqKEDi0MprO6JQpvi53q8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Id4M4KXK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Id4M4KXK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26A77C2BCB3; Tue, 28 Apr 2026 20:44:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777409083; bh=FcE7V5Mvmmd2+FOco4bSM+J6XXXcmQOY5rP3hPMkKUk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Id4M4KXK8BtwDs6OdHyCqMPWKhqfZvnSgajs8Q3H3UpHX7SSt+GopMiO3xLRE+M4p E+L/cC7StlMzfmUtEpLoXrbIq/3fIPC8TVggZQM8hpfh+YAWUEHEHMW43OCcG4oZQ9 O5apk3wWg4Reii+dfXqf2e2tBbiSN+B9H+kXtwfU177WvC9bpT+27XpxLliNpgdFh6 OoGtQ7EGGMwCCauDQG43CZhcdGyAJnaU97OXStYmPumHe2LnBwM2zFlmZ/z57FfB9Y sRoOl6EAJauiYdm6d7tt7WMmrm4p2yLq68YKj5Nu3S6gZ3FULrcDyL5v59tXfXLoh/ fA9h0KNPe4e6A== From: Mike Rapoport To: Andrew Morton , David Hildenbrand Cc: Baolin Wang , Barry Song , Dev Jain , Donet Tom , Jason Gunthorpe , John Hubbard , "Liam R. Howlett" , Lance Yang , Leon Romanovsky , Lorenzo Stoakes , Luiz Capitulino , Mark Brown , Michal Hocko , Mike Rapoport , Nico Pache , Peter Xu , Ryan Roberts , Sarthak Sharma , Shuah Khan , Suren Baghdasaryan , Vlastimil Babka , Zi Yan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v3 17/54] selftests/mm: protection_keys: use kselftest framework Date: Tue, 28 Apr 2026 23:42:03 +0300 Message-ID: <20260428204240.1924129-18-rppt@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260428204240.1924129-1-rppt@kernel.org> References: <20260428204240.1924129-1-rppt@kernel.org> 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: "Mike Rapoport (Microsoft)" Convert protection_keys test to use kselftest framework for reporting and tracking successful and failing runs. Adjust dprintf0() printouts to use "#" in the beginning of the line for TAP compatibility. Signed-off-by: Mike Rapoport (Microsoft) --- tools/testing/selftests/mm/pkey-helpers.h | 6 +++-- tools/testing/selftests/mm/protection_keys.c | 26 +++++++++++--------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/tools/testing/selftests/mm/pkey-helpers.h b/tools/testing/selftests/mm/pkey-helpers.h index 7c29f075e40b..ae010b075417 100644 --- a/tools/testing/selftests/mm/pkey-helpers.h +++ b/tools/testing/selftests/mm/pkey-helpers.h @@ -71,10 +71,12 @@ static inline void sigsafe_printf(const char *format, ...) extern void abort_hooks(void); #define pkey_assert(condition) do { \ if (!(condition)) { \ - dprintf0("assert() at %s::%d test_nr: %d iteration: %d\n", \ + dprintf0("# assert() at %s::%d test_nr: %d iteration: %d\n", \ __FILE__, __LINE__, \ test_nr, iteration_nr); \ - dprintf0("errno at assert: %d", errno); \ + dprintf0("# errno at assert: %d\n", errno); \ + ksft_test_result_fail("test %d (iteration %d)\n", \ + test_nr, iteration_nr); \ abort_hooks(); \ exit(__LINE__); \ } \ diff --git a/tools/testing/selftests/mm/protection_keys.c b/tools/testing/selftests/mm/protection_keys.c index 80c6124e8378..d617b41dda6b 100644 --- a/tools/testing/selftests/mm/protection_keys.c +++ b/tools/testing/selftests/mm/protection_keys.c @@ -136,6 +136,7 @@ static void tracing_off(void) void abort_hooks(void) { + fflush(stdout); fprintf(stderr, "running %s()...\n", __func__); tracing_off(); #ifdef SLEEP_ON_ABORT @@ -370,8 +371,8 @@ static void signal_handler(int signum, siginfo_t *si, void *vucontext) if ((si->si_code == SEGV_MAPERR) || (si->si_code == SEGV_ACCERR) || (si->si_code == SEGV_BNDERR)) { - printf("non-PK si_code, exiting...\n"); - exit(4); + dprintf0("# non-PK si_code: %d, exiting...\n", si->si_code); + exit(1); } si_pkey_ptr = siginfo_get_pkey_ptr(si); @@ -719,7 +720,7 @@ static void setup_hugetlbfs(void) long hpagesz_mb; if (geteuid() != 0) { - fprintf(stderr, "WARNING: not run as root, can not do hugetlb test\n"); + ksft_print_msg("WARNING: not run as root, can not do hugetlb test\n"); return; } @@ -855,7 +856,7 @@ void expected_pkey_fault(int pkey) #define do_not_expect_pkey_fault(msg) do { \ if (last_pkey_faults != pkey_faults) \ - dprintf0("unexpected PKey fault: %s\n", msg); \ + dprintf0("# unexpected PKey fault: %s\n", msg); \ pkey_assert(last_pkey_faults == pkey_faults); \ } while (0) @@ -1753,7 +1754,7 @@ static void run_tests_once(void) tracing_off(); close_test_fds(); - printf("test %s PASSED (iteration %d)\n", pkey_tests[test_nr].name, iteration_nr); + ksft_test_result_pass("test %s (iteration %d)\n", pkey_tests[test_nr].name, iteration_nr); dprintf1("======================\n\n"); } iteration_nr++; @@ -1773,27 +1774,30 @@ int main(void) setup_handlers(); - printf("has pkeys: %d\n", pkeys_supported); + ksft_print_header(); if (!pkeys_supported) { int size = PAGE_SIZE; int *ptr; - printf("running PKEY tests for unsupported CPU/OS\n"); + ksft_set_plan(1); + ksft_print_msg("running PKEY tests for unsupported CPU/OS\n"); ptr = mmap(NULL, size, PROT_NONE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); assert(ptr != (void *)-1); test_mprotect_pkey_on_unsupported_cpu(ptr, 1); - exit(0); + ksft_test_result_pass("pkey on unsupported CPU/OS\n"); + ksft_finished(); } + ksft_set_plan(ARRAY_SIZE(pkey_tests) * nr_iterations); + pkey_setup_shadow(); - printf("startup pkey_reg: %016llx\n", read_pkey_reg()); + ksft_print_msg("startup pkey_reg: %016llx\n", read_pkey_reg()); setup_hugetlbfs(); while (nr_iterations-- > 0) run_tests_once(); - printf("done (all tests OK)\n"); - return 0; + ksft_finished(); } -- 2.53.0