167728a18SDag-Erling Smørgrav# 267728a18SDag-Erling Smørgrav# Copyright (c) 2026 Klara, Inc. 367728a18SDag-Erling Smørgrav# 467728a18SDag-Erling Smørgrav# SPDX-License-Identifier: BSD-2-Clause 567728a18SDag-Erling Smørgrav# 667728a18SDag-Erling Smørgrav 767728a18SDag-Erling Smørgravatf_test_case none 867728a18SDag-Erling Smørgravnone_head() 967728a18SDag-Erling Smørgrav{ 1067728a18SDag-Erling Smørgrav atf_set "descr" "No arguments" 1167728a18SDag-Erling Smørgrav} 1267728a18SDag-Erling Smørgravnone_body() 1367728a18SDag-Erling Smørgrav{ 1467728a18SDag-Erling Smørgrav atf_check \ 1567728a18SDag-Erling Smørgrav -o inline:"y\ny\ny\ny\ny\n" \ 1667728a18SDag-Erling Smørgrav -x "yes | head -5" 1767728a18SDag-Erling Smørgrav} 1867728a18SDag-Erling Smørgrav 1967728a18SDag-Erling Smørgravatf_test_case one 2067728a18SDag-Erling Smørgravone_head() 2167728a18SDag-Erling Smørgrav{ 2267728a18SDag-Erling Smørgrav atf_set "descr" "One argument" 2367728a18SDag-Erling Smørgrav} 2467728a18SDag-Erling Smørgravone_body() 2567728a18SDag-Erling Smørgrav{ 2667728a18SDag-Erling Smørgrav local y="Hello, world!" 2767728a18SDag-Erling Smørgrav atf_check \ 2867728a18SDag-Erling Smørgrav -o inline:"${y}\n${y}\n${y}\n${y}\n${y}\n" \ 2967728a18SDag-Erling Smørgrav -x "yes '${y}' | head -5" 3067728a18SDag-Erling Smørgrav} 3167728a18SDag-Erling Smørgrav 3267728a18SDag-Erling Smørgravatf_test_case multi 3367728a18SDag-Erling Smørgravmulti_head() 3467728a18SDag-Erling Smørgrav{ 3567728a18SDag-Erling Smørgrav atf_set "descr" "Multiple arguments" 3667728a18SDag-Erling Smørgrav} 3767728a18SDag-Erling Smørgravmulti_body() 3867728a18SDag-Erling Smørgrav{ 3967728a18SDag-Erling Smørgrav set -- The Magic Words are Squeamish Ossifrage 4067728a18SDag-Erling Smørgrav local y="$*" 4167728a18SDag-Erling Smørgrav atf_check \ 4267728a18SDag-Erling Smørgrav -o inline:"${y}\n${y}\n${y}\n${y}\n${y}\n" \ 4367728a18SDag-Erling Smørgrav -x "yes $* | head -5" 4467728a18SDag-Erling Smørgrav} 4567728a18SDag-Erling Smørgrav 4667728a18SDag-Erling Smørgravatf_test_case argv 4767728a18SDag-Erling Smørgravargv_head() 4867728a18SDag-Erling Smørgrav{ 4967728a18SDag-Erling Smørgrav atf_set "descr" "Verify that argv is unmolested" 5067728a18SDag-Erling Smørgrav} 5167728a18SDag-Erling Smørgravargv_body() 5267728a18SDag-Erling Smørgrav{ 5367728a18SDag-Erling Smørgrav yes y >/dev/null & 5467728a18SDag-Erling Smørgrav local pid=$! 55*c5961b6fSOlivier Cochard # Wait for yes(1) to exec before checking args 56*c5961b6fSOlivier Cochard sleep 0.1 5767728a18SDag-Erling Smørgrav atf_check -o inline:"yes y\n" ps -o args= $pid 5867728a18SDag-Erling Smørgrav kill $pid 5967728a18SDag-Erling Smørgrav wait 6067728a18SDag-Erling Smørgrav} 6167728a18SDag-Erling Smørgrav 6267728a18SDag-Erling Smørgravatf_test_case stdout 6367728a18SDag-Erling Smørgravstdout_head() 6467728a18SDag-Erling Smørgrav{ 6567728a18SDag-Erling Smørgrav atf_set descr "Error writing to stdout" 6667728a18SDag-Erling Smørgrav} 6767728a18SDag-Erling Smørgravstdout_body() 6867728a18SDag-Erling Smørgrav{ 6967728a18SDag-Erling Smørgrav ( 7067728a18SDag-Erling Smørgrav trap "" PIPE 7167728a18SDag-Erling Smørgrav # Give true(1) some time to exit. 7267728a18SDag-Erling Smørgrav sleep 1 7367728a18SDag-Erling Smørgrav yes 2>stderr 7467728a18SDag-Erling Smørgrav echo $? >result 7567728a18SDag-Erling Smørgrav ) | true 7667728a18SDag-Erling Smørgrav atf_check -o inline:"1\n" cat result 7767728a18SDag-Erling Smørgrav atf_check -o match:"stdout" cat stderr 7867728a18SDag-Erling Smørgrav} 7967728a18SDag-Erling Smørgrav 8067728a18SDag-Erling Smørgravatf_init_test_cases() 8167728a18SDag-Erling Smørgrav{ 8267728a18SDag-Erling Smørgrav atf_add_test_case none 8367728a18SDag-Erling Smørgrav atf_add_test_case one 8467728a18SDag-Erling Smørgrav atf_add_test_case multi 8567728a18SDag-Erling Smørgrav atf_add_test_case argv 8667728a18SDag-Erling Smørgrav atf_add_test_case stdout 8767728a18SDag-Erling Smørgrav} 88