diff options
Diffstat (limited to 'tests/ts/lsfd/filter-floating-point-nums')
-rwxr-xr-x | tests/ts/lsfd/filter-floating-point-nums | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/ts/lsfd/filter-floating-point-nums b/tests/ts/lsfd/filter-floating-point-nums new file mode 100755 index 0000000..7f66dd5 --- /dev/null +++ b/tests/ts/lsfd/filter-floating-point-nums @@ -0,0 +1,90 @@ +#!/bin/bash +# +# Copyright (C) 2023 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="timerfd" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_check_test_command "$TS_CMD_LSFD" +ts_check_test_command "$TS_HELPER_MKFDS" + +ts_cd "$TS_OUTDIR" + +PID= +FD=3 +EXPR= + +{ + coproc MKFDS { "$TS_HELPER_MKFDS" timerfd $FD clockid=realtime remaining=0 interval=10 interval-nanofrac=000050000; } + if read -u ${MKFDS[0]} PID; then + + PID_1=$((PID -1)) + EXPR="(PID > ${PID_1}.9) and (PID < ${PID}.1) and (ASSOC == 'exe')" + PID_0=$(${TS_CMD_LSFD} -n -r -o PID -Q "$EXPR") + echo "pid in a range:" $? + + if [[ "${PID_0}" == "${PID}" ]]; then + echo "coparing pids": $? + else + echo "coparing pids": $? "PID_0:${PID_0} == PID:${PID}" + fi + + EXPR='(TIMERFD.INTERVAL < 10.000051) and (TIMERFD.INTERVAL > 10)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + EXPR='(TIMERFD.INTERVAL <= 10) and (TIMERFD.INTERVAL > 9.99)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + EXPR='(TIMERFD.INTERVAL >= 10)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + EXPR='(TIMERFD.INTERVAL >= 10.0)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + + EXPR='(TIMERFD.INTERVAL < 10) and (0 < TIMERFD.INTERVAL)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + EXPR='(TIMERFD.INTERVAL < 10) and (0.0 < TIMERFD.INTERVAL)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + EXPR='(TIMERFD.INTERVAL > 11)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + EXPR='(TIMERFD.INTERVAL == 10.00005)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + EXPR='(TIMERFD.INTERVAL == 10.000051)' + ${TS_CMD_LSFD} -n -r -o FD,TIMERFD.INTERVAL -p "$PID" -Q "$EXPR" + echo "FD,TIMERFD.INTERVAL: $EXPR": $? + + echo DONE >&"${MKFDS[1]}" + fi + + wait "${MKFDS_PID}" +} > "$TS_OUTPUT" 2>&1 + +ts_finalize |