1273771Sbapt# $FreeBSD: releng/11.0/usr.bin/timeout/tests/timeout.sh 298879 2016-05-01 16:13:05Z pfg $ 2273771Sbapt 3273771Sbaptatf_test_case nominal 4273771Sbaptnominal_head() 5273771Sbapt{ 6273771Sbapt atf_set "descr" "Basic tests on timeout(1) utility" 7273771Sbapt} 8273771Sbapt 9273771Sbaptnominal_body() 10273771Sbapt{ 11273771Sbapt atf_check \ 12273771Sbapt -o empty \ 13273771Sbapt -e empty \ 14273771Sbapt -s exit:0 \ 15273771Sbapt -x timeout 5 true 16273771Sbapt} 17273771Sbapt 18273771Sbaptatf_test_case time_unit 19273771Sbapttime_unit_head() 20273771Sbapt{ 21273771Sbapt atf_set "descr" "Test parsing the default time unit" 22273771Sbapt} 23273771Sbapt 24273771Sbapttime_unit_body() 25273771Sbapt{ 26273771Sbapt atf_check \ 27273771Sbapt -o empty \ 28273771Sbapt -e empty \ 29273771Sbapt -s exit:0 \ 30273771Sbapt -x timeout 1d true 31273771Sbapt 32273771Sbapt atf_check \ 33273771Sbapt -o empty \ 34273771Sbapt -e empty \ 35273771Sbapt -s exit:0 \ 36273771Sbapt -x timeout 1h true 37273771Sbapt 38273771Sbapt atf_check \ 39273771Sbapt -o empty \ 40273771Sbapt -e empty \ 41273771Sbapt -s exit:0 \ 42273771Sbapt -x timeout 1m true 43273771Sbapt 44273771Sbapt atf_check \ 45273771Sbapt -o empty \ 46273771Sbapt -e empty \ 47273771Sbapt -s exit:0 \ 48273771Sbapt -x timeout 1s true 49273771Sbapt} 50273771Sbapt 51273771Sbaptatf_test_case no_timeout 52273771Sbaptno_timeout_head() 53273771Sbapt{ 54273771Sbapt atf_set "descr" "Test disabled timeout" 55273771Sbapt} 56273771Sbapt 57273771Sbaptno_timeout_body() 58273771Sbapt{ 59273771Sbapt atf_check \ 60273771Sbapt -o empty \ 61273771Sbapt -e empty \ 62273771Sbapt -s exit:0 \ 63273771Sbapt -x timeout 0 true 64273771Sbapt} 65273771Sbapt 66273771Sbaptatf_test_case exit_numbers 67273771Sbaptexit_numbers_head() 68273771Sbapt{ 69273771Sbapt atf_set "descr" "Test exit numbers" 70273771Sbapt} 71273771Sbapt 72273771Sbaptexit_numbers_body() 73273771Sbapt{ 74273771Sbapt atf_check \ 75273771Sbapt -o empty \ 76273771Sbapt -e empty \ 77273771Sbapt -s exit:2 \ 78273771Sbapt -x timeout 5 sh -c \'exit 2\' 79273771Sbapt 80273771Sbapt atf_check \ 81273771Sbapt -o empty \ 82273771Sbapt -e empty \ 83273771Sbapt -s exit:124 \ 84273771Sbapt -x timeout .1 sleep 1 85273771Sbapt 86298879Spfg # With preserv status exit should be 128 + TERM aka 143 87273771Sbapt atf_check \ 88273771Sbapt -o empty \ 89273771Sbapt -e empty \ 90273771Sbapt -s exit:143 \ 91273771Sbapt -x timeout --preserve-status .1 sleep 10 92273771Sbapt 93273771Sbapt atf_check \ 94273771Sbapt -o empty \ 95273771Sbapt -e empty \ 96273771Sbapt -s exit:124 \ 97273771Sbapt -x timeout -s1 -k1 .1 sleep 10 98273771Sbapt 99273771Sbapt atf_check \ 100273771Sbapt -o empty \ 101273771Sbapt -e empty \ 102273771Sbapt -s exit:0 \ 103273771Sbapt -x sh -c 'trap "" CHLD; exec timeout 10 true' 104273771Sbapt} 105273771Sbapt 106273771Sbaptatf_test_case with_a_child 107273771Sbaptwith_a_child_head() 108273771Sbapt{ 109273771Sbapt atf_set "descr" "When starting with a child (coreutils bug#9098)" 110273771Sbapt} 111273771Sbapt 112273771Sbaptwith_a_child_body() 113273771Sbapt{ 114273771Sbapt out=$(sleep .1 & exec timeout .5 sh -c 'sleep 2; echo foo') 115273771Sbapt status=$? 116273771Sbapt test "$out" = "" && test $status = 124 || atf_fail 117273771Sbapt 118273771Sbapt} 119273771Sbapt 120273771Sbaptatf_test_case invalid_timeout 121273771Sbaptinvalid_timeout_head() 122273771Sbapt{ 123273771Sbapt atf_set "descr" "Invalid timeout" 124273771Sbapt} 125273771Sbapt 126273771Sbaptinvalid_timeout_body() 127273771Sbapt{ 128273771Sbapt atf_check \ 129273771Sbapt -o empty \ 130273771Sbapt -e inline:"timeout: invalid duration\n" \ 131273771Sbapt -s exit:125 \ 132273771Sbapt -x timeout invalid sleep 0 133273771Sbapt 134273771Sbapt atf_check \ 135273771Sbapt -o empty \ 136273771Sbapt -e inline:"timeout: invalid duration\n" \ 137273771Sbapt -s exit:125 \ 138273771Sbapt -x timeout --kill-after=invalid 1 sleep 0 139273771Sbapt 140273771Sbapt atf_check \ 141273771Sbapt -o empty \ 142273771Sbapt -e inline:"timeout: invalid duration\n" \ 143273771Sbapt -s exit:125 \ 144273771Sbapt -x timeout 42D sleep 0 145273771Sbapt 146273771Sbapt atf_check \ 147273771Sbapt -o empty \ 148273771Sbapt -e inline:"timeout: invalid duration\n" \ 149273771Sbapt -s exit:125 \ 150273771Sbapt -x timeout 999999999999999999999999999999999999999999999999999999999999d sleep 0 151273771Sbapt 152273771Sbapt atf_check \ 153273771Sbapt -o empty \ 154273771Sbapt -e inline:"timeout: invalid duration\n" \ 155273771Sbapt -s exit:125 \ 156273771Sbapt -x timeout 2.34e+5d sleep 0 157273771Sbapt} 158273771Sbapt 159273771Sbaptatf_test_case invalid_signal 160273771Sbaptinvalid_signal_head() 161273771Sbapt{ 162273771Sbapt atf_set "descr" "Invalid signal" 163273771Sbapt} 164273771Sbapt 165273771Sbaptinvalid_signal_body() 166273771Sbapt{ 167273771Sbapt atf_check \ 168273771Sbapt -o empty \ 169273771Sbapt -e inline:"timeout: invalid signal\n" \ 170273771Sbapt -s exit:125 \ 171273771Sbapt -x timeout --signal=invalid 1 sleep 0 172273771Sbapt} 173273771Sbapt 174273771Sbaptatf_test_case invalid_command 175273771Sbaptinvalid_command_head() 176273771Sbapt{ 177273771Sbapt atf_set "descr" "Invalid command" 178273771Sbapt} 179273771Sbapt 180273771Sbaptinvalid_command_body() 181273771Sbapt{ 182273771Sbapt atf_check \ 183273771Sbapt -o empty \ 184273771Sbapt -e inline:"timeout: exec(.): Permission denied\n" \ 185273771Sbapt -s exit:126 \ 186273771Sbapt -x timeout 10 . 187273771Sbapt} 188273771Sbapt 189273771Sbaptatf_test_case no_such_command 190273771Sbaptno_such_command_head() 191273771Sbapt{ 192273771Sbapt atf_set "descr" "No such command" 193273771Sbapt} 194273771Sbapt 195273771Sbaptno_such_command_body() 196273771Sbapt{ 197273771Sbapt atf_check \ 198273771Sbapt -o empty \ 199273771Sbapt -e inline:"timeout: exec(enoexists): No such file or directory\n" \ 200273771Sbapt -s exit:127 \ 201273771Sbapt -x timeout 10 enoexists 202273771Sbapt} 203273771Sbapt 204273771Sbaptatf_init_test_cases() 205273771Sbapt{ 206273771Sbapt atf_add_test_case nominal 207273771Sbapt atf_add_test_case time_unit 208273771Sbapt atf_add_test_case no_timeout 209273771Sbapt atf_add_test_case exit_numbers 210273771Sbapt atf_add_test_case with_a_child 211273771Sbapt atf_add_test_case invalid_timeout 212273771Sbapt atf_add_test_case invalid_signal 213273771Sbapt atf_add_test_case invalid_command 214273771Sbapt atf_add_test_case no_such_command 215273771Sbapt} 216