1334af5e4SDag-Erling Smørgrav# 2334af5e4SDag-Erling Smørgrav# Copyright (c) 2024 Klara, Inc. 3334af5e4SDag-Erling Smørgrav# 4334af5e4SDag-Erling Smørgrav# SPDX-License-Identifier: BSD-2-Clause 5334af5e4SDag-Erling Smørgrav# 6334af5e4SDag-Erling Smørgrav 7334af5e4SDag-Erling Smørgravmagic_words="Squeamish $$ Ossifrage" 8334af5e4SDag-Erling Smørgrav 9334af5e4SDag-Erling Smørgravatf_test_case basic 10334af5e4SDag-Erling Smørgravbasic_head() 11334af5e4SDag-Erling Smørgrav{ 12334af5e4SDag-Erling Smørgrav atf_set "descr" "Basic test case" 13334af5e4SDag-Erling Smørgrav} 14334af5e4SDag-Erling Smørgravbasic_body() 15334af5e4SDag-Erling Smørgrav{ 16334af5e4SDag-Erling Smørgrav atf_check -o match:"^magic_words=${magic_words}\$" \ 17334af5e4SDag-Erling Smørgrav env magic_words="${magic_words}" 18334af5e4SDag-Erling Smørgrav export MAGIC_WORDS="${magic_words}" 19334af5e4SDag-Erling Smørgrav atf_check -o match:"^MAGIC_WORDS=${magic_words}\$" \ 20334af5e4SDag-Erling Smørgrav env 21334af5e4SDag-Erling Smørgrav unset MAGIC_WORDS 22334af5e4SDag-Erling Smørgrav} 23334af5e4SDag-Erling Smørgrav 24334af5e4SDag-Erling Smørgravatf_test_case unset 25334af5e4SDag-Erling Smørgravunset_head() 26334af5e4SDag-Erling Smørgrav{ 27334af5e4SDag-Erling Smørgrav atf_set "descr" "Unset a variable" 28334af5e4SDag-Erling Smørgrav} 29334af5e4SDag-Erling Smørgravunset_body() 30334af5e4SDag-Erling Smørgrav{ 31334af5e4SDag-Erling Smørgrav export MAGIC_WORDS="${magic_words}" 32334af5e4SDag-Erling Smørgrav atf_check -o not-match:"^MAGIC_WORDS=" \ 33334af5e4SDag-Erling Smørgrav env -u MAGIC_WORDS 34334af5e4SDag-Erling Smørgrav unset MAGIC_WORDS 35334af5e4SDag-Erling Smørgrav} 36334af5e4SDag-Erling Smørgrav 37334af5e4SDag-Erling Smørgravatf_test_case empty 38334af5e4SDag-Erling Smørgravempty_head() 39334af5e4SDag-Erling Smørgrav{ 40334af5e4SDag-Erling Smørgrav atf_set "descr" "Empty environment" 41334af5e4SDag-Erling Smørgrav} 42334af5e4SDag-Erling Smørgravempty_body() 43334af5e4SDag-Erling Smørgrav{ 44334af5e4SDag-Erling Smørgrav atf_check env -i 45334af5e4SDag-Erling Smørgrav} 46334af5e4SDag-Erling Smørgrav 47334af5e4SDag-Erling Smørgravatf_test_case true 48334af5e4SDag-Erling Smørgravtrue_head() 49334af5e4SDag-Erling Smørgrav{ 50334af5e4SDag-Erling Smørgrav atf_set "descr" "Run true" 51334af5e4SDag-Erling Smørgrav} 52334af5e4SDag-Erling Smørgravtrue_body() 53334af5e4SDag-Erling Smørgrav{ 54334af5e4SDag-Erling Smørgrav atf_check env true 55334af5e4SDag-Erling Smørgrav} 56334af5e4SDag-Erling Smørgrav 57334af5e4SDag-Erling Smørgravatf_test_case false 58334af5e4SDag-Erling Smørgravfalse_head() 59334af5e4SDag-Erling Smørgrav{ 60334af5e4SDag-Erling Smørgrav atf_set "descr" "Run false" 61334af5e4SDag-Erling Smørgrav} 62334af5e4SDag-Erling Smørgravfalse_body() 63334af5e4SDag-Erling Smørgrav{ 64334af5e4SDag-Erling Smørgrav atf_check -s exit:1 env false 65334af5e4SDag-Erling Smørgrav} 66334af5e4SDag-Erling Smørgrav 67334af5e4SDag-Erling Smørgravatf_test_case false 68334af5e4SDag-Erling Smørgravfalse_head() 69334af5e4SDag-Erling Smørgrav{ 70334af5e4SDag-Erling Smørgrav atf_set "descr" "Run false" 71334af5e4SDag-Erling Smørgrav} 72334af5e4SDag-Erling Smørgravfalse_body() 73334af5e4SDag-Erling Smørgrav{ 74334af5e4SDag-Erling Smørgrav atf_check -s exit:1 env false 75334af5e4SDag-Erling Smørgrav} 76334af5e4SDag-Erling Smørgrav 77334af5e4SDag-Erling Smørgravatf_test_case altpath 78334af5e4SDag-Erling Smørgravaltpath_head() 79334af5e4SDag-Erling Smørgrav{ 80334af5e4SDag-Erling Smørgrav atf_set "descr" "Use alternate path" 81334af5e4SDag-Erling Smørgrav} 82334af5e4SDag-Erling Smørgravaltpath_body() 83334af5e4SDag-Erling Smørgrav{ 84334af5e4SDag-Erling Smørgrav echo "echo ${magic_words}" >magic_words 85334af5e4SDag-Erling Smørgrav chmod 0755 magic_words 86*6f6166e4SDag-Erling Smørgrav atf_check -s exit:125 -e match:"must specify command" \ 87*6f6166e4SDag-Erling Smørgrav env -P "${PWD}" 88334af5e4SDag-Erling Smørgrav atf_check -s exit:127 -e match:"No such file" \ 89334af5e4SDag-Erling Smørgrav env magic_words 90334af5e4SDag-Erling Smørgrav atf_check -o inline:"${magic_words}\n" \ 91334af5e4SDag-Erling Smørgrav env -P "${PWD}" magic_words 92334af5e4SDag-Erling Smørgrav} 93334af5e4SDag-Erling Smørgrav 94a0dfb066SDag-Erling Smørgravatf_test_case equal 95a0dfb066SDag-Erling Smørgravequal_head() 96a0dfb066SDag-Erling Smørgrav{ 97a0dfb066SDag-Erling Smørgrav atf_set "descr" "Command name contains equal sign" 98a0dfb066SDag-Erling Smørgrav} 99a0dfb066SDag-Erling Smørgravequal_body() 100a0dfb066SDag-Erling Smørgrav{ 101a0dfb066SDag-Erling Smørgrav echo "echo ${magic_words}" >"magic=words" 102a0dfb066SDag-Erling Smørgrav chmod 0755 "magic=words" 103a0dfb066SDag-Erling Smørgrav atf_check -o match:"^${PWD}/magic=words$" \ 104a0dfb066SDag-Erling Smørgrav env "${PWD}/magic=words" 105*6f6166e4SDag-Erling Smørgrav atf_check -s exit:125 -e match:"must specify command" \ 106a0dfb066SDag-Erling Smørgrav env -P "${PATH}:${PWD}" "magic=words" 107a0dfb066SDag-Erling Smørgrav atf_check -o inline:"${magic_words}\n" \ 108a0dfb066SDag-Erling Smørgrav env command "${PWD}/magic=words" 109a0dfb066SDag-Erling Smørgrav atf_check -o inline:"${magic_words}\n" \ 110a0dfb066SDag-Erling Smørgrav env PATH="${PATH}:${PWD}" command "magic=words" 111a0dfb066SDag-Erling Smørgrav} 112a0dfb066SDag-Erling Smørgrav 113*6f6166e4SDag-Erling Smørgravatf_test_case chdir 114*6f6166e4SDag-Erling Smørgravchdir_head() 115*6f6166e4SDag-Erling Smørgrav{ 116*6f6166e4SDag-Erling Smørgrav atf_set "descr" "Change working directory" 117*6f6166e4SDag-Erling Smørgrav} 118*6f6166e4SDag-Erling Smørgravchdir_body() 119*6f6166e4SDag-Erling Smørgrav{ 120*6f6166e4SDag-Erling Smørgrav local subdir="dir.$$" 121*6f6166e4SDag-Erling Smørgrav atf_check -o inline:"${PWD}\n" \ 122*6f6166e4SDag-Erling Smørgrav env pwd 123*6f6166e4SDag-Erling Smørgrav atf_check -s exit:125 -e match:"must specify command" \ 124*6f6166e4SDag-Erling Smørgrav env -C "${subdir}" 125*6f6166e4SDag-Erling Smørgrav atf_check -s exit:125 \ 126*6f6166e4SDag-Erling Smørgrav -e match:"cannot change directory to '${subdir}':" \ 127*6f6166e4SDag-Erling Smørgrav env -C "${subdir}" pwd 128*6f6166e4SDag-Erling Smørgrav atf_check mkdir "${subdir}" 129*6f6166e4SDag-Erling Smørgrav atf_check -o inline:"${PWD}/${subdir}\n" \ 130*6f6166e4SDag-Erling Smørgrav env -C "${subdir}" pwd 131*6f6166e4SDag-Erling Smørgrav} 132*6f6166e4SDag-Erling Smørgrav 133334af5e4SDag-Erling Smørgravatf_init_test_cases() 134334af5e4SDag-Erling Smørgrav{ 135334af5e4SDag-Erling Smørgrav atf_add_test_case basic 136334af5e4SDag-Erling Smørgrav atf_add_test_case unset 137334af5e4SDag-Erling Smørgrav atf_add_test_case empty 138334af5e4SDag-Erling Smørgrav atf_add_test_case true 139334af5e4SDag-Erling Smørgrav atf_add_test_case false 140334af5e4SDag-Erling Smørgrav atf_add_test_case altpath 141a0dfb066SDag-Erling Smørgrav atf_add_test_case equal 142*6f6166e4SDag-Erling Smørgrav atf_add_test_case chdir 143334af5e4SDag-Erling Smørgrav} 144