1#!/bin/sh 2# Exercise an abort-inducing flaw in inotify-enabled tail -F. 3# Like inotify-hash-abuse, but without a hard-coded "9". 4 5# Copyright (C) 2009-2023 Free Software Foundation, Inc. 6 7# This program is free software: you can redistribute it and/or modify 8# it under the terms of the GNU General Public License as published by 9# the Free Software Foundation, either version 3 of the License, or 10# (at your option) any later version. 11 12# This program is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15# GNU General Public License for more details. 16 17# You should have received a copy of the GNU General Public License 18# along with this program. If not, see <https://www.gnu.org/licenses/>. 19 20. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 21print_ver_ tail 22 23# Terminate any background tail process 24cleanup_() { kill $pid 2>/dev/null && wait $pid; } 25 26# Speedup the non inotify case 27fastpoll='-s.1 --max-unchanged-stats=1' 28 29for mode in '' '---disable-inotify'; do 30 touch f || framework_failure_ 31 32 tail $mode $fastpoll -F f & pid=$! 33 34 for i in $(seq 200); do 35 kill -0 $pid || break; 36 touch g 37 mv g f 38 done 39 40 # Ensure tail hasn't aborted 41 kill -0 $pid || fail=1 42 43 cleanup_ 44done 45 46Exit $fail 47