1# 2# Copyright (c) 2026 Klara, Inc. 3# 4# SPDX-License-Identifier: BSD-2-Clause 5# 6 7atf_test_case none 8none_head() 9{ 10 atf_set "descr" "No arguments" 11} 12none_body() 13{ 14 atf_check \ 15 -o inline:"y\ny\ny\ny\ny\n" \ 16 -x "yes | head -5" 17} 18 19atf_test_case one 20one_head() 21{ 22 atf_set "descr" "One argument" 23} 24one_body() 25{ 26 local y="Hello, world!" 27 atf_check \ 28 -o inline:"${y}\n${y}\n${y}\n${y}\n${y}\n" \ 29 -x "yes '${y}' | head -5" 30} 31 32atf_test_case multi 33multi_head() 34{ 35 atf_set "descr" "Multiple arguments" 36} 37multi_body() 38{ 39 set -- The Magic Words are Squeamish Ossifrage 40 local y="$*" 41 atf_check \ 42 -o inline:"${y}\n${y}\n${y}\n${y}\n${y}\n" \ 43 -x "yes $* | head -5" 44} 45 46atf_test_case argv 47argv_head() 48{ 49 atf_set "descr" "Verify that argv is unmolested" 50} 51argv_body() 52{ 53 yes y >/dev/null & 54 local pid=$! 55 atf_check -o inline:"yes y\n" ps -o args= $pid 56 kill $pid 57 wait 58} 59 60atf_test_case stdout 61stdout_head() 62{ 63 atf_set descr "Error writing to stdout" 64} 65stdout_body() 66{ 67 ( 68 trap "" PIPE 69 # Give true(1) some time to exit. 70 sleep 1 71 yes 2>stderr 72 echo $? >result 73 ) | true 74 atf_check -o inline:"1\n" cat result 75 atf_check -o match:"stdout" cat stderr 76} 77 78atf_init_test_cases() 79{ 80 atf_add_test_case none 81 atf_add_test_case one 82 atf_add_test_case multi 83 atf_add_test_case argv 84 atf_add_test_case stdout 85} 86