diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 14:30:35 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 14:30:35 +0000 |
commit | 378c18e5f024ac5a8aef4cb40d7c9aa9633d144c (patch) | |
tree | 44dfb6ca500d32cabd450649b322a42e70a30683 /tests/ts/lsfd/option-pid | |
parent | Initial commit. (diff) | |
download | util-linux-upstream.tar.xz util-linux-upstream.zip |
Adding upstream version 2.38.1.upstream/2.38.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ts/lsfd/option-pid')
-rwxr-xr-x | tests/ts/lsfd/option-pid | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/ts/lsfd/option-pid b/tests/ts/lsfd/option-pid new file mode 100755 index 0000000..65365bf --- /dev/null +++ b/tests/ts/lsfd/option-pid @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Copyright (C) 2021 Masatake YAMATO <yamato@redhat.com> +# +# 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. +# +TS_TOPDIR="${0%/*}/../.." +TS_DESC="--pid option" + +. $TS_TOPDIR/functions.sh +ts_init "$*" +ts_skip_nonroot + +ts_check_test_command "$TS_CMD_LSFD" +ts_check_test_command "$TS_HELPER_MKFDS" +ts_check_prog "ps" + +ts_cd "$TS_OUTDIR" + +[ "$(ps --no-headers -o comm 1)" = 'systemd' ] || ts_skip "pid 1 is not systemd" + +PID= +FD=3 +EXPR= +QOUT= +POUT= + +{ + coproc MKFDS { "$TS_HELPER_MKFDS" ro-regular-file $FD file=/etc/group; } + if read -u ${MKFDS[0]} PID; then + EXPR='((PID == '"${PID}"') or (PID == 1)) and (FD == '"$FD"')' + QOUT=$(${TS_CMD_LSFD} -n -o ASSOC,MODE,TYPE,FLAGS,NAME -Q "${EXPR}") + echo "QOUT:" $? + + POUT=$(${TS_CMD_LSFD} --pid="1 $PID" -n -o ASSOC,MODE,TYPE,FLAGS,NAME -Q "(FD == $FD)") + echo "POUT[--pid=1 PID]:" $? + [ "${QOUT}" = "${POUT}" ] + echo "EQ[--pid=1 PID]:" $? + + POUT=$(${TS_CMD_LSFD} --pid="$PID 1" -n -o ASSOC,MODE,TYPE,FLAGS,NAME -Q "(FD == $FD)") + echo "POUT[--pid=PID 1]:" $? + [ "${QOUT}" = "${POUT}" ] + echo "EQ[--pid=PID 1]:" $? + + POUT=$(${TS_CMD_LSFD} --pid="1,$PID" -n -o ASSOC,MODE,TYPE,FLAGS,NAME -Q "(FD == $FD)") + echo "POUT[--pid=1,PID]:" $? + [ "${QOUT}" = "${POUT}" ] + echo "EQ[--pid=1,PID]:" $? + + POUT=$(${TS_CMD_LSFD} --pid="$PID,1" -n -o ASSOC,MODE,TYPE,FLAGS,NAME -Q "(FD == $FD)") + echo "POUT[--pid=PID,1]:" $? + [ "${QOUT}" = "${POUT}" ] + echo "EQ[--pid=PID,1]:" $? + + POUT=$(${TS_CMD_LSFD} -p 1 --pid="$PID" -n -o ASSOC,MODE,TYPE,FLAGS,NAME -Q "(FD == $FD)") + echo "POUT[-p 1 --pid=PID]:" $? + [ "${QOUT}" = "${POUT}" ] + echo "EQ[-p 1 --pid=PID]:" $? + + POUT=$(${TS_CMD_LSFD} -p "$PID" --pid=1 -n -o ASSOC,MODE,TYPE,FLAGS,NAME -Q "(FD == $FD)") + echo "POUT[-p PID --pid=1]:" $? + [ "${QOUT}" = "${POUT}" ] + echo "EQ[-p PID --pid=1]:" $? + + kill -CONT ${PID} + wait ${MKFDS_PID} + fi +} > $TS_OUTPUT 2>&1 + +ts_finalize |