diff options
Diffstat (limited to 'tests/ts/lsfd/column-name')
-rwxr-xr-x | tests/ts/lsfd/column-name | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/ts/lsfd/column-name b/tests/ts/lsfd/column-name new file mode 100755 index 0000000..5dc491a --- /dev/null +++ b/tests/ts/lsfd/column-name @@ -0,0 +1,74 @@ +#!/bin/bash +# +# Copyright (C) 2022 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="NAME and KNAME column" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +. "$TS_SELF/lsfd-functions.bash" +ts_check_test_command "$TS_CMD_LSFD" +ts_check_test_command "$TS_HELPER_MKFDS" +ts_check_prog "sed" + +ts_cd "$TS_OUTDIR" + +PID= +FD=3 +EXPR="(FD == 3)" + +make_state_connected() +{ + if [ "$1" = "socketpair" ]; then + lsfd_make_state_connected + else + cat + fi +} + +for C in ro-regular-file pidfd socketpair; do + ts_init_subtest $C + { + coproc MKFDS { + argv=() + case $C in + socketpair) + argv[0]="$((FD + 1))" + argv[1]="socktype=DGRAM" + esac + "$TS_HELPER_MKFDS" $C $FD "${argv[@]}" + } + if read -r -u "${MKFDS[0]}" PID; then + ${TS_CMD_LSFD} -n -o ASSOC,KNAME,NAME -p "${PID}" -Q "${EXPR}" | { + # Replace the unpredictable an inode number for the socket + # with "INODENUM". + sed -e 's/\[[0-9]\+\]/[INODENUM]/g' | make_state_connected $C + } + echo "$C"':ASSOC,KNAME,NAME': ${PIPESTATUS[0]} + + kill -CONT "${PID}" + fi + } > "$TS_OUTPUT" 2>&1 + wait "${MKFDS_PID}" + if [ "$C-$?" == "pidfd-$ENOSYS" ]; then + ts_skip_subtest "pidfd_open(2) is not available" + continue + fi + ts_finalize_subtest +done + +ts_finalize |