1*bbf12e6fSEnji Cooper 2*bbf12e6fSEnji Cooperbad_interp_len_head() 3*bbf12e6fSEnji Cooper{ 4*bbf12e6fSEnji Cooper atf_set "descr" "Bad interpreter length" 5*bbf12e6fSEnji Cooper} 6*bbf12e6fSEnji Cooperbad_interp_len_body() 7*bbf12e6fSEnji Cooper{ 8*bbf12e6fSEnji Cooper atf_check -s exit:1 -e 'match:No such file or directory' -o empty \ 9*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper bad_interp_len" 10*bbf12e6fSEnji Cooper} 11*bbf12e6fSEnji Cooper 12*bbf12e6fSEnji Cooperempty_head() 13*bbf12e6fSEnji Cooper{ 14*bbf12e6fSEnji Cooper atf_set "descr" "Empty file" 15*bbf12e6fSEnji Cooper} 16*bbf12e6fSEnji Cooperempty_body() 17*bbf12e6fSEnji Cooper{ 18*bbf12e6fSEnji Cooper atf_check -s exit:1 -e 'match:Exec format error' -o empty \ 19*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper empty" 20*bbf12e6fSEnji Cooper} 21*bbf12e6fSEnji Cooper 22*bbf12e6fSEnji Coopergood_aout_head() 23*bbf12e6fSEnji Cooper{ 24*bbf12e6fSEnji Cooper atf_set "descr" "Good a.out" 25*bbf12e6fSEnji Cooper} 26*bbf12e6fSEnji Coopergood_aout_body() 27*bbf12e6fSEnji Cooper{ 28*bbf12e6fSEnji Cooper atf_check -s exit:0 -e empty -o 'match:succeeded' \ 29*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper ./good_aout" 30*bbf12e6fSEnji Cooper} 31*bbf12e6fSEnji Cooper 32*bbf12e6fSEnji Coopergood_script_head() 33*bbf12e6fSEnji Cooper{ 34*bbf12e6fSEnji Cooper atf_set "descr" "Good script" 35*bbf12e6fSEnji Cooper} 36*bbf12e6fSEnji Coopergood_script_body() 37*bbf12e6fSEnji Cooper{ 38*bbf12e6fSEnji Cooper atf_check -s exit:0 -e empty -o 'match:succeeded' \ 39*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper good_script" 40*bbf12e6fSEnji Cooper} 41*bbf12e6fSEnji Cooper 42*bbf12e6fSEnji Coopernon_exist_head() 43*bbf12e6fSEnji Cooper{ 44*bbf12e6fSEnji Cooper atf_set "descr" "Non-existent file" 45*bbf12e6fSEnji Cooper} 46*bbf12e6fSEnji Coopernon_exist_body() 47*bbf12e6fSEnji Cooper{ 48*bbf12e6fSEnji Cooper atf_check -s exit:1 -e 'match:No such file or directory' -o empty \ 49*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper non_exist" 50*bbf12e6fSEnji Cooper} 51*bbf12e6fSEnji Cooper 52*bbf12e6fSEnji Coopernon_exist_shell_head() 53*bbf12e6fSEnji Cooper{ 54*bbf12e6fSEnji Cooper atf_set "descr" "Non-existent shell" 55*bbf12e6fSEnji Cooper} 56*bbf12e6fSEnji Coopernon_exist_shell_body() 57*bbf12e6fSEnji Cooper{ 58*bbf12e6fSEnji Cooper atf_check -s exit:1 -e 'match:No such file or directory' -o empty \ 59*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper non_exist_shell" 60*bbf12e6fSEnji Cooper} 61*bbf12e6fSEnji Cooper 62*bbf12e6fSEnji Cooperscript_arg_head() 63*bbf12e6fSEnji Cooper{ 64*bbf12e6fSEnji Cooper atf_set "descr" "-x in the shebang" 65*bbf12e6fSEnji Cooper} 66*bbf12e6fSEnji Cooperscript_arg_body() 67*bbf12e6fSEnji Cooper{ 68*bbf12e6fSEnji Cooper atf_check -s exit:0 -e 'match:\+ echo succeeded' -o 'match:succeeded' \ 69*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper script_arg" 70*bbf12e6fSEnji Cooper} 71*bbf12e6fSEnji Cooper 72*bbf12e6fSEnji Cooperscript_arg_nospace_head() 73*bbf12e6fSEnji Cooper{ 74*bbf12e6fSEnji Cooper atf_set "descr" '-x in the shebang; no space between #! and /bin/sh' 75*bbf12e6fSEnji Cooper} 76*bbf12e6fSEnji Cooperscript_arg_nospace_body() 77*bbf12e6fSEnji Cooper{ 78*bbf12e6fSEnji Cooper atf_check -s exit:0 -e 'match:\+ echo succeeded' -o 'match:succeeded' \ 79*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper script_arg_nospace" 80*bbf12e6fSEnji Cooper} 81*bbf12e6fSEnji Cooper 82*bbf12e6fSEnji Coopersparse_aout_head() 83*bbf12e6fSEnji Cooper{ 84*bbf12e6fSEnji Cooper atf_set "descr" 'Sparse file' 85*bbf12e6fSEnji Cooper} 86*bbf12e6fSEnji Coopersparse_aout_body() 87*bbf12e6fSEnji Cooper{ 88*bbf12e6fSEnji Cooper atf_check -s exit:1 -e 'match:Exec format error' -o empty \ 89*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper sparse_aout" 90*bbf12e6fSEnji Cooper} 91*bbf12e6fSEnji Cooper 92*bbf12e6fSEnji Coopertrunc_aout_head() 93*bbf12e6fSEnji Cooper{ 94*bbf12e6fSEnji Cooper atf_set "descr" 'Truncated file' 95*bbf12e6fSEnji Cooper} 96*bbf12e6fSEnji Coopertrunc_aout_body() 97*bbf12e6fSEnji Cooper{ 98*bbf12e6fSEnji Cooper atf_check -s exit:1 -e 'match:Exec format error' -o empty \ 99*bbf12e6fSEnji Cooper -x "cd $(atf_get_srcdir) && ./execve_helper trunc_aout" 100*bbf12e6fSEnji Cooper} 101*bbf12e6fSEnji Cooper 102*bbf12e6fSEnji Cooperatf_init_test_cases() 103*bbf12e6fSEnji Cooper{ 104*bbf12e6fSEnji Cooper atf_add_test_case bad_interp_len 105*bbf12e6fSEnji Cooper atf_add_test_case empty 106*bbf12e6fSEnji Cooper atf_add_test_case good_aout 107*bbf12e6fSEnji Cooper atf_add_test_case good_script 108*bbf12e6fSEnji Cooper atf_add_test_case non_exist 109*bbf12e6fSEnji Cooper atf_add_test_case non_exist_shell 110*bbf12e6fSEnji Cooper atf_add_test_case script_arg 111*bbf12e6fSEnji Cooper atf_add_test_case script_arg_nospace 112*bbf12e6fSEnji Cooper atf_add_test_case sparse_aout 113*bbf12e6fSEnji Cooper atf_add_test_case trunc_aout 114*bbf12e6fSEnji Cooper 115*bbf12e6fSEnji Cooper} 116