From: Zhangjin Wu <falcon@tinylab.org>
To: w@1wt.eu
Cc: thomas@t-8ch.de, arnd@arndb.de, falcon@tinylab.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: [PATCH v1 02/17] selftests/nolibc: gettid: restore for glibc and musl
Date: Wed, 21 Jun 2023 20:54:53 +0800 [thread overview]
Message-ID: <7268483c95af54c95c1da6fd5d6d0d08c1be2392.1687344643.git.falcon@tinylab.org> (raw)
In-Reply-To: <cover.1687344643.git.falcon@tinylab.org>
As the gettid manpage [1] shows, glibc 2.30 has gettid support, so,
let's enable the test for glibc >= 2.30.
gettid works on musl too.
[1]: https://man7.org/linux/man-pages/man2/gettid.2.html
Signed-off-by: Zhangjin Wu <falcon@tinylab.org>
---
tools/testing/selftests/nolibc/nolibc-test.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c
index 99afec93dfae..739c9daa91b6 100644
--- a/tools/testing/selftests/nolibc/nolibc-test.c
+++ b/tools/testing/selftests/nolibc/nolibc-test.c
@@ -548,6 +548,7 @@ int run_syscall(int min, int max)
int tmp;
int ret = 0;
void *p1, *p2;
+ int has_gettid = 1;
/* <proc> indicates whether or not /proc is mounted */
proc = stat("/proc", &stat_buf) == 0;
@@ -555,6 +556,11 @@ int run_syscall(int min, int max)
/* this will be used to skip certain tests that can't be run unprivileged */
euid0 = geteuid() == 0;
+ /* from 2.30, glibc provides gettid() */
+#if defined(__GLIBC_MINOR__) && defined(__GLIBC__)
+ has_gettid = __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 30);
+#endif
+
for (test = min; test >= 0 && test <= max; test++) {
int llen = 0; /* line length */
@@ -564,9 +570,7 @@ int run_syscall(int min, int max)
switch (test + __LINE__ + 1) {
CASE_TEST(getpid); EXPECT_SYSNE(1, getpid(), -1); break;
CASE_TEST(getppid); EXPECT_SYSNE(1, getppid(), -1); break;
-#ifdef NOLIBC
- CASE_TEST(gettid); EXPECT_SYSNE(1, gettid(), -1); break;
-#endif
+ CASE_TEST(gettid); EXPECT_SYSNE(has_gettid, gettid(), -1); break;
CASE_TEST(getpgid_self); EXPECT_SYSNE(1, getpgid(0), -1); break;
CASE_TEST(getpgid_bad); EXPECT_SYSER(1, getpgid(-1), -1, ESRCH); break;
CASE_TEST(kill_0); EXPECT_SYSZR(1, kill(getpid(), 0)); break;
--
2.25.1
next prev parent reply other threads:[~2023-06-21 12:55 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-21 12:52 [PATCH v1 00/17] selftests/nolibc: allow run with minimal kernel config Zhangjin Wu
2023-06-21 12:53 ` [PATCH v1 01/17] selftests/nolibc: stat_fault: silence NULL argument warning with glibc Zhangjin Wu
2023-06-21 12:54 ` Zhangjin Wu [this message]
2023-06-21 12:56 ` [PATCH v1 03/17] selftests/nolibc: add _LARGEFILE64_SOURCE for musl Zhangjin Wu
2023-06-21 12:57 ` [PATCH v1 04/17] selftests/nolibc: fix up kernel parameters support Zhangjin Wu
2023-06-21 12:58 ` [PATCH v1 05/17] selftests/nolibc: stat_timestamps: remove procfs dependency Zhangjin Wu
2023-06-28 13:59 ` Zhangjin Wu
2023-06-29 16:56 ` Thomas Weißschuh
2023-06-29 21:23 ` Zhangjin Wu
2023-06-29 21:44 ` Thomas Weißschuh
2023-06-21 13:00 ` [PATCH v1 06/17] tools/nolibc: add rmdir() support Zhangjin Wu
2023-06-21 13:01 ` [PATCH v1 07/17] selftests/nolibc: add a new rmdir() test case Zhangjin Wu
2023-06-21 13:03 ` [PATCH v1 08/17] selftests/nolibc: fix up failures when there is no procfs Zhangjin Wu
2023-06-21 13:04 ` [PATCH v1 09/17] selftests/nolibc: rename proc variable to has_proc Zhangjin Wu
2023-06-21 13:05 ` [PATCH v1 10/17] selftests/nolibc: rename euid0 variable to is_root Zhangjin Wu
2023-06-21 13:07 ` [PATCH v1 11/17] selftests/nolibc: prepare tmpfs and hugetlbfs Zhangjin Wu
2023-06-21 13:09 ` [PATCH v1 12/17] selftests/nolibc: rename chmod_net to chmod_good Zhangjin Wu
2023-06-21 13:11 ` [PATCH v1 13/17] selftests/nolibc: link_cross: support tmpfs Zhangjin Wu
2023-06-21 13:13 ` [PATCH v1 14/17] selftests/nolibc: rename chroot_exe to chroot_file Zhangjin Wu
2023-06-21 13:17 ` [PATCH v1 15/17] selftests/nolibc: vfprintf: silence memfd_create() warning Zhangjin Wu
2023-06-21 13:18 ` [PATCH v1 16/17] selftests/nolibc: vfprintf: skip if neither tmpfs nor hugetlbfs Zhangjin Wu
2023-06-21 13:21 ` [PATCH v1 17/17] selftests/nolibc: vfprintf: support tmpfs and hugetlbfs Zhangjin Wu
2023-06-21 19:21 ` [PATCH v1 00/17] selftests/nolibc: allow run with minimal kernel config Thomas Weißschuh
2023-06-22 18:45 ` Zhangjin Wu
2023-06-24 6:52 ` Thomas Weißschuh
2023-06-24 7:29 ` Thomas Weißschuh
2023-06-24 8:39 ` Zhangjin Wu
2023-06-24 8:54 ` Zhangjin Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7268483c95af54c95c1da6fd5d6d0d08c1be2392.1687344643.git.falcon@tinylab.org \
--to=falcon@tinylab.org \
--cc=arnd@arndb.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=thomas@t-8ch.de \
--cc=w@1wt.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).