From cc04dd58da415a092f110804311cf26b2fd57534 Mon Sep 17 00:00:00 2001 From: Christian Goeschel Ndjomouo Date: Mon, 26 Jan 2026 19:33:00 -0500 Subject: [PATCH] tests: (waitpid) add tests for the pidfd inode format support Signed-off-by: Christian Goeschel Ndjomouo --- tests/expected/waitpid/pidfd-ino-count | 1 + tests/expected/waitpid/pidfd-ino-count.err | 1 + .../waitpid/pidfd-ino-mixed-pid-formats | 2 + .../waitpid/pidfd-ino-mixed-pid-formats.err | 1 + tests/expected/waitpid/pidfd-ino-one-pid-arg | 1 + .../waitpid/pidfd-ino-one-pid-arg.err | 1 + tests/ts/waitpid/pidfd-ino | 64 +++++++++++++++++++ 7 files changed, 71 insertions(+) create mode 100644 tests/expected/waitpid/pidfd-ino-count create mode 100644 tests/expected/waitpid/pidfd-ino-count.err create mode 100644 tests/expected/waitpid/pidfd-ino-mixed-pid-formats create mode 100644 tests/expected/waitpid/pidfd-ino-mixed-pid-formats.err create mode 100644 tests/expected/waitpid/pidfd-ino-one-pid-arg create mode 100644 tests/expected/waitpid/pidfd-ino-one-pid-arg.err create mode 100755 tests/ts/waitpid/pidfd-ino diff --git a/tests/expected/waitpid/pidfd-ino-count b/tests/expected/waitpid/pidfd-ino-count new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/expected/waitpid/pidfd-ino-count @@ -0,0 +1 @@ +1 diff --git a/tests/expected/waitpid/pidfd-ino-count.err b/tests/expected/waitpid/pidfd-ino-count.err new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/expected/waitpid/pidfd-ino-count.err @@ -0,0 +1 @@ +0 diff --git a/tests/expected/waitpid/pidfd-ino-mixed-pid-formats b/tests/expected/waitpid/pidfd-ino-mixed-pid-formats new file mode 100644 index 0000000000..5f1d0ecea5 --- /dev/null +++ b/tests/expected/waitpid/pidfd-ino-mixed-pid-formats @@ -0,0 +1,2 @@ +2 +1 diff --git a/tests/expected/waitpid/pidfd-ino-mixed-pid-formats.err b/tests/expected/waitpid/pidfd-ino-mixed-pid-formats.err new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/expected/waitpid/pidfd-ino-mixed-pid-formats.err @@ -0,0 +1 @@ +0 diff --git a/tests/expected/waitpid/pidfd-ino-one-pid-arg b/tests/expected/waitpid/pidfd-ino-one-pid-arg new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/expected/waitpid/pidfd-ino-one-pid-arg @@ -0,0 +1 @@ +1 diff --git a/tests/expected/waitpid/pidfd-ino-one-pid-arg.err b/tests/expected/waitpid/pidfd-ino-one-pid-arg.err new file mode 100644 index 0000000000..573541ac97 --- /dev/null +++ b/tests/expected/waitpid/pidfd-ino-one-pid-arg.err @@ -0,0 +1 @@ +0 diff --git a/tests/ts/waitpid/pidfd-ino b/tests/ts/waitpid/pidfd-ino new file mode 100755 index 0000000000..e572165bfa --- /dev/null +++ b/tests/ts/waitpid/pidfd-ino @@ -0,0 +1,64 @@ +#!/bin/bash + +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# Copyright (C) 2026 Christian Goeschel Ndjomouo + +TS_TOPDIR="${0%/*}/../.." +TS_DESC="pidfd-ino" + +. "$TS_TOPDIR/functions.sh" +ts_init "$*" + +# The pidfs was only introduced in kernel version 6.9, +# which means we cannot get a valid pidfd from earlier versions, +# so we can confidently anticipate the test failure. +if ts_kernel_ver_lt 6 9; then + TS_KNOWN_FAIL="yes" +fi + +ts_check_test_command "$TS_CMD_WAITPID" +ts_check_test_command "$TS_CMD_GETINO" + +ts_init_subtest one-pid-arg + +(sleep 0.5; echo 1 >> "$TS_OUTPUT") & +PID="$( $TS_CMD_GETINO -p $! 2>/dev/null )" + +"$TS_CMD_WAITPID" "$PID" >> "$TS_OUTPUT" 2>> "$TS_ERRLOG" +echo $? >> "$TS_ERRLOG" + +ts_finalize_subtest + +ts_init_subtest mixed-pid-formats + +(sleep 0.6; echo 1 >> "$TS_OUTPUT") & +PID1="$( $TS_CMD_GETINO -p $! 2>/dev/null )" + +(sleep 0.2; echo 2 >> "$TS_OUTPUT") & +PID2="$!" + +"$TS_CMD_WAITPID" "$PID1" "$PID2" >> "$TS_OUTPUT" 2>> "$TS_ERRLOG" +echo $? >> "$TS_ERRLOG" + +ts_finalize_subtest + +ts_init_subtest count +(sleep 0.2; echo 1 >> "$TS_OUTPUT") & +BG1="$( $TS_CMD_GETINO -p $! 2>/dev/null )" + +"$TS_CMD_WAITPID" -c 1 1 "$BG1" >> "$TS_OUTPUT" 2>> "$TS_ERRLOG" +echo $? >> "$TS_ERRLOG" +ts_finalize_subtest + +ts_finalize -- 2.47.3