From: WanBingjiang Date: Thu, 16 Jul 2026 03:32:14 +0000 (+0800) Subject: test: (lsfd) add a case for testing bpf-link related columns X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=75bf9e43e088627784ebe4e507a074a6213f3f7b;p=thirdparty%2Futil-linux.git test: (lsfd) add a case for testing bpf-link related columns Signed-off-by: WanBingjiang --- diff --git a/tests/expected/lsfd/mkfds-bpf-link b/tests/expected/lsfd/mkfds-bpf-link new file mode 100644 index 000000000..a2b5fb557 --- /dev/null +++ b/tests/expected/lsfd/mkfds-bpf-link @@ -0,0 +1,4 @@ +cgroup 3 +BPF-LINK.TYPE,BPF-LINK.TYPE.RAW: 0 +comparing ids: OK +comparing prog ids: OK diff --git a/tests/expected/lsfd/mkfds-bpf-link.err b/tests/expected/lsfd/mkfds-bpf-link.err new file mode 100644 index 000000000..e69de29bb diff --git a/tests/ts/lsfd/mkfds-bpf-link b/tests/ts/lsfd/mkfds-bpf-link new file mode 100755 index 000000000..68fbcb26d --- /dev/null +++ b/tests/ts/lsfd/mkfds-bpf-link @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +# +# Copyright (C) 2026 WanBingjiang +# +# 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="bpf-link files" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" +ts_skip_nonroot +ts_skip_docker + +. "$TS_SELF/lsfd-functions.bash" +ts_check_test_command "$TS_CMD_LSFD" +ts_check_test_command "$TS_HELPER_MKFDS" +lsfd_check_mkfds_factory bpf-link + +ts_cd "$TS_OUTDIR" + +PID= +ID= +PROG_ID= +FD=3 +RC= + +{ + coproc MKFDS { "$TS_HELPER_MKFDS" bpf-link "$FD"; } + if read -r -u "${MKFDS[0]}" PID ID PROG_ID; then + "${TS_CMD_LSFD}" -r -n -oBPF-LINK.TYPE,BPF-LINK.TYPE.RAW -p "${PID}" -Q "(FD == $FD)" + echo "BPF-LINK.TYPE,BPF-LINK.TYPE.RAW": $? + + ID_0=$("${TS_CMD_LSFD}" -r -n -oBPF-LINK.ID -p "${PID}" -Q "(FD == $FD)") + if [[ "${ID_0}" == "${ID}" ]]; then + echo "comparing ids": OK + else + echo "comparing ids": FAILED "ID_0:${ID_0} == ID:${ID}" + fi + + PROG_ID_0=$("${TS_CMD_LSFD}" -r -n -oBPF-LINK.PROG-ID -p "${PID}" -Q "(FD == $FD)") + if [[ "${PROG_ID_0}" == "${PROG_ID}" ]]; then + echo "comparing prog ids": OK + else + echo "comparing prog ids": FAILED "PROG_ID_0:${PROG_ID_0} == PROG_ID:${PROG_ID}" + fi + + echo DONE >&"${MKFDS[1]}" + fi + wait "${MKFDS_PID}" + RC=$? +} > "$TS_OUTPUT" 2>&1 + +if [ "$RC" == "$TS_EXIT_NOTSUPP" ]; then + ts_skip "bpf(2) is not available" +fi + +ts_finalize