1 1.1 jmmv #! /bin/sh 2 1.1 jmmv # Generated from bootstrap/testsuite.at by GNU Autoconf 2.69. 3 1.1 jmmv # 4 1.1 jmmv # Copyright (C) 2009-2012 Free Software Foundation, Inc. 5 1.1 jmmv # 6 1.1 jmmv # This test suite is free software; the Free Software Foundation gives 7 1.1 jmmv # unlimited permission to copy, distribute and modify it. 8 1.1 jmmv ## -------------------- ## 9 1.1 jmmv ## M4sh Initialization. ## 10 1.1 jmmv ## -------------------- ## 11 1.1 jmmv 12 1.1 jmmv # Be more Bourne compatible 13 1.1 jmmv DUALCASE=1; export DUALCASE # for MKS sh 14 1.1 jmmv if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : 15 1.1 jmmv emulate sh 16 1.1 jmmv NULLCMD=: 17 1.1 jmmv # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which 18 1.1 jmmv # is contrary to our usage. Disable this feature. 19 1.1 jmmv alias -g '${1+"$@"}'='"$@"' 20 1.1 jmmv setopt NO_GLOB_SUBST 21 1.1 jmmv else 22 1.1 jmmv case `(set -o) 2>/dev/null` in #( 23 1.1 jmmv *posix*) : 24 1.1 jmmv set -o posix ;; #( 25 1.1 jmmv *) : 26 1.1 jmmv ;; 27 1.1 jmmv esac 28 1.1 jmmv fi 29 1.1 jmmv 30 1.1 jmmv 31 1.1 jmmv as_nl=' 32 1.1 jmmv ' 33 1.1 jmmv export as_nl 34 1.1 jmmv # Printing a long string crashes Solaris 7 /usr/bin/printf. 35 1.1 jmmv as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' 36 1.1 jmmv as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo 37 1.1 jmmv as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo 38 1.1 jmmv # Prefer a ksh shell builtin over an external printf program on Solaris, 39 1.1 jmmv # but without wasting forks for bash or zsh. 40 1.1 jmmv if test -z "$BASH_VERSION$ZSH_VERSION" \ 41 1.1 jmmv && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then 42 1.1 jmmv as_echo='print -r --' 43 1.1 jmmv as_echo_n='print -rn --' 44 1.1 jmmv elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then 45 1.1 jmmv as_echo='printf %s\n' 46 1.1 jmmv as_echo_n='printf %s' 47 1.1 jmmv else 48 1.1 jmmv if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then 49 1.1 jmmv as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' 50 1.1 jmmv as_echo_n='/usr/ucb/echo -n' 51 1.1 jmmv else 52 1.1 jmmv as_echo_body='eval expr "X$1" : "X\\(.*\\)"' 53 1.1 jmmv as_echo_n_body='eval 54 1.1 jmmv arg=$1; 55 1.1 jmmv case $arg in #( 56 1.1 jmmv *"$as_nl"*) 57 1.1 jmmv expr "X$arg" : "X\\(.*\\)$as_nl"; 58 1.1 jmmv arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; 59 1.1 jmmv esac; 60 1.1 jmmv expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" 61 1.1 jmmv ' 62 1.1 jmmv export as_echo_n_body 63 1.1 jmmv as_echo_n='sh -c $as_echo_n_body as_echo' 64 1.1 jmmv fi 65 1.1 jmmv export as_echo_body 66 1.1 jmmv as_echo='sh -c $as_echo_body as_echo' 67 1.1 jmmv fi 68 1.1 jmmv 69 1.1 jmmv # The user is always right. 70 1.1 jmmv if test "${PATH_SEPARATOR+set}" != set; then 71 1.1 jmmv PATH_SEPARATOR=: 72 1.1 jmmv (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { 73 1.1 jmmv (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || 74 1.1 jmmv PATH_SEPARATOR=';' 75 1.1 jmmv } 76 1.1 jmmv fi 77 1.1 jmmv 78 1.1 jmmv 79 1.1 jmmv # IFS 80 1.1 jmmv # We need space, tab and new line, in precisely that order. Quoting is 81 1.1 jmmv # there to prevent editors from complaining about space-tab. 82 1.1 jmmv # (If _AS_PATH_WALK were called with IFS unset, it would disable word 83 1.1 jmmv # splitting by setting IFS to empty value.) 84 1.1 jmmv IFS=" "" $as_nl" 85 1.1 jmmv 86 1.1 jmmv # Find who we are. Look in the path if we contain no directory separator. 87 1.1 jmmv as_myself= 88 1.1 jmmv case $0 in #(( 89 1.1 jmmv *[\\/]* ) as_myself=$0 ;; 90 1.1 jmmv *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 91 1.1 jmmv for as_dir in $PATH 92 1.1 jmmv do 93 1.1 jmmv IFS=$as_save_IFS 94 1.1 jmmv test -z "$as_dir" && as_dir=. 95 1.1 jmmv test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break 96 1.1 jmmv done 97 1.1 jmmv IFS=$as_save_IFS 98 1.1 jmmv 99 1.1 jmmv ;; 100 1.1 jmmv esac 101 1.1 jmmv # We did not find ourselves, most probably we were run as `sh COMMAND' 102 1.1 jmmv # in which case we are not to be found in the path. 103 1.1 jmmv if test "x$as_myself" = x; then 104 1.1 jmmv as_myself=$0 105 1.1 jmmv fi 106 1.1 jmmv if test ! -f "$as_myself"; then 107 1.1 jmmv $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 108 1.1 jmmv exit 1 109 1.1 jmmv fi 110 1.1 jmmv 111 1.1 jmmv # Unset variables that we do not need and which cause bugs (e.g. in 112 1.1 jmmv # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" 113 1.1 jmmv # suppresses any "Segmentation fault" message there. '((' could 114 1.1 jmmv # trigger a bug in pdksh 5.2.14. 115 1.1 jmmv for as_var in BASH_ENV ENV MAIL MAILPATH 116 1.1 jmmv do eval test x\${$as_var+set} = xset \ 117 1.1 jmmv && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : 118 1.1 jmmv done 119 1.1 jmmv PS1='$ ' 120 1.1 jmmv PS2='> ' 121 1.1 jmmv PS4='+ ' 122 1.1 jmmv 123 1.1 jmmv # NLS nuisances. 124 1.1 jmmv LC_ALL=C 125 1.1 jmmv export LC_ALL 126 1.1 jmmv LANGUAGE=C 127 1.1 jmmv export LANGUAGE 128 1.1 jmmv 129 1.1 jmmv # CDPATH. 130 1.1 jmmv (unset CDPATH) >/dev/null 2>&1 && unset CDPATH 131 1.1 jmmv 132 1.1 jmmv if test "x$CONFIG_SHELL" = x; then 133 1.1 jmmv as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : 134 1.1 jmmv emulate sh 135 1.1 jmmv NULLCMD=: 136 1.1 jmmv # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which 137 1.1 jmmv # is contrary to our usage. Disable this feature. 138 1.1 jmmv alias -g '\${1+\"\$@\"}'='\"\$@\"' 139 1.1 jmmv setopt NO_GLOB_SUBST 140 1.1 jmmv else 141 1.1 jmmv case \`(set -o) 2>/dev/null\` in #( 142 1.1 jmmv *posix*) : 143 1.1 jmmv set -o posix ;; #( 144 1.1 jmmv *) : 145 1.1 jmmv ;; 146 1.1 jmmv esac 147 1.1 jmmv fi 148 1.1 jmmv " 149 1.1 jmmv as_required="as_fn_return () { (exit \$1); } 150 1.1 jmmv as_fn_success () { as_fn_return 0; } 151 1.1 jmmv as_fn_failure () { as_fn_return 1; } 152 1.1 jmmv as_fn_ret_success () { return 0; } 153 1.1 jmmv as_fn_ret_failure () { return 1; } 154 1.1 jmmv 155 1.1 jmmv exitcode=0 156 1.1 jmmv as_fn_success || { exitcode=1; echo as_fn_success failed.; } 157 1.1 jmmv as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } 158 1.1 jmmv as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } 159 1.1 jmmv as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } 160 1.1 jmmv if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : 161 1.1 jmmv 162 1.1 jmmv else 163 1.1 jmmv exitcode=1; echo positional parameters were not saved. 164 1.1 jmmv fi 165 1.1 jmmv test x\$exitcode = x0 || exit 1 166 1.1 jmmv test -x / || exit 1" 167 1.1 jmmv as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO 168 1.1 jmmv as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO 169 1.1 jmmv eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && 170 1.1 jmmv test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 171 1.1 jmmv test \$(( 1 + 1 )) = 2 || exit 1" 172 1.1 jmmv if (eval "$as_required") 2>/dev/null; then : 173 1.1 jmmv as_have_required=yes 174 1.1 jmmv else 175 1.1 jmmv as_have_required=no 176 1.1 jmmv fi 177 1.1 jmmv if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : 178 1.1 jmmv 179 1.1 jmmv else 180 1.1 jmmv as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 181 1.1 jmmv as_found=false 182 1.1 jmmv for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH 183 1.1 jmmv do 184 1.1 jmmv IFS=$as_save_IFS 185 1.1 jmmv test -z "$as_dir" && as_dir=. 186 1.1 jmmv as_found=: 187 1.1 jmmv case $as_dir in #( 188 1.1 jmmv /*) 189 1.1 jmmv for as_base in sh bash ksh sh5; do 190 1.1 jmmv # Try only shells that exist, to save several forks. 191 1.1 jmmv as_shell=$as_dir/$as_base 192 1.1 jmmv if { test -f "$as_shell" || test -f "$as_shell.exe"; } && 193 1.1 jmmv { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : 194 1.1 jmmv CONFIG_SHELL=$as_shell as_have_required=yes 195 1.1 jmmv if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : 196 1.1 jmmv break 2 197 1.1 jmmv fi 198 1.1 jmmv fi 199 1.1 jmmv done;; 200 1.1 jmmv esac 201 1.1 jmmv as_found=false 202 1.1 jmmv done 203 1.1 jmmv $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && 204 1.1 jmmv { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : 205 1.1 jmmv CONFIG_SHELL=$SHELL as_have_required=yes 206 1.1 jmmv fi; } 207 1.1 jmmv IFS=$as_save_IFS 208 1.1 jmmv 209 1.1 jmmv 210 1.1 jmmv if test "x$CONFIG_SHELL" != x; then : 211 1.1 jmmv export CONFIG_SHELL 212 1.1 jmmv # We cannot yet assume a decent shell, so we have to provide a 213 1.1 jmmv # neutralization value for shells without unset; and this also 214 1.1 jmmv # works around shells that cannot unset nonexistent variables. 215 1.1 jmmv # Preserve -v and -x to the replacement shell. 216 1.1 jmmv BASH_ENV=/dev/null 217 1.1 jmmv ENV=/dev/null 218 1.1 jmmv (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV 219 1.1 jmmv case $- in # (((( 220 1.1 jmmv *v*x* | *x*v* ) as_opts=-vx ;; 221 1.1 jmmv *v* ) as_opts=-v ;; 222 1.1 jmmv *x* ) as_opts=-x ;; 223 1.1 jmmv * ) as_opts= ;; 224 1.1 jmmv esac 225 1.1 jmmv exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} 226 1.1 jmmv # Admittedly, this is quite paranoid, since all the known shells bail 227 1.1 jmmv # out after a failed `exec'. 228 1.1 jmmv $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 229 1.1 jmmv exit 255 230 1.1 jmmv fi 231 1.1 jmmv 232 1.1 jmmv if test x$as_have_required = xno; then : 233 1.1 jmmv $as_echo "$0: This script requires a shell more modern than all" 234 1.1 jmmv $as_echo "$0: the shells that I found on your system." 235 1.1 jmmv if test x${ZSH_VERSION+set} = xset ; then 236 1.1 jmmv $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" 237 1.1 jmmv $as_echo "$0: be upgraded to zsh 4.3.4 or later." 238 1.1 jmmv else 239 1.1 jmmv $as_echo "$0: Please tell bug-autoconf (at] gnu.org about your system, 240 1.1 jmmv $0: including any error possibly output before this 241 1.1 jmmv $0: message. Then install a modern shell, or manually run 242 1.1 jmmv $0: the script under such a shell if you do have one." 243 1.1 jmmv fi 244 1.1 jmmv exit 1 245 1.1 jmmv fi 246 1.1 jmmv fi 247 1.1 jmmv fi 248 1.1 jmmv SHELL=${CONFIG_SHELL-/bin/sh} 249 1.1 jmmv export SHELL 250 1.1 jmmv # Unset more variables known to interfere with behavior of common tools. 251 1.1 jmmv CLICOLOR_FORCE= GREP_OPTIONS= 252 1.1 jmmv unset CLICOLOR_FORCE GREP_OPTIONS 253 1.1 jmmv 254 1.1 jmmv ## --------------------- ## 255 1.1 jmmv ## M4sh Shell Functions. ## 256 1.1 jmmv ## --------------------- ## 257 1.1 jmmv # as_fn_unset VAR 258 1.1 jmmv # --------------- 259 1.1 jmmv # Portably unset VAR. 260 1.1 jmmv as_fn_unset () 261 1.1 jmmv { 262 1.1 jmmv { eval $1=; unset $1;} 263 1.1 jmmv } 264 1.1 jmmv as_unset=as_fn_unset 265 1.1 jmmv 266 1.1 jmmv # as_fn_set_status STATUS 267 1.1 jmmv # ----------------------- 268 1.1 jmmv # Set $? to STATUS, without forking. 269 1.1 jmmv as_fn_set_status () 270 1.1 jmmv { 271 1.1 jmmv return $1 272 1.1 jmmv } # as_fn_set_status 273 1.1 jmmv 274 1.1 jmmv # as_fn_exit STATUS 275 1.1 jmmv # ----------------- 276 1.1 jmmv # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. 277 1.1 jmmv as_fn_exit () 278 1.1 jmmv { 279 1.1 jmmv set +e 280 1.1 jmmv as_fn_set_status $1 281 1.1 jmmv exit $1 282 1.1 jmmv } # as_fn_exit 283 1.1 jmmv 284 1.1 jmmv # as_fn_mkdir_p 285 1.1 jmmv # ------------- 286 1.1 jmmv # Create "$as_dir" as a directory, including parents if necessary. 287 1.1 jmmv as_fn_mkdir_p () 288 1.1 jmmv { 289 1.1 jmmv 290 1.1 jmmv case $as_dir in #( 291 1.1 jmmv -*) as_dir=./$as_dir;; 292 1.1 jmmv esac 293 1.1 jmmv test -d "$as_dir" || eval $as_mkdir_p || { 294 1.1 jmmv as_dirs= 295 1.1 jmmv while :; do 296 1.1 jmmv case $as_dir in #( 297 1.1 jmmv *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( 298 1.1 jmmv *) as_qdir=$as_dir;; 299 1.1 jmmv esac 300 1.1 jmmv as_dirs="'$as_qdir' $as_dirs" 301 1.1 jmmv as_dir=`$as_dirname -- "$as_dir" || 302 1.1 jmmv $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ 303 1.1 jmmv X"$as_dir" : 'X\(//\)[^/]' \| \ 304 1.1 jmmv X"$as_dir" : 'X\(//\)$' \| \ 305 1.1 jmmv X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || 306 1.1 jmmv $as_echo X"$as_dir" | 307 1.1 jmmv sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ 308 1.1 jmmv s//\1/ 309 1.1 jmmv q 310 1.1 jmmv } 311 1.1 jmmv /^X\(\/\/\)[^/].*/{ 312 1.1 jmmv s//\1/ 313 1.1 jmmv q 314 1.1 jmmv } 315 1.1 jmmv /^X\(\/\/\)$/{ 316 1.1 jmmv s//\1/ 317 1.1 jmmv q 318 1.1 jmmv } 319 1.1 jmmv /^X\(\/\).*/{ 320 1.1 jmmv s//\1/ 321 1.1 jmmv q 322 1.1 jmmv } 323 1.1 jmmv s/.*/./; q'` 324 1.1 jmmv test -d "$as_dir" && break 325 1.1 jmmv done 326 1.1 jmmv test -z "$as_dirs" || eval "mkdir $as_dirs" 327 1.1 jmmv } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 328 1.1 jmmv 329 1.1 jmmv 330 1.1 jmmv } # as_fn_mkdir_p 331 1.1 jmmv 332 1.1 jmmv # as_fn_executable_p FILE 333 1.1 jmmv # ----------------------- 334 1.1 jmmv # Test if FILE is an executable regular file. 335 1.1 jmmv as_fn_executable_p () 336 1.1 jmmv { 337 1.1 jmmv test -f "$1" && test -x "$1" 338 1.1 jmmv } # as_fn_executable_p 339 1.1 jmmv # as_fn_append VAR VALUE 340 1.1 jmmv # ---------------------- 341 1.1 jmmv # Append the text in VALUE to the end of the definition contained in VAR. Take 342 1.1 jmmv # advantage of any shell optimizations that allow amortized linear growth over 343 1.1 jmmv # repeated appends, instead of the typical quadratic growth present in naive 344 1.1 jmmv # implementations. 345 1.1 jmmv if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : 346 1.1 jmmv eval 'as_fn_append () 347 1.1 jmmv { 348 1.1 jmmv eval $1+=\$2 349 1.1 jmmv }' 350 1.1 jmmv else 351 1.1 jmmv as_fn_append () 352 1.1 jmmv { 353 1.1 jmmv eval $1=\$$1\$2 354 1.1 jmmv } 355 1.1 jmmv fi # as_fn_append 356 1.1 jmmv 357 1.1 jmmv # as_fn_arith ARG... 358 1.1 jmmv # ------------------ 359 1.1 jmmv # Perform arithmetic evaluation on the ARGs, and store the result in the 360 1.1 jmmv # global $as_val. Take advantage of shells that can avoid forks. The arguments 361 1.1 jmmv # must be portable across $(()) and expr. 362 1.1 jmmv if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : 363 1.1 jmmv eval 'as_fn_arith () 364 1.1 jmmv { 365 1.1 jmmv as_val=$(( $* )) 366 1.1 jmmv }' 367 1.1 jmmv else 368 1.1 jmmv as_fn_arith () 369 1.1 jmmv { 370 1.1 jmmv as_val=`expr "$@" || test $? -eq 1` 371 1.1 jmmv } 372 1.1 jmmv fi # as_fn_arith 373 1.1 jmmv 374 1.1 jmmv 375 1.1 jmmv # as_fn_error STATUS ERROR [LINENO LOG_FD] 376 1.1 jmmv # ---------------------------------------- 377 1.1 jmmv # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 378 1.1 jmmv # provided, also output the error to LOG_FD, referencing LINENO. Then exit the 379 1.1 jmmv # script with STATUS, using 1 if that was 0. 380 1.1 jmmv as_fn_error () 381 1.1 jmmv { 382 1.1 jmmv as_status=$1; test $as_status -eq 0 && as_status=1 383 1.1 jmmv if test "$4"; then 384 1.1 jmmv as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 385 1.1 jmmv $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 386 1.1 jmmv fi 387 1.1 jmmv $as_echo "$as_me: error: $2" >&2 388 1.1 jmmv as_fn_exit $as_status 389 1.1 jmmv } # as_fn_error 390 1.1 jmmv 391 1.1 jmmv if expr a : '\(a\)' >/dev/null 2>&1 && 392 1.1 jmmv test "X`expr 00001 : '.*\(...\)'`" = X001; then 393 1.1 jmmv as_expr=expr 394 1.1 jmmv else 395 1.1 jmmv as_expr=false 396 1.1 jmmv fi 397 1.1 jmmv 398 1.1 jmmv if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then 399 1.1 jmmv as_basename=basename 400 1.1 jmmv else 401 1.1 jmmv as_basename=false 402 1.1 jmmv fi 403 1.1 jmmv 404 1.1 jmmv as_me=`$as_basename -- "$0" || 405 1.1 jmmv $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ 406 1.1 jmmv X"$0" : 'X\(//\)$' \| \ 407 1.1 jmmv X"$0" : 'X\(/\)' \| . 2>/dev/null || 408 1.1 jmmv $as_echo X/"$0" | 409 1.1 jmmv sed '/^.*\/\([^/][^/]*\)\/*$/{ 410 1.1 jmmv s//\1/ 411 1.1 jmmv q 412 1.1 jmmv } 413 1.1 jmmv /^X\/\(\/\/\)$/{ 414 1.1 jmmv s//\1/ 415 1.1 jmmv q 416 1.1 jmmv } 417 1.1 jmmv /^X\/\(\/\).*/{ 418 1.1 jmmv s//\1/ 419 1.1 jmmv q 420 1.1 jmmv } 421 1.1 jmmv s/.*/./; q'` 422 1.1 jmmv 423 1.1 jmmv if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then 424 1.1 jmmv as_dirname=dirname 425 1.1 jmmv else 426 1.1 jmmv as_dirname=false 427 1.1 jmmv fi 428 1.1 jmmv 429 1.1 jmmv # Avoid depending upon Character Ranges. 430 1.1 jmmv as_cr_letters='abcdefghijklmnopqrstuvwxyz' 431 1.1 jmmv as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' 432 1.1 jmmv as_cr_Letters=$as_cr_letters$as_cr_LETTERS 433 1.1 jmmv as_cr_digits='0123456789' 434 1.1 jmmv as_cr_alnum=$as_cr_Letters$as_cr_digits 435 1.1 jmmv 436 1.1 jmmv 437 1.1 jmmv as_lineno_1=$LINENO as_lineno_1a=$LINENO 438 1.1 jmmv as_lineno_2=$LINENO as_lineno_2a=$LINENO 439 1.1 jmmv eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && 440 1.1 jmmv test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { 441 1.1 jmmv # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) 442 1.1 jmmv sed -n ' 443 1.1 jmmv p 444 1.1 jmmv /[$]LINENO/= 445 1.1 jmmv ' <$as_myself | 446 1.1 jmmv sed ' 447 1.1 jmmv s/[$]LINENO.*/&-/ 448 1.1 jmmv t lineno 449 1.1 jmmv b 450 1.1 jmmv :lineno 451 1.1 jmmv N 452 1.1 jmmv :loop 453 1.1 jmmv s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ 454 1.1 jmmv t loop 455 1.1 jmmv s/-\n.*// 456 1.1 jmmv ' >$as_me.lineno && 457 1.1 jmmv chmod +x "$as_me.lineno" || 458 1.1 jmmv { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } 459 1.1 jmmv 460 1.1 jmmv # If we had to re-execute with $CONFIG_SHELL, we're ensured to have 461 1.1 jmmv # already done that, so ensure we don't try to do so again and fall 462 1.1 jmmv # in an infinite loop. This has already happened in practice. 463 1.1 jmmv _as_can_reexec=no; export _as_can_reexec 464 1.1 jmmv # Don't try to exec as it changes $[0], causing all sort of problems 465 1.1 jmmv # (the dirname of $[0] is not the place where we might find the 466 1.1 jmmv # original and so on. Autoconf is especially sensitive to this). 467 1.1 jmmv . "./$as_me.lineno" 468 1.1 jmmv # Exit status is that of the last command. 469 1.1 jmmv exit 470 1.1 jmmv } 471 1.1 jmmv 472 1.1 jmmv ECHO_C= ECHO_N= ECHO_T= 473 1.1 jmmv case `echo -n x` in #((((( 474 1.1 jmmv -n*) 475 1.1 jmmv case `echo 'xy\c'` in 476 1.1 jmmv *c*) ECHO_T=' ';; # ECHO_T is single tab character. 477 1.1 jmmv xy) ECHO_C='\c';; 478 1.1 jmmv *) echo `echo ksh88 bug on AIX 6.1` > /dev/null 479 1.1 jmmv ECHO_T=' ';; 480 1.1 jmmv esac;; 481 1.1 jmmv *) 482 1.1 jmmv ECHO_N='-n';; 483 1.1 jmmv esac 484 1.1 jmmv 485 1.1 jmmv rm -f conf$$ conf$$.exe conf$$.file 486 1.1 jmmv if test -d conf$$.dir; then 487 1.1 jmmv rm -f conf$$.dir/conf$$.file 488 1.1 jmmv else 489 1.1 jmmv rm -f conf$$.dir 490 1.1 jmmv mkdir conf$$.dir 2>/dev/null 491 1.1 jmmv fi 492 1.1 jmmv if (echo >conf$$.file) 2>/dev/null; then 493 1.1 jmmv if ln -s conf$$.file conf$$ 2>/dev/null; then 494 1.1 jmmv as_ln_s='ln -s' 495 1.1 jmmv # ... but there are two gotchas: 496 1.1 jmmv # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. 497 1.1 jmmv # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. 498 1.1 jmmv # In both cases, we have to default to `cp -pR'. 499 1.1 jmmv ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || 500 1.1 jmmv as_ln_s='cp -pR' 501 1.1 jmmv elif ln conf$$.file conf$$ 2>/dev/null; then 502 1.1 jmmv as_ln_s=ln 503 1.1 jmmv else 504 1.1 jmmv as_ln_s='cp -pR' 505 1.1 jmmv fi 506 1.1 jmmv else 507 1.1 jmmv as_ln_s='cp -pR' 508 1.1 jmmv fi 509 1.1 jmmv rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file 510 1.1 jmmv rmdir conf$$.dir 2>/dev/null 511 1.1 jmmv 512 1.1 jmmv if mkdir -p . 2>/dev/null; then 513 1.1 jmmv as_mkdir_p='mkdir -p "$as_dir"' 514 1.1 jmmv else 515 1.1 jmmv test -d ./-p && rmdir ./-p 516 1.1 jmmv as_mkdir_p=false 517 1.1 jmmv fi 518 1.1 jmmv 519 1.1 jmmv as_test_x='test -x' 520 1.1 jmmv as_executable_p=as_fn_executable_p 521 1.1 jmmv 522 1.1 jmmv # Sed expression to map a string onto a valid CPP name. 523 1.1 jmmv as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" 524 1.1 jmmv 525 1.1 jmmv # Sed expression to map a string onto a valid variable name. 526 1.1 jmmv as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" 527 1.1 jmmv 528 1.1 jmmv 529 1.1 jmmv 530 1.1 jmmv 531 1.1 jmmv 532 1.1 jmmv SHELL=${CONFIG_SHELL-/bin/sh} 533 1.1 jmmv 534 1.1 jmmv # How were we run? 535 1.1 jmmv at_cli_args="$@" 536 1.1 jmmv 537 1.1 jmmv 538 1.1 jmmv # Not all shells have the 'times' builtin; the subshell is needed to make 539 1.1 jmmv # sure we discard the 'times: not found' message from the shell. 540 1.1 jmmv at_times_p=false 541 1.1 jmmv (times) >/dev/null 2>&1 && at_times_p=: 542 1.1 jmmv 543 1.1 jmmv # CLI Arguments to pass to the debugging scripts. 544 1.1 jmmv at_debug_args= 545 1.1 jmmv # -e sets to true 546 1.1 jmmv at_errexit_p=false 547 1.1 jmmv # Shall we be verbose? ':' means no, empty means yes. 548 1.1 jmmv at_verbose=: 549 1.1 jmmv at_quiet= 550 1.1 jmmv # Running several jobs in parallel, 0 means as many as test groups. 551 1.1 jmmv at_jobs=1 552 1.1 jmmv at_traceon=: 553 1.1 jmmv at_trace_echo=: 554 1.1 jmmv at_check_filter_trace=: 555 1.1 jmmv 556 1.1 jmmv # Shall we keep the debug scripts? Must be `:' when the suite is 557 1.1 jmmv # run by a debug script, so that the script doesn't remove itself. 558 1.1 jmmv at_debug_p=false 559 1.1 jmmv # Display help message? 560 1.1 jmmv at_help_p=false 561 1.1 jmmv # Display the version message? 562 1.1 jmmv at_version_p=false 563 1.1 jmmv # List test groups? 564 1.1 jmmv at_list_p=false 565 1.1 jmmv # --clean 566 1.1 jmmv at_clean=false 567 1.1 jmmv # Test groups to run 568 1.1 jmmv at_groups= 569 1.1 jmmv # Whether to rerun failed tests. 570 1.1 jmmv at_recheck= 571 1.1 jmmv # Whether a write failure occurred 572 1.1 jmmv at_write_fail=0 573 1.1 jmmv 574 1.1 jmmv # The directory we run the suite in. Default to . if no -C option. 575 1.1 jmmv at_dir=`pwd` 576 1.1 jmmv # An absolute reference to this testsuite script. 577 1.1 jmmv case $as_myself in 578 1.1 jmmv [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;; 579 1.1 jmmv * ) at_myself=$at_dir/$as_myself ;; 580 1.1 jmmv esac 581 1.1 jmmv # Whether -C is in effect. 582 1.1 jmmv at_change_dir=false 583 1.1 jmmv 584 1.1 jmmv # Whether to enable colored test results. 585 1.1 jmmv at_color=no 586 1.1 jmmv # List of the tested programs. 587 1.1 jmmv at_tested='kyua' 588 1.1 jmmv # As many question marks as there are digits in the last test group number. 589 1.1 jmmv # Used to normalize the test group numbers so that `ls' lists them in 590 1.1 jmmv # numerical order. 591 1.1 jmmv at_format='??' 592 1.1 jmmv # Description of all the test groups. 593 1.1 jmmv at_help_all="1;testsuite.at:70;test program crashes in test list;; 594 1.1 jmmv 2;testsuite.at:81;test program prints an empty test list;; 595 1.1 jmmv 3;testsuite.at:92;test program with zero test cases;; 596 1.1 jmmv 4;testsuite.at:103;run test case that passes;; 597 1.1 jmmv 5;testsuite.at:115;run test case that fails;; 598 1.1 jmmv 6;testsuite.at:128;run test case that skips;; 599 1.1 jmmv 7;testsuite.at:141;run two test cases, success;; 600 1.1 jmmv 8;testsuite.at:154;run two test cases, failure;; 601 1.1 jmmv 9;testsuite.at:167;run mixed test cases;; 602 1.1 jmmv 10;testsuite.at:181;run tests from build directories;; 603 1.1 jmmv " 604 1.1 jmmv # List of the all the test groups. 605 1.1 jmmv at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` 606 1.1 jmmv 607 1.1 jmmv # at_fn_validate_ranges NAME... 608 1.1 jmmv # ----------------------------- 609 1.1 jmmv # Validate and normalize the test group number contained in each variable 610 1.1 jmmv # NAME. Leading zeroes are treated as decimal. 611 1.1 jmmv at_fn_validate_ranges () 612 1.1 jmmv { 613 1.1 jmmv for at_grp 614 1.1 jmmv do 615 1.1 jmmv eval at_value=\$$at_grp 616 1.1 jmmv if test $at_value -lt 1 || test $at_value -gt 10; then 617 1.1 jmmv $as_echo "invalid test group: $at_value" >&2 618 1.1 jmmv exit 1 619 1.1 jmmv fi 620 1.1 jmmv case $at_value in 621 1.1 jmmv 0*) # We want to treat leading 0 as decimal, like expr and test, but 622 1.1 jmmv # AS_VAR_ARITH treats it as octal if it uses $(( )). 623 1.1 jmmv # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the 624 1.1 jmmv # expr fork, but it is not worth the effort to determine if the 625 1.1 jmmv # shell supports XSI when the user can just avoid leading 0. 626 1.1 jmmv eval $at_grp='`expr $at_value + 0`' ;; 627 1.1 jmmv esac 628 1.1 jmmv done 629 1.1 jmmv } 630 1.1 jmmv 631 1.1 jmmv at_prev= 632 1.1 jmmv for at_option 633 1.1 jmmv do 634 1.1 jmmv # If the previous option needs an argument, assign it. 635 1.1 jmmv if test -n "$at_prev"; then 636 1.1 jmmv at_option=$at_prev=$at_option 637 1.1 jmmv at_prev= 638 1.1 jmmv fi 639 1.1 jmmv 640 1.1 jmmv case $at_option in 641 1.1 jmmv *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;; 642 1.1 jmmv *) at_optarg= ;; 643 1.1 jmmv esac 644 1.1 jmmv 645 1.1 jmmv # Accept the important Cygnus configure options, so we can diagnose typos. 646 1.1 jmmv 647 1.1 jmmv case $at_option in 648 1.1 jmmv --help | -h ) 649 1.1 jmmv at_help_p=: 650 1.1 jmmv ;; 651 1.1 jmmv 652 1.1 jmmv --list | -l ) 653 1.1 jmmv at_list_p=: 654 1.1 jmmv ;; 655 1.1 jmmv 656 1.1 jmmv --version | -V ) 657 1.1 jmmv at_version_p=: 658 1.1 jmmv ;; 659 1.1 jmmv 660 1.1 jmmv --clean | -c ) 661 1.1 jmmv at_clean=: 662 1.1 jmmv ;; 663 1.1 jmmv 664 1.1 jmmv --color ) 665 1.1 jmmv at_color=always 666 1.1 jmmv ;; 667 1.1 jmmv --color=* ) 668 1.1 jmmv case $at_optarg in 669 1.1 jmmv no | never | none) at_color=never ;; 670 1.1 jmmv auto | tty | if-tty) at_color=auto ;; 671 1.1 jmmv always | yes | force) at_color=always ;; 672 1.1 jmmv *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'` 673 1.1 jmmv as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;; 674 1.1 jmmv esac 675 1.1 jmmv ;; 676 1.1 jmmv 677 1.1 jmmv --debug | -d ) 678 1.1 jmmv at_debug_p=: 679 1.1 jmmv ;; 680 1.1 jmmv 681 1.1 jmmv --errexit | -e ) 682 1.1 jmmv at_debug_p=: 683 1.1 jmmv at_errexit_p=: 684 1.1 jmmv ;; 685 1.1 jmmv 686 1.1 jmmv --verbose | -v ) 687 1.1 jmmv at_verbose=; at_quiet=: 688 1.1 jmmv ;; 689 1.1 jmmv 690 1.1 jmmv --trace | -x ) 691 1.1 jmmv at_traceon='set -x' 692 1.1 jmmv at_trace_echo=echo 693 1.1 jmmv at_check_filter_trace=at_fn_filter_trace 694 1.1 jmmv ;; 695 1.1 jmmv 696 1.1 jmmv [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) 697 1.1 jmmv at_fn_validate_ranges at_option 698 1.1 jmmv as_fn_append at_groups "$at_option$as_nl" 699 1.1 jmmv ;; 700 1.1 jmmv 701 1.1 jmmv # Ranges 702 1.1 jmmv [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-) 703 1.1 jmmv at_range_start=`echo $at_option |tr -d X-` 704 1.1 jmmv at_fn_validate_ranges at_range_start 705 1.1 jmmv at_range=`$as_echo "$at_groups_all" | \ 706 1.1 jmmv sed -ne '/^'$at_range_start'$/,$p'` 707 1.1 jmmv as_fn_append at_groups "$at_range$as_nl" 708 1.1 jmmv ;; 709 1.1 jmmv 710 1.1 jmmv -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]) 711 1.1 jmmv at_range_end=`echo $at_option |tr -d X-` 712 1.1 jmmv at_fn_validate_ranges at_range_end 713 1.1 jmmv at_range=`$as_echo "$at_groups_all" | \ 714 1.1 jmmv sed -ne '1,/^'$at_range_end'$/p'` 715 1.1 jmmv as_fn_append at_groups "$at_range$as_nl" 716 1.1 jmmv ;; 717 1.1 jmmv 718 1.1 jmmv [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \ 719 1.1 jmmv [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \ 720 1.1 jmmv [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \ 721 1.1 jmmv [0-9][0-9][0-9]-[0-9][0-9][0-9] | \ 722 1.1 jmmv [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \ 723 1.1 jmmv [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ) 724 1.1 jmmv at_range_start=`expr $at_option : '\(.*\)-'` 725 1.1 jmmv at_range_end=`expr $at_option : '.*-\(.*\)'` 726 1.1 jmmv if test $at_range_start -gt $at_range_end; then 727 1.1 jmmv at_tmp=$at_range_end 728 1.1 jmmv at_range_end=$at_range_start 729 1.1 jmmv at_range_start=$at_tmp 730 1.1 jmmv fi 731 1.1 jmmv at_fn_validate_ranges at_range_start at_range_end 732 1.1 jmmv at_range=`$as_echo "$at_groups_all" | \ 733 1.1 jmmv sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'` 734 1.1 jmmv as_fn_append at_groups "$at_range$as_nl" 735 1.1 jmmv ;; 736 1.1 jmmv 737 1.1 jmmv # Directory selection. 738 1.1 jmmv --directory | -C ) 739 1.1 jmmv at_prev=--directory 740 1.1 jmmv ;; 741 1.1 jmmv --directory=* ) 742 1.1 jmmv at_change_dir=: 743 1.1 jmmv at_dir=$at_optarg 744 1.1 jmmv if test x- = "x$at_dir" ; then 745 1.1 jmmv at_dir=./- 746 1.1 jmmv fi 747 1.1 jmmv ;; 748 1.1 jmmv 749 1.1 jmmv # Parallel execution. 750 1.1 jmmv --jobs | -j ) 751 1.1 jmmv at_jobs=0 752 1.1 jmmv ;; 753 1.1 jmmv --jobs=* | -j[0-9]* ) 754 1.1 jmmv if test -n "$at_optarg"; then 755 1.1 jmmv at_jobs=$at_optarg 756 1.1 jmmv else 757 1.1 jmmv at_jobs=`expr X$at_option : 'X-j\(.*\)'` 758 1.1 jmmv fi 759 1.1 jmmv case $at_jobs in *[!0-9]*) 760 1.1 jmmv at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'` 761 1.1 jmmv as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;; 762 1.1 jmmv esac 763 1.1 jmmv ;; 764 1.1 jmmv 765 1.1 jmmv # Keywords. 766 1.1 jmmv --keywords | -k ) 767 1.1 jmmv at_prev=--keywords 768 1.1 jmmv ;; 769 1.1 jmmv --keywords=* ) 770 1.1 jmmv at_groups_selected=$at_help_all 771 1.1 jmmv at_save_IFS=$IFS 772 1.1 jmmv IFS=, 773 1.1 jmmv set X $at_optarg 774 1.1 jmmv shift 775 1.1 jmmv IFS=$at_save_IFS 776 1.1 jmmv for at_keyword 777 1.1 jmmv do 778 1.1 jmmv at_invert= 779 1.1 jmmv case $at_keyword in 780 1.1 jmmv '!'*) 781 1.1 jmmv at_invert="-v" 782 1.1 jmmv at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'` 783 1.1 jmmv ;; 784 1.1 jmmv esac 785 1.1 jmmv # It is on purpose that we match the test group titles too. 786 1.1 jmmv at_groups_selected=`$as_echo "$at_groups_selected" | 787 1.1 jmmv grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` 788 1.1 jmmv done 789 1.1 jmmv # Smash the keywords. 790 1.1 jmmv at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'` 791 1.1 jmmv as_fn_append at_groups "$at_groups_selected$as_nl" 792 1.1 jmmv ;; 793 1.1 jmmv --recheck) 794 1.1 jmmv at_recheck=: 795 1.1 jmmv ;; 796 1.1 jmmv 797 1.1 jmmv *=*) 798 1.1 jmmv at_envvar=`expr "x$at_option" : 'x\([^=]*\)='` 799 1.1 jmmv # Reject names that are not valid shell variable names. 800 1.1 jmmv case $at_envvar in 801 1.1 jmmv '' | [0-9]* | *[!_$as_cr_alnum]* ) 802 1.1 jmmv as_fn_error $? "invalid variable name: \`$at_envvar'" ;; 803 1.1 jmmv esac 804 1.1 jmmv at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` 805 1.1 jmmv # Export now, but save eval for later and for debug scripts. 806 1.1 jmmv export $at_envvar 807 1.1 jmmv as_fn_append at_debug_args " $at_envvar='$at_value'" 808 1.1 jmmv ;; 809 1.1 jmmv 810 1.1 jmmv *) $as_echo "$as_me: invalid option: $at_option" >&2 811 1.1 jmmv $as_echo "Try \`$0 --help' for more information." >&2 812 1.1 jmmv exit 1 813 1.1 jmmv ;; 814 1.1 jmmv esac 815 1.1 jmmv done 816 1.1 jmmv 817 1.1 jmmv # Verify our last option didn't require an argument 818 1.1 jmmv if test -n "$at_prev"; then : 819 1.1 jmmv as_fn_error $? "\`$at_prev' requires an argument" 820 1.1 jmmv fi 821 1.1 jmmv 822 1.1 jmmv # The file containing the suite. 823 1.1 jmmv at_suite_log=$at_dir/$as_me.log 824 1.1 jmmv 825 1.1 jmmv # Selected test groups. 826 1.1 jmmv if test -z "$at_groups$at_recheck"; then 827 1.1 jmmv at_groups=$at_groups_all 828 1.1 jmmv else 829 1.1 jmmv if test -n "$at_recheck" && test -r "$at_suite_log"; then 830 1.1 jmmv at_oldfails=`sed -n ' 831 1.1 jmmv /^Failed tests:$/,/^Skipped tests:$/{ 832 1.1 jmmv s/^[ ]*\([1-9][0-9]*\):.*/\1/p 833 1.1 jmmv } 834 1.1 jmmv /^Unexpected passes:$/,/^## Detailed failed tests/{ 835 1.1 jmmv s/^[ ]*\([1-9][0-9]*\):.*/\1/p 836 1.1 jmmv } 837 1.1 jmmv /^## Detailed failed tests/q 838 1.1 jmmv ' "$at_suite_log"` 839 1.1 jmmv as_fn_append at_groups "$at_oldfails$as_nl" 840 1.1 jmmv fi 841 1.1 jmmv # Sort the tests, removing duplicates. 842 1.1 jmmv at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'` 843 1.1 jmmv fi 844 1.1 jmmv 845 1.1 jmmv if test x"$at_color" = xalways \ 846 1.1 jmmv || { test x"$at_color" = xauto && test -t 1; }; then 847 1.1 jmmv at_red=`printf '\033[0;31m'` 848 1.1 jmmv at_grn=`printf '\033[0;32m'` 849 1.1 jmmv at_lgn=`printf '\033[1;32m'` 850 1.1 jmmv at_blu=`printf '\033[1;34m'` 851 1.1 jmmv at_std=`printf '\033[m'` 852 1.1 jmmv else 853 1.1 jmmv at_red= at_grn= at_lgn= at_blu= at_std= 854 1.1 jmmv fi 855 1.1 jmmv 856 1.1 jmmv # Help message. 857 1.1 jmmv if $at_help_p; then 858 1.1 jmmv cat <<_ATEOF || at_write_fail=1 859 1.1 jmmv Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS] 860 1.1 jmmv 861 1.1 jmmv Run all the tests, or the selected TESTS, given by numeric ranges, and 862 1.1 jmmv save a detailed log file. Upon failure, create debugging scripts. 863 1.1 jmmv 864 1.1 jmmv Do not change environment variables directly. Instead, set them via 865 1.1 jmmv command line arguments. Set \`AUTOTEST_PATH' to select the executables 866 1.1 jmmv to exercise. Each relative directory is expanded as build and source 867 1.1 jmmv directories relative to the top level of this distribution. 868 1.1 jmmv E.g., from within the build directory /tmp/foo-1.0, invoking this: 869 1.1 jmmv 870 1.1 jmmv $ $0 AUTOTEST_PATH=bin 871 1.1 jmmv 872 1.1 jmmv is equivalent to the following, assuming the source directory is /src/foo-1.0: 873 1.1 jmmv 874 1.1 jmmv PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0 875 1.1 jmmv _ATEOF 876 1.1 jmmv cat <<_ATEOF || at_write_fail=1 877 1.1 jmmv 878 1.1 jmmv Operation modes: 879 1.1 jmmv -h, --help print the help message, then exit 880 1.1 jmmv -V, --version print version number, then exit 881 1.1 jmmv -c, --clean remove all the files this test suite might create and exit 882 1.1 jmmv -l, --list describes all the tests, or the selected TESTS 883 1.1 jmmv _ATEOF 884 1.1 jmmv cat <<_ATEOF || at_write_fail=1 885 1.1 jmmv 886 1.1 jmmv Execution tuning: 887 1.1 jmmv -C, --directory=DIR 888 1.1 jmmv change to directory DIR before starting 889 1.1 jmmv --color[=never|auto|always] 890 1.1 jmmv enable colored test results on terminal, or always 891 1.1 jmmv -j, --jobs[=N] 892 1.1 jmmv Allow N jobs at once; infinite jobs with no arg (default 1) 893 1.1 jmmv -k, --keywords=KEYWORDS 894 1.1 jmmv select the tests matching all the comma-separated KEYWORDS 895 1.1 jmmv multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD 896 1.1 jmmv --recheck select all tests that failed or passed unexpectedly last time 897 1.1 jmmv -e, --errexit abort as soon as a test fails; implies --debug 898 1.1 jmmv -v, --verbose force more detailed output 899 1.1 jmmv default for debugging scripts 900 1.1 jmmv -d, --debug inhibit clean up and top-level logging 901 1.1 jmmv default for debugging scripts 902 1.1 jmmv -x, --trace enable tests shell tracing 903 1.1 jmmv _ATEOF 904 1.1 jmmv cat <<_ATEOF || at_write_fail=1 905 1.1 jmmv 906 1.1 jmmv Report bugs to <kyua-discuss@googlegroups.com>. 907 1.1 jmmv _ATEOF 908 1.1 jmmv exit $at_write_fail 909 1.1 jmmv fi 910 1.1 jmmv 911 1.1 jmmv # List of tests. 912 1.1 jmmv if $at_list_p; then 913 1.1 jmmv cat <<_ATEOF || at_write_fail=1 914 1.1.1.2 jmmv Kyua - Command line interface 0.7 test suite: bootstrapping tests test groups: 915 1.1 jmmv 916 1.1 jmmv NUM: FILE-NAME:LINE TEST-GROUP-NAME 917 1.1 jmmv KEYWORDS 918 1.1 jmmv 919 1.1 jmmv _ATEOF 920 1.1 jmmv # Pass an empty line as separator between selected groups and help. 921 1.1 jmmv $as_echo "$at_groups$as_nl$as_nl$at_help_all" | 922 1.1 jmmv awk 'NF == 1 && FS != ";" { 923 1.1 jmmv selected[$ 1] = 1 924 1.1 jmmv next 925 1.1 jmmv } 926 1.1 jmmv /^$/ { FS = ";" } 927 1.1 jmmv NF > 0 { 928 1.1 jmmv if (selected[$ 1]) { 929 1.1 jmmv printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3 930 1.1 jmmv if ($ 4) { 931 1.1 jmmv lmax = 79 932 1.1 jmmv indent = " " 933 1.1 jmmv line = indent 934 1.1 jmmv len = length (line) 935 1.1 jmmv n = split ($ 4, a, " ") 936 1.1 jmmv for (i = 1; i <= n; i++) { 937 1.1 jmmv l = length (a[i]) + 1 938 1.1 jmmv if (i > 1 && len + l > lmax) { 939 1.1 jmmv print line 940 1.1 jmmv line = indent " " a[i] 941 1.1 jmmv len = length (line) 942 1.1 jmmv } else { 943 1.1 jmmv line = line " " a[i] 944 1.1 jmmv len += l 945 1.1 jmmv } 946 1.1 jmmv } 947 1.1 jmmv if (n) 948 1.1 jmmv print line 949 1.1 jmmv } 950 1.1 jmmv } 951 1.1 jmmv }' || at_write_fail=1 952 1.1 jmmv exit $at_write_fail 953 1.1 jmmv fi 954 1.1 jmmv if $at_version_p; then 955 1.1.1.2 jmmv $as_echo "$as_me (Kyua - Command line interface 0.7)" && 956 1.1 jmmv cat <<\_ATEOF || at_write_fail=1 957 1.1 jmmv 958 1.1 jmmv Copyright (C) 2012 Free Software Foundation, Inc. 959 1.1 jmmv This test suite is free software; the Free Software Foundation gives 960 1.1 jmmv unlimited permission to copy, distribute and modify it. 961 1.1 jmmv _ATEOF 962 1.1 jmmv exit $at_write_fail 963 1.1 jmmv fi 964 1.1 jmmv 965 1.1 jmmv # Should we print banners? Yes if more than one test is run. 966 1.1 jmmv case $at_groups in #( 967 1.1 jmmv *$as_nl* ) 968 1.1 jmmv at_print_banners=: ;; #( 969 1.1 jmmv * ) at_print_banners=false ;; 970 1.1 jmmv esac 971 1.1 jmmv # Text for banner N, set to a single space once printed. 972 1.1 jmmv 973 1.1 jmmv # Take any -C into account. 974 1.1 jmmv if $at_change_dir ; then 975 1.1 jmmv test x != "x$at_dir" && cd "$at_dir" \ 976 1.1 jmmv || as_fn_error $? "unable to change directory" 977 1.1 jmmv at_dir=`pwd` 978 1.1 jmmv fi 979 1.1 jmmv 980 1.1 jmmv # Load the config files for any default variable assignments. 981 1.1 jmmv for at_file in atconfig atlocal 982 1.1 jmmv do 983 1.1 jmmv test -r $at_file || continue 984 1.1 jmmv . ./$at_file || as_fn_error $? "invalid content: $at_file" 985 1.1 jmmv done 986 1.1 jmmv 987 1.1 jmmv # Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: 988 1.1 jmmv : "${at_top_build_prefix=$at_top_builddir}" 989 1.1 jmmv 990 1.1 jmmv # Perform any assignments requested during argument parsing. 991 1.1 jmmv eval "$at_debug_args" 992 1.1 jmmv 993 1.1 jmmv # atconfig delivers names relative to the directory the test suite is 994 1.1 jmmv # in, but the groups themselves are run in testsuite-dir/group-dir. 995 1.1 jmmv if test -n "$at_top_srcdir"; then 996 1.1 jmmv builddir=../.. 997 1.1 jmmv for at_dir_var in srcdir top_srcdir top_build_prefix 998 1.1 jmmv do 999 1.1 jmmv eval at_val=\$at_$at_dir_var 1000 1.1 jmmv case $at_val in 1001 1.1 jmmv [\\/$]* | ?:[\\/]* ) at_prefix= ;; 1002 1.1 jmmv *) at_prefix=../../ ;; 1003 1.1 jmmv esac 1004 1.1 jmmv eval "$at_dir_var=\$at_prefix\$at_val" 1005 1.1 jmmv done 1006 1.1 jmmv fi 1007 1.1 jmmv 1008 1.1 jmmv ## -------------------- ## 1009 1.1 jmmv ## Directory structure. ## 1010 1.1 jmmv ## -------------------- ## 1011 1.1 jmmv 1012 1.1 jmmv # This is the set of directories and files used by this script 1013 1.1 jmmv # (non-literals are capitalized): 1014 1.1 jmmv # 1015 1.1 jmmv # TESTSUITE - the testsuite 1016 1.1 jmmv # TESTSUITE.log - summarizes the complete testsuite run 1017 1.1 jmmv # TESTSUITE.dir/ - created during a run, remains after -d or failed test 1018 1.1 jmmv # + at-groups/ - during a run: status of all groups in run 1019 1.1 jmmv # | + NNN/ - during a run: meta-data about test group NNN 1020 1.1 jmmv # | | + check-line - location (source file and line) of current AT_CHECK 1021 1.1 jmmv # | | + status - exit status of current AT_CHECK 1022 1.1 jmmv # | | + stdout - stdout of current AT_CHECK 1023 1.1 jmmv # | | + stder1 - stderr, including trace 1024 1.1 jmmv # | | + stderr - stderr, with trace filtered out 1025 1.1 jmmv # | | + test-source - portion of testsuite that defines group 1026 1.1 jmmv # | | + times - timestamps for computing duration 1027 1.1 jmmv # | | + pass - created if group passed 1028 1.1 jmmv # | | + xpass - created if group xpassed 1029 1.1 jmmv # | | + fail - created if group failed 1030 1.1 jmmv # | | + xfail - created if group xfailed 1031 1.1 jmmv # | | + skip - created if group skipped 1032 1.1 jmmv # + at-stop - during a run: end the run if this file exists 1033 1.1 jmmv # + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction 1034 1.1 jmmv # + 0..NNN/ - created for each group NNN, remains after -d or failed test 1035 1.1 jmmv # | + TESTSUITE.log - summarizes the group results 1036 1.1 jmmv # | + ... - files created during the group 1037 1.1 jmmv 1038 1.1 jmmv # The directory the whole suite works in. 1039 1.1 jmmv # Should be absolute to let the user `cd' at will. 1040 1.1 jmmv at_suite_dir=$at_dir/$as_me.dir 1041 1.1 jmmv # The file containing the suite ($at_dir might have changed since earlier). 1042 1.1 jmmv at_suite_log=$at_dir/$as_me.log 1043 1.1 jmmv # The directory containing helper files per test group. 1044 1.1 jmmv at_helper_dir=$at_suite_dir/at-groups 1045 1.1 jmmv # Stop file: if it exists, do not start new jobs. 1046 1.1 jmmv at_stop_file=$at_suite_dir/at-stop 1047 1.1 jmmv # The fifo used for the job dispatcher. 1048 1.1 jmmv at_job_fifo=$at_suite_dir/at-job-fifo 1049 1.1 jmmv 1050 1.1 jmmv if $at_clean; then 1051 1.1 jmmv test -d "$at_suite_dir" && 1052 1.1 jmmv find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; 1053 1.1 jmmv rm -f -r "$at_suite_dir" "$at_suite_log" 1054 1.1 jmmv exit $? 1055 1.1 jmmv fi 1056 1.1 jmmv 1057 1.1 jmmv # Don't take risks: use only absolute directories in PATH. 1058 1.1 jmmv # 1059 1.1 jmmv # For stand-alone test suites (ie. atconfig was not found), 1060 1.1 jmmv # AUTOTEST_PATH is relative to `.'. 1061 1.1 jmmv # 1062 1.1 jmmv # For embedded test suites, AUTOTEST_PATH is relative to the top level 1063 1.1 jmmv # of the package. Then expand it into build/src parts, since users 1064 1.1 jmmv # may create executables in both places. 1065 1.1 jmmv AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"` 1066 1.1 jmmv at_path= 1067 1.1 jmmv as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1068 1.1 jmmv for as_dir in $AUTOTEST_PATH $PATH 1069 1.1 jmmv do 1070 1.1 jmmv IFS=$as_save_IFS 1071 1.1 jmmv test -z "$as_dir" && as_dir=. 1072 1.1 jmmv test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR 1073 1.1 jmmv case $as_dir in 1074 1.1 jmmv [\\/]* | ?:[\\/]* ) 1075 1.1 jmmv as_fn_append at_path "$as_dir" 1076 1.1 jmmv ;; 1077 1.1 jmmv * ) 1078 1.1 jmmv if test -z "$at_top_build_prefix"; then 1079 1.1 jmmv # Stand-alone test suite. 1080 1.1 jmmv as_fn_append at_path "$as_dir" 1081 1.1 jmmv else 1082 1.1 jmmv # Embedded test suite. 1083 1.1 jmmv as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR" 1084 1.1 jmmv as_fn_append at_path "$at_top_srcdir/$as_dir" 1085 1.1 jmmv fi 1086 1.1 jmmv ;; 1087 1.1 jmmv esac 1088 1.1 jmmv done 1089 1.1 jmmv IFS=$as_save_IFS 1090 1.1 jmmv 1091 1.1 jmmv 1092 1.1 jmmv # Now build and simplify PATH. 1093 1.1 jmmv # 1094 1.1 jmmv # There might be directories that don't exist, but don't redirect 1095 1.1 jmmv # builtins' (eg., cd) stderr directly: Ultrix's sh hates that. 1096 1.1 jmmv at_new_path= 1097 1.1 jmmv as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1098 1.1 jmmv for as_dir in $at_path 1099 1.1 jmmv do 1100 1.1 jmmv IFS=$as_save_IFS 1101 1.1 jmmv test -z "$as_dir" && as_dir=. 1102 1.1 jmmv test -d "$as_dir" || continue 1103 1.1 jmmv case $as_dir in 1104 1.1 jmmv [\\/]* | ?:[\\/]* ) ;; 1105 1.1 jmmv * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; 1106 1.1 jmmv esac 1107 1.1 jmmv case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in 1108 1.1 jmmv *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;; 1109 1.1 jmmv $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;; 1110 1.1 jmmv *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;; 1111 1.1 jmmv esac 1112 1.1 jmmv done 1113 1.1 jmmv IFS=$as_save_IFS 1114 1.1 jmmv 1115 1.1 jmmv PATH=$at_new_path 1116 1.1 jmmv export PATH 1117 1.1 jmmv 1118 1.1 jmmv # Setting up the FDs. 1119 1.1 jmmv 1120 1.1 jmmv 1121 1.1 jmmv 1122 1.1 jmmv # 5 is the log file. Not to be overwritten if `-d'. 1123 1.1 jmmv if $at_debug_p; then 1124 1.1 jmmv at_suite_log=/dev/null 1125 1.1 jmmv else 1126 1.1 jmmv : >"$at_suite_log" 1127 1.1 jmmv fi 1128 1.1 jmmv exec 5>>"$at_suite_log" 1129 1.1 jmmv 1130 1.1 jmmv # Banners and logs. 1131 1.1 jmmv $as_echo "## ------------------------------------------------------------------ ## 1132 1.1.1.2 jmmv ## Kyua - Command line interface 0.7 test suite: bootstrapping tests. ## 1133 1.1 jmmv ## ------------------------------------------------------------------ ##" 1134 1.1 jmmv { 1135 1.1 jmmv $as_echo "## ------------------------------------------------------------------ ## 1136 1.1.1.2 jmmv ## Kyua - Command line interface 0.7 test suite: bootstrapping tests. ## 1137 1.1 jmmv ## ------------------------------------------------------------------ ##" 1138 1.1 jmmv echo 1139 1.1 jmmv 1140 1.1 jmmv $as_echo "$as_me: command line was:" 1141 1.1 jmmv $as_echo " \$ $0 $at_cli_args" 1142 1.1 jmmv echo 1143 1.1 jmmv 1144 1.1 jmmv # If ChangeLog exists, list a few lines in case it might help determining 1145 1.1 jmmv # the exact version. 1146 1.1 jmmv if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then 1147 1.1 jmmv $as_echo "## ---------- ## 1148 1.1 jmmv ## ChangeLog. ## 1149 1.1 jmmv ## ---------- ##" 1150 1.1 jmmv echo 1151 1.1 jmmv sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog" 1152 1.1 jmmv echo 1153 1.1 jmmv fi 1154 1.1 jmmv 1155 1.1 jmmv { 1156 1.1 jmmv cat <<_ASUNAME 1157 1.1 jmmv ## --------- ## 1158 1.1 jmmv ## Platform. ## 1159 1.1 jmmv ## --------- ## 1160 1.1 jmmv 1161 1.1 jmmv hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` 1162 1.1 jmmv uname -m = `(uname -m) 2>/dev/null || echo unknown` 1163 1.1 jmmv uname -r = `(uname -r) 2>/dev/null || echo unknown` 1164 1.1 jmmv uname -s = `(uname -s) 2>/dev/null || echo unknown` 1165 1.1 jmmv uname -v = `(uname -v) 2>/dev/null || echo unknown` 1166 1.1 jmmv 1167 1.1 jmmv /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` 1168 1.1 jmmv /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` 1169 1.1 jmmv 1170 1.1 jmmv /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` 1171 1.1 jmmv /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` 1172 1.1 jmmv /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` 1173 1.1 jmmv /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` 1174 1.1 jmmv /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` 1175 1.1 jmmv /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` 1176 1.1 jmmv /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` 1177 1.1 jmmv 1178 1.1 jmmv _ASUNAME 1179 1.1 jmmv 1180 1.1 jmmv as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1181 1.1 jmmv for as_dir in $PATH 1182 1.1 jmmv do 1183 1.1 jmmv IFS=$as_save_IFS 1184 1.1 jmmv test -z "$as_dir" && as_dir=. 1185 1.1 jmmv $as_echo "PATH: $as_dir" 1186 1.1 jmmv done 1187 1.1 jmmv IFS=$as_save_IFS 1188 1.1 jmmv 1189 1.1 jmmv } 1190 1.1 jmmv echo 1191 1.1 jmmv 1192 1.1 jmmv # Contents of the config files. 1193 1.1 jmmv for at_file in atconfig atlocal 1194 1.1 jmmv do 1195 1.1 jmmv test -r $at_file || continue 1196 1.1 jmmv $as_echo "$as_me: $at_file:" 1197 1.1 jmmv sed 's/^/| /' $at_file 1198 1.1 jmmv echo 1199 1.1 jmmv done 1200 1.1 jmmv } >&5 1201 1.1 jmmv 1202 1.1 jmmv 1203 1.1 jmmv ## ------------------------- ## 1204 1.1 jmmv ## Autotest shell functions. ## 1205 1.1 jmmv ## ------------------------- ## 1206 1.1 jmmv 1207 1.1 jmmv # at_fn_banner NUMBER 1208 1.1 jmmv # ------------------- 1209 1.1 jmmv # Output banner NUMBER, provided the testsuite is running multiple groups and 1210 1.1 jmmv # this particular banner has not yet been printed. 1211 1.1 jmmv at_fn_banner () 1212 1.1 jmmv { 1213 1.1 jmmv $at_print_banners || return 0 1214 1.1 jmmv eval at_banner_text=\$at_banner_text_$1 1215 1.1 jmmv test "x$at_banner_text" = "x " && return 0 1216 1.1 jmmv eval "at_banner_text_$1=\" \"" 1217 1.1 jmmv if test -z "$at_banner_text"; then 1218 1.1 jmmv $at_first || echo 1219 1.1 jmmv else 1220 1.1 jmmv $as_echo "$as_nl$at_banner_text$as_nl" 1221 1.1 jmmv fi 1222 1.1 jmmv } # at_fn_banner 1223 1.1 jmmv 1224 1.1 jmmv # at_fn_check_prepare_notrace REASON LINE 1225 1.1 jmmv # --------------------------------------- 1226 1.1 jmmv # Perform AT_CHECK preparations for the command at LINE for an untraceable 1227 1.1 jmmv # command; REASON is the reason for disabling tracing. 1228 1.1 jmmv at_fn_check_prepare_notrace () 1229 1.1 jmmv { 1230 1.1 jmmv $at_trace_echo "Not enabling shell tracing (command contains $1)" 1231 1.1 jmmv $as_echo "$2" >"$at_check_line_file" 1232 1.1 jmmv at_check_trace=: at_check_filter=: 1233 1.1 jmmv : >"$at_stdout"; : >"$at_stderr" 1234 1.1 jmmv } 1235 1.1 jmmv 1236 1.1 jmmv # at_fn_check_prepare_trace LINE 1237 1.1 jmmv # ------------------------------ 1238 1.1 jmmv # Perform AT_CHECK preparations for the command at LINE for a traceable 1239 1.1 jmmv # command. 1240 1.1 jmmv at_fn_check_prepare_trace () 1241 1.1 jmmv { 1242 1.1 jmmv $as_echo "$1" >"$at_check_line_file" 1243 1.1 jmmv at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace 1244 1.1 jmmv : >"$at_stdout"; : >"$at_stderr" 1245 1.1 jmmv } 1246 1.1 jmmv 1247 1.1 jmmv # at_fn_check_prepare_dynamic COMMAND LINE 1248 1.1 jmmv # ---------------------------------------- 1249 1.1 jmmv # Decide if COMMAND at LINE is traceable at runtime, and call the appropriate 1250 1.1 jmmv # preparation function. 1251 1.1 jmmv at_fn_check_prepare_dynamic () 1252 1.1 jmmv { 1253 1.1 jmmv case $1 in 1254 1.1 jmmv *$as_nl*) 1255 1.1 jmmv at_fn_check_prepare_notrace 'an embedded newline' "$2" ;; 1256 1.1 jmmv *) 1257 1.1 jmmv at_fn_check_prepare_trace "$2" ;; 1258 1.1 jmmv esac 1259 1.1 jmmv } 1260 1.1 jmmv 1261 1.1 jmmv # at_fn_filter_trace 1262 1.1 jmmv # ------------------ 1263 1.1 jmmv # Remove the lines in the file "$at_stderr" generated by "set -x" and print 1264 1.1 jmmv # them to stderr. 1265 1.1 jmmv at_fn_filter_trace () 1266 1.1 jmmv { 1267 1.1 jmmv mv "$at_stderr" "$at_stder1" 1268 1.1 jmmv grep '^ *+' "$at_stder1" >&2 1269 1.1 jmmv grep -v '^ *+' "$at_stder1" >"$at_stderr" 1270 1.1 jmmv } 1271 1.1 jmmv 1272 1.1 jmmv # at_fn_log_failure FILE-LIST 1273 1.1 jmmv # --------------------------- 1274 1.1 jmmv # Copy the files in the list on stdout with a "> " prefix, and exit the shell 1275 1.1 jmmv # with a failure exit code. 1276 1.1 jmmv at_fn_log_failure () 1277 1.1 jmmv { 1278 1.1 jmmv for file 1279 1.1 jmmv do $as_echo "$file:"; sed 's/^/> /' "$file"; done 1280 1.1 jmmv echo 1 > "$at_status_file" 1281 1.1 jmmv exit 1 1282 1.1 jmmv } 1283 1.1 jmmv 1284 1.1 jmmv # at_fn_check_skip EXIT-CODE LINE 1285 1.1 jmmv # ------------------------------- 1286 1.1 jmmv # Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit 1287 1.1 jmmv # the test group subshell with that same exit code. Use LINE in any report 1288 1.1 jmmv # about test failure. 1289 1.1 jmmv at_fn_check_skip () 1290 1.1 jmmv { 1291 1.1 jmmv case $1 in 1292 1.1 jmmv 99) echo 99 > "$at_status_file"; at_failed=: 1293 1.1 jmmv $as_echo "$2: hard failure"; exit 99;; 1294 1.1 jmmv 77) echo 77 > "$at_status_file"; exit 77;; 1295 1.1 jmmv esac 1296 1.1 jmmv } 1297 1.1 jmmv 1298 1.1 jmmv # at_fn_check_status EXPECTED EXIT-CODE LINE 1299 1.1 jmmv # ------------------------------------------ 1300 1.1 jmmv # Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing. 1301 1.1 jmmv # Otherwise, if it is 77 or 99, exit the test group subshell with that same 1302 1.1 jmmv # exit code; if it is anything else print an error message referring to LINE, 1303 1.1 jmmv # and fail the test. 1304 1.1 jmmv at_fn_check_status () 1305 1.1 jmmv { 1306 1.1 jmmv case $2 in 1307 1.1 jmmv $1 ) ;; 1308 1.1 jmmv 77) echo 77 > "$at_status_file"; exit 77;; 1309 1.1 jmmv 99) echo 99 > "$at_status_file"; at_failed=: 1310 1.1 jmmv $as_echo "$3: hard failure"; exit 99;; 1311 1.1 jmmv *) $as_echo "$3: exit code was $2, expected $1" 1312 1.1 jmmv at_failed=:;; 1313 1.1 jmmv esac 1314 1.1 jmmv } 1315 1.1 jmmv 1316 1.1 jmmv # at_fn_diff_devnull FILE 1317 1.1 jmmv # ----------------------- 1318 1.1 jmmv # Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff 1319 1.1 jmmv # invocations. 1320 1.1 jmmv at_fn_diff_devnull () 1321 1.1 jmmv { 1322 1.1 jmmv test -s "$1" || return 0 1323 1.1 jmmv $at_diff "$at_devnull" "$1" 1324 1.1 jmmv } 1325 1.1 jmmv 1326 1.1 jmmv # at_fn_test NUMBER 1327 1.1 jmmv # ----------------- 1328 1.1 jmmv # Parse out test NUMBER from the tail of this file. 1329 1.1 jmmv at_fn_test () 1330 1.1 jmmv { 1331 1.1 jmmv eval at_sed=\$at_sed$1 1332 1.1 jmmv sed "$at_sed" "$at_myself" > "$at_test_source" 1333 1.1 jmmv } 1334 1.1 jmmv 1335 1.1 jmmv # at_fn_create_debugging_script 1336 1.1 jmmv # ----------------------------- 1337 1.1 jmmv # Create the debugging script $at_group_dir/run which will reproduce the 1338 1.1 jmmv # current test group. 1339 1.1 jmmv at_fn_create_debugging_script () 1340 1.1 jmmv { 1341 1.1 jmmv { 1342 1.1 jmmv echo "#! /bin/sh" && 1343 1.1 jmmv echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' && 1344 1.1 jmmv $as_echo "cd '$at_dir'" && 1345 1.1 jmmv $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" && 1346 1.1 jmmv echo 'exit 1' 1347 1.1 jmmv } >"$at_group_dir/run" && 1348 1.1 jmmv chmod +x "$at_group_dir/run" 1349 1.1 jmmv } 1350 1.1 jmmv 1351 1.1 jmmv ## -------------------------------- ## 1352 1.1 jmmv ## End of autotest shell functions. ## 1353 1.1 jmmv ## -------------------------------- ## 1354 1.1 jmmv { 1355 1.1 jmmv $as_echo "## ---------------- ## 1356 1.1 jmmv ## Tested programs. ## 1357 1.1 jmmv ## ---------------- ##" 1358 1.1 jmmv echo 1359 1.1 jmmv } >&5 1360 1.1 jmmv 1361 1.1 jmmv # Report what programs are being tested. 1362 1.1 jmmv for at_program in : $at_tested 1363 1.1 jmmv do 1364 1.1 jmmv test "$at_program" = : && continue 1365 1.1 jmmv case $at_program in 1366 1.1 jmmv [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;; 1367 1.1 jmmv * ) 1368 1.1 jmmv as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1369 1.1 jmmv for as_dir in $PATH 1370 1.1 jmmv do 1371 1.1 jmmv IFS=$as_save_IFS 1372 1.1 jmmv test -z "$as_dir" && as_dir=. 1373 1.1 jmmv test -f "$as_dir/$at_program" && break 1374 1.1 jmmv done 1375 1.1 jmmv IFS=$as_save_IFS 1376 1.1 jmmv 1377 1.1 jmmv at_program_=$as_dir/$at_program ;; 1378 1.1 jmmv esac 1379 1.1 jmmv if test -f "$at_program_"; then 1380 1.1 jmmv { 1381 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:29: $at_program_ --version" 1382 1.1 jmmv "$at_program_" --version </dev/null 1383 1.1 jmmv echo 1384 1.1 jmmv } >&5 2>&1 1385 1.1 jmmv else 1386 1.1 jmmv as_fn_error $? "cannot find $at_program" "$LINENO" 5 1387 1.1 jmmv fi 1388 1.1 jmmv done 1389 1.1 jmmv 1390 1.1 jmmv { 1391 1.1 jmmv $as_echo "## ------------------ ## 1392 1.1 jmmv ## Running the tests. ## 1393 1.1 jmmv ## ------------------ ##" 1394 1.1 jmmv } >&5 1395 1.1 jmmv 1396 1.1 jmmv at_start_date=`date` 1397 1.1 jmmv at_start_time=`date +%s 2>/dev/null` 1398 1.1 jmmv $as_echo "$as_me: starting at: $at_start_date" >&5 1399 1.1 jmmv 1400 1.1 jmmv # Create the master directory if it doesn't already exist. 1401 1.1 jmmv as_dir="$at_suite_dir"; as_fn_mkdir_p || 1402 1.1 jmmv as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5 1403 1.1 jmmv 1404 1.1 jmmv # Can we diff with `/dev/null'? DU 5.0 refuses. 1405 1.1 jmmv if diff /dev/null /dev/null >/dev/null 2>&1; then 1406 1.1 jmmv at_devnull=/dev/null 1407 1.1 jmmv else 1408 1.1 jmmv at_devnull=$at_suite_dir/devnull 1409 1.1 jmmv >"$at_devnull" 1410 1.1 jmmv fi 1411 1.1 jmmv 1412 1.1 jmmv # Use `diff -u' when possible. 1413 1.1 jmmv if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff" 1414 1.1 jmmv then 1415 1.1 jmmv at_diff='diff -u' 1416 1.1 jmmv else 1417 1.1 jmmv at_diff=diff 1418 1.1 jmmv fi 1419 1.1 jmmv 1420 1.1 jmmv # Get the last needed group. 1421 1.1 jmmv for at_group in : $at_groups; do :; done 1422 1.1 jmmv 1423 1.1 jmmv # Extract the start and end lines of each test group at the tail 1424 1.1 jmmv # of this file 1425 1.1 jmmv awk ' 1426 1.1 jmmv BEGIN { FS="" } 1427 1.1 jmmv /^#AT_START_/ { 1428 1.1 jmmv start = NR 1429 1.1 jmmv } 1430 1.1 jmmv /^#AT_STOP_/ { 1431 1.1 jmmv test = substr ($ 0, 10) 1432 1.1 jmmv print "at_sed" test "=\"1," start "d;" (NR-1) "q\"" 1433 1.1 jmmv if (test == "'"$at_group"'") exit 1434 1.1 jmmv }' "$at_myself" > "$at_suite_dir/at-source-lines" && 1435 1.1 jmmv . "$at_suite_dir/at-source-lines" || 1436 1.1 jmmv as_fn_error $? "cannot create test line number cache" "$LINENO" 5 1437 1.1 jmmv rm -f "$at_suite_dir/at-source-lines" 1438 1.1 jmmv 1439 1.1 jmmv # Set number of jobs for `-j'; avoid more jobs than test groups. 1440 1.1 jmmv set X $at_groups; shift; at_max_jobs=$# 1441 1.1 jmmv if test $at_max_jobs -eq 0; then 1442 1.1 jmmv at_jobs=1 1443 1.1 jmmv fi 1444 1.1 jmmv if test $at_jobs -ne 1 && 1445 1.1 jmmv { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then 1446 1.1 jmmv at_jobs=$at_max_jobs 1447 1.1 jmmv fi 1448 1.1 jmmv 1449 1.1 jmmv # If parallel mode, don't output banners, don't split summary lines. 1450 1.1 jmmv if test $at_jobs -ne 1; then 1451 1.1 jmmv at_print_banners=false 1452 1.1 jmmv at_quiet=: 1453 1.1 jmmv fi 1454 1.1 jmmv 1455 1.1 jmmv # Set up helper dirs. 1456 1.1 jmmv rm -rf "$at_helper_dir" && 1457 1.1 jmmv mkdir "$at_helper_dir" && 1458 1.1 jmmv cd "$at_helper_dir" && 1459 1.1 jmmv { test -z "$at_groups" || mkdir $at_groups; } || 1460 1.1 jmmv as_fn_error $? "testsuite directory setup failed" "$LINENO" 5 1461 1.1 jmmv 1462 1.1 jmmv # Functions for running a test group. We leave the actual 1463 1.1 jmmv # test group execution outside of a shell function in order 1464 1.1 jmmv # to avoid hitting zsh 4.x exit status bugs. 1465 1.1 jmmv 1466 1.1 jmmv # at_fn_group_prepare 1467 1.1 jmmv # ------------------- 1468 1.1 jmmv # Prepare for running a test group. 1469 1.1 jmmv at_fn_group_prepare () 1470 1.1 jmmv { 1471 1.1 jmmv # The directory for additional per-group helper files. 1472 1.1 jmmv at_job_dir=$at_helper_dir/$at_group 1473 1.1 jmmv # The file containing the location of the last AT_CHECK. 1474 1.1 jmmv at_check_line_file=$at_job_dir/check-line 1475 1.1 jmmv # The file containing the exit status of the last command. 1476 1.1 jmmv at_status_file=$at_job_dir/status 1477 1.1 jmmv # The files containing the output of the tested commands. 1478 1.1 jmmv at_stdout=$at_job_dir/stdout 1479 1.1 jmmv at_stder1=$at_job_dir/stder1 1480 1.1 jmmv at_stderr=$at_job_dir/stderr 1481 1.1 jmmv # The file containing the code for a test group. 1482 1.1 jmmv at_test_source=$at_job_dir/test-source 1483 1.1 jmmv # The file containing dates. 1484 1.1 jmmv at_times_file=$at_job_dir/times 1485 1.1 jmmv 1486 1.1 jmmv # Be sure to come back to the top test directory. 1487 1.1 jmmv cd "$at_suite_dir" 1488 1.1 jmmv 1489 1.1 jmmv # Clearly separate the test groups when verbose. 1490 1.1 jmmv $at_first || $at_verbose echo 1491 1.1 jmmv 1492 1.1 jmmv at_group_normalized=$at_group 1493 1.1 jmmv 1494 1.1 jmmv eval 'while :; do 1495 1.1 jmmv case $at_group_normalized in #( 1496 1.1 jmmv '"$at_format"'*) break;; 1497 1.1 jmmv esac 1498 1.1 jmmv at_group_normalized=0$at_group_normalized 1499 1.1 jmmv done' 1500 1.1 jmmv 1501 1.1 jmmv 1502 1.1 jmmv # Create a fresh directory for the next test group, and enter. 1503 1.1 jmmv # If one already exists, the user may have invoked ./run from 1504 1.1 jmmv # within that directory; we remove the contents, but not the 1505 1.1 jmmv # directory itself, so that we aren't pulling the rug out from 1506 1.1 jmmv # under the shell's notion of the current directory. 1507 1.1 jmmv at_group_dir=$at_suite_dir/$at_group_normalized 1508 1.1 jmmv at_group_log=$at_group_dir/$as_me.log 1509 1.1 jmmv if test -d "$at_group_dir"; then 1510 1.1 jmmv find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \; 1511 1.1 jmmv rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??* 1512 1.1 jmmv fi || 1513 1.1 jmmv { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5 1514 1.1 jmmv $as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;} 1515 1.1 jmmv # Be tolerant if the above `rm' was not able to remove the directory. 1516 1.1 jmmv as_dir="$at_group_dir"; as_fn_mkdir_p 1517 1.1 jmmv 1518 1.1 jmmv echo 0 > "$at_status_file" 1519 1.1 jmmv 1520 1.1 jmmv # In verbose mode, append to the log file *and* show on 1521 1.1 jmmv # the standard output; in quiet mode only write to the log. 1522 1.1 jmmv if test -z "$at_verbose"; then 1523 1.1 jmmv at_tee_pipe='tee -a "$at_group_log"' 1524 1.1 jmmv else 1525 1.1 jmmv at_tee_pipe='cat >> "$at_group_log"' 1526 1.1 jmmv fi 1527 1.1 jmmv } 1528 1.1 jmmv 1529 1.1 jmmv # at_fn_group_banner ORDINAL LINE DESC PAD [BANNER] 1530 1.1 jmmv # ------------------------------------------------- 1531 1.1 jmmv # Declare the test group ORDINAL, located at LINE with group description DESC, 1532 1.1 jmmv # and residing under BANNER. Use PAD to align the status column. 1533 1.1 jmmv at_fn_group_banner () 1534 1.1 jmmv { 1535 1.1 jmmv at_setup_line="$2" 1536 1.1 jmmv test -n "$5" && at_fn_banner $5 1537 1.1 jmmv at_desc="$3" 1538 1.1 jmmv case $1 in 1539 1.1 jmmv [0-9]) at_desc_line=" $1: ";; 1540 1.1 jmmv [0-9][0-9]) at_desc_line=" $1: " ;; 1541 1.1 jmmv *) at_desc_line="$1: " ;; 1542 1.1 jmmv esac 1543 1.1 jmmv as_fn_append at_desc_line "$3$4" 1544 1.1 jmmv $at_quiet $as_echo_n "$at_desc_line" 1545 1.1 jmmv echo "# -*- compilation -*-" >> "$at_group_log" 1546 1.1 jmmv } 1547 1.1 jmmv 1548 1.1 jmmv # at_fn_group_postprocess 1549 1.1 jmmv # ----------------------- 1550 1.1 jmmv # Perform cleanup after running a test group. 1551 1.1 jmmv at_fn_group_postprocess () 1552 1.1 jmmv { 1553 1.1 jmmv # Be sure to come back to the suite directory, in particular 1554 1.1 jmmv # since below we might `rm' the group directory we are in currently. 1555 1.1 jmmv cd "$at_suite_dir" 1556 1.1 jmmv 1557 1.1 jmmv if test ! -f "$at_check_line_file"; then 1558 1.1 jmmv sed "s/^ */$as_me: WARNING: /" <<_ATEOF 1559 1.1 jmmv A failure happened in a test group before any test could be 1560 1.1 jmmv run. This means that test suite is improperly designed. Please 1561 1.1 jmmv report this failure to <kyua-discuss@googlegroups.com>. 1562 1.1 jmmv _ATEOF 1563 1.1 jmmv $as_echo "$at_setup_line" >"$at_check_line_file" 1564 1.1 jmmv at_status=99 1565 1.1 jmmv fi 1566 1.1 jmmv $at_verbose $as_echo_n "$at_group. $at_setup_line: " 1567 1.1 jmmv $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log" 1568 1.1 jmmv case $at_xfail:$at_status in 1569 1.1 jmmv yes:0) 1570 1.1 jmmv at_msg="UNEXPECTED PASS" 1571 1.1 jmmv at_res=xpass 1572 1.1 jmmv at_errexit=$at_errexit_p 1573 1.1 jmmv at_color=$at_red 1574 1.1 jmmv ;; 1575 1.1 jmmv no:0) 1576 1.1 jmmv at_msg="ok" 1577 1.1 jmmv at_res=pass 1578 1.1 jmmv at_errexit=false 1579 1.1 jmmv at_color=$at_grn 1580 1.1 jmmv ;; 1581 1.1 jmmv *:77) 1582 1.1 jmmv at_msg='skipped ('`cat "$at_check_line_file"`')' 1583 1.1 jmmv at_res=skip 1584 1.1 jmmv at_errexit=false 1585 1.1 jmmv at_color=$at_blu 1586 1.1 jmmv ;; 1587 1.1 jmmv no:* | *:99) 1588 1.1 jmmv at_msg='FAILED ('`cat "$at_check_line_file"`')' 1589 1.1 jmmv at_res=fail 1590 1.1 jmmv at_errexit=$at_errexit_p 1591 1.1 jmmv at_color=$at_red 1592 1.1 jmmv ;; 1593 1.1 jmmv yes:*) 1594 1.1 jmmv at_msg='expected failure ('`cat "$at_check_line_file"`')' 1595 1.1 jmmv at_res=xfail 1596 1.1 jmmv at_errexit=false 1597 1.1 jmmv at_color=$at_lgn 1598 1.1 jmmv ;; 1599 1.1 jmmv esac 1600 1.1 jmmv echo "$at_res" > "$at_job_dir/$at_res" 1601 1.1 jmmv # In parallel mode, output the summary line only afterwards. 1602 1.1 jmmv if test $at_jobs -ne 1 && test -n "$at_verbose"; then 1603 1.1 jmmv $as_echo "$at_desc_line $at_color$at_msg$at_std" 1604 1.1 jmmv else 1605 1.1 jmmv # Make sure there is a separator even with long titles. 1606 1.1 jmmv $as_echo " $at_color$at_msg$at_std" 1607 1.1 jmmv fi 1608 1.1 jmmv at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" 1609 1.1 jmmv case $at_status in 1610 1.1 jmmv 0|77) 1611 1.1 jmmv # $at_times_file is only available if the group succeeded. 1612 1.1 jmmv # We're not including the group log, so the success message 1613 1.1 jmmv # is written in the global log separately. But we also 1614 1.1 jmmv # write to the group log in case they're using -d. 1615 1.1 jmmv if test -f "$at_times_file"; then 1616 1.1 jmmv at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')' 1617 1.1 jmmv rm -f "$at_times_file" 1618 1.1 jmmv fi 1619 1.1 jmmv $as_echo "$at_log_msg" >> "$at_group_log" 1620 1.1 jmmv $as_echo "$at_log_msg" >&5 1621 1.1 jmmv 1622 1.1 jmmv # Cleanup the group directory, unless the user wants the files 1623 1.1 jmmv # or the success was unexpected. 1624 1.1 jmmv if $at_debug_p || test $at_res = xpass; then 1625 1.1 jmmv at_fn_create_debugging_script 1626 1.1 jmmv if test $at_res = xpass && $at_errexit; then 1627 1.1 jmmv echo stop > "$at_stop_file" 1628 1.1 jmmv fi 1629 1.1 jmmv else 1630 1.1 jmmv if test -d "$at_group_dir"; then 1631 1.1 jmmv find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; 1632 1.1 jmmv rm -fr "$at_group_dir" 1633 1.1 jmmv fi 1634 1.1 jmmv rm -f "$at_test_source" 1635 1.1 jmmv fi 1636 1.1 jmmv ;; 1637 1.1 jmmv *) 1638 1.1 jmmv # Upon failure, include the log into the testsuite's global 1639 1.1 jmmv # log. The failure message is written in the group log. It 1640 1.1 jmmv # is later included in the global log. 1641 1.1 jmmv $as_echo "$at_log_msg" >> "$at_group_log" 1642 1.1 jmmv 1643 1.1 jmmv # Upon failure, keep the group directory for autopsy, and create 1644 1.1 jmmv # the debugging script. With -e, do not start any further tests. 1645 1.1 jmmv at_fn_create_debugging_script 1646 1.1 jmmv if $at_errexit; then 1647 1.1 jmmv echo stop > "$at_stop_file" 1648 1.1 jmmv fi 1649 1.1 jmmv ;; 1650 1.1 jmmv esac 1651 1.1 jmmv } 1652 1.1 jmmv 1653 1.1 jmmv 1654 1.1 jmmv ## ------------ ## 1655 1.1 jmmv ## Driver loop. ## 1656 1.1 jmmv ## ------------ ## 1657 1.1 jmmv 1658 1.1 jmmv 1659 1.1 jmmv if (set -m && set +m && set +b) >/dev/null 2>&1; then 1660 1.1 jmmv set +b 1661 1.1 jmmv at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=- 1662 1.1 jmmv else 1663 1.1 jmmv at_job_control_on=: at_job_control_off=: at_job_group= 1664 1.1 jmmv fi 1665 1.1 jmmv 1666 1.1 jmmv for at_signal in 1 2 15; do 1667 1.1 jmmv trap 'set +x; set +e 1668 1.1 jmmv $at_job_control_off 1669 1.1 jmmv at_signal='"$at_signal"' 1670 1.1 jmmv echo stop > "$at_stop_file" 1671 1.1 jmmv trap "" $at_signal 1672 1.1 jmmv at_pgids= 1673 1.1 jmmv for at_pgid in `jobs -p 2>/dev/null`; do 1674 1.1 jmmv at_pgids="$at_pgids $at_job_group$at_pgid" 1675 1.1 jmmv done 1676 1.1 jmmv test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null 1677 1.1 jmmv wait 1678 1.1 jmmv if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then 1679 1.1 jmmv echo >&2 1680 1.1 jmmv fi 1681 1.1 jmmv at_signame=`kill -l $at_signal 2>&1 || echo $at_signal` 1682 1.1 jmmv set x $at_signame 1683 1.1 jmmv test 1 -gt 2 && at_signame=$at_signal 1684 1.1 jmmv { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5 1685 1.1 jmmv $as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;} 1686 1.1 jmmv as_fn_arith 128 + $at_signal && exit_status=$as_val 1687 1.1 jmmv as_fn_exit $exit_status' $at_signal 1688 1.1 jmmv done 1689 1.1 jmmv 1690 1.1 jmmv rm -f "$at_stop_file" 1691 1.1 jmmv at_first=: 1692 1.1 jmmv 1693 1.1 jmmv if test $at_jobs -ne 1 && 1694 1.1 jmmv rm -f "$at_job_fifo" && 1695 1.1 jmmv test -n "$at_job_group" && 1696 1.1 jmmv ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null 1697 1.1 jmmv then 1698 1.1 jmmv # FIFO job dispatcher. 1699 1.1 jmmv 1700 1.1 jmmv trap 'at_pids= 1701 1.1 jmmv for at_pid in `jobs -p`; do 1702 1.1 jmmv at_pids="$at_pids $at_job_group$at_pid" 1703 1.1 jmmv done 1704 1.1 jmmv if test -n "$at_pids"; then 1705 1.1 jmmv at_sig=TSTP 1706 1.1 jmmv test "${TMOUT+set}" = set && at_sig=STOP 1707 1.1 jmmv kill -$at_sig $at_pids 2>/dev/null 1708 1.1 jmmv fi 1709 1.1 jmmv kill -STOP $$ 1710 1.1 jmmv test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP 1711 1.1 jmmv 1712 1.1 jmmv echo 1713 1.1 jmmv # Turn jobs into a list of numbers, starting from 1. 1714 1.1 jmmv at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` 1715 1.1 jmmv 1716 1.1 jmmv set X $at_joblist 1717 1.1 jmmv shift 1718 1.1 jmmv for at_group in $at_groups; do 1719 1.1 jmmv $at_job_control_on 2>/dev/null 1720 1.1 jmmv ( 1721 1.1 jmmv # Start one test group. 1722 1.1 jmmv $at_job_control_off 1723 1.1 jmmv if $at_first; then 1724 1.1 jmmv exec 7>"$at_job_fifo" 1725 1.1 jmmv else 1726 1.1 jmmv exec 6<&- 1727 1.1 jmmv fi 1728 1.1 jmmv trap 'set +x; set +e 1729 1.1 jmmv trap "" PIPE 1730 1.1 jmmv echo stop > "$at_stop_file" 1731 1.1 jmmv echo >&7 1732 1.1 jmmv as_fn_exit 141' PIPE 1733 1.1 jmmv at_fn_group_prepare 1734 1.1 jmmv if cd "$at_group_dir" && 1735 1.1 jmmv at_fn_test $at_group && 1736 1.1 jmmv . "$at_test_source" 1737 1.1 jmmv then :; else 1738 1.1 jmmv { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 1739 1.1 jmmv $as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} 1740 1.1 jmmv at_failed=: 1741 1.1 jmmv fi 1742 1.1 jmmv at_fn_group_postprocess 1743 1.1 jmmv echo >&7 1744 1.1 jmmv ) & 1745 1.1 jmmv $at_job_control_off 1746 1.1 jmmv if $at_first; then 1747 1.1 jmmv at_first=false 1748 1.1 jmmv exec 6<"$at_job_fifo" 7>"$at_job_fifo" 1749 1.1 jmmv fi 1750 1.1 jmmv shift # Consume one token. 1751 1.1 jmmv if test $# -gt 0; then :; else 1752 1.1 jmmv read at_token <&6 || break 1753 1.1 jmmv set x $* 1754 1.1 jmmv fi 1755 1.1 jmmv test -f "$at_stop_file" && break 1756 1.1 jmmv done 1757 1.1 jmmv exec 7>&- 1758 1.1 jmmv # Read back the remaining ($at_jobs - 1) tokens. 1759 1.1 jmmv set X $at_joblist 1760 1.1 jmmv shift 1761 1.1 jmmv if test $# -gt 0; then 1762 1.1 jmmv shift 1763 1.1 jmmv for at_job 1764 1.1 jmmv do 1765 1.1 jmmv read at_token 1766 1.1 jmmv done <&6 1767 1.1 jmmv fi 1768 1.1 jmmv exec 6<&- 1769 1.1 jmmv wait 1770 1.1 jmmv else 1771 1.1 jmmv # Run serially, avoid forks and other potential surprises. 1772 1.1 jmmv for at_group in $at_groups; do 1773 1.1 jmmv at_fn_group_prepare 1774 1.1 jmmv if cd "$at_group_dir" && 1775 1.1 jmmv at_fn_test $at_group && 1776 1.1 jmmv . "$at_test_source"; then :; else 1777 1.1 jmmv { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 1778 1.1 jmmv $as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} 1779 1.1 jmmv at_failed=: 1780 1.1 jmmv fi 1781 1.1 jmmv at_fn_group_postprocess 1782 1.1 jmmv test -f "$at_stop_file" && break 1783 1.1 jmmv at_first=false 1784 1.1 jmmv done 1785 1.1 jmmv fi 1786 1.1 jmmv 1787 1.1 jmmv # Wrap up the test suite with summary statistics. 1788 1.1 jmmv cd "$at_helper_dir" 1789 1.1 jmmv 1790 1.1 jmmv # Use ?..???? when the list must remain sorted, the faster * otherwise. 1791 1.1 jmmv at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'` 1792 1.1 jmmv at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'` 1793 1.1 jmmv at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'` 1794 1.1 jmmv at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do 1795 1.1 jmmv echo $f; done | sed '/?/d; s,/xpass,,'` 1796 1.1 jmmv at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do 1797 1.1 jmmv echo $f; done | sed '/?/d; s,/fail,,'` 1798 1.1 jmmv 1799 1.1 jmmv set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list 1800 1.1 jmmv shift; at_group_count=$# 1801 1.1 jmmv set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$* 1802 1.1 jmmv set X $at_xfail_list; shift; at_xfail_count=$# 1803 1.1 jmmv set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$* 1804 1.1 jmmv set X $at_skip_list; shift; at_skip_count=$# 1805 1.1 jmmv 1806 1.1 jmmv as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val 1807 1.1 jmmv as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val 1808 1.1 jmmv as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val 1809 1.1 jmmv 1810 1.1 jmmv # Back to the top directory. 1811 1.1 jmmv cd "$at_dir" 1812 1.1 jmmv rm -rf "$at_helper_dir" 1813 1.1 jmmv 1814 1.1 jmmv # Compute the duration of the suite. 1815 1.1 jmmv at_stop_date=`date` 1816 1.1 jmmv at_stop_time=`date +%s 2>/dev/null` 1817 1.1 jmmv $as_echo "$as_me: ending at: $at_stop_date" >&5 1818 1.1 jmmv case $at_start_time,$at_stop_time in 1819 1.1 jmmv [0-9]*,[0-9]*) 1820 1.1 jmmv as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val 1821 1.1 jmmv as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val 1822 1.1 jmmv as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val 1823 1.1 jmmv as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val 1824 1.1 jmmv as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val 1825 1.1 jmmv at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s" 1826 1.1 jmmv $as_echo "$as_me: test suite duration: $at_duration" >&5 1827 1.1 jmmv ;; 1828 1.1 jmmv esac 1829 1.1 jmmv 1830 1.1 jmmv echo 1831 1.1 jmmv $as_echo "## ------------- ## 1832 1.1 jmmv ## Test results. ## 1833 1.1 jmmv ## ------------- ##" 1834 1.1 jmmv echo 1835 1.1 jmmv { 1836 1.1 jmmv echo 1837 1.1 jmmv $as_echo "## ------------- ## 1838 1.1 jmmv ## Test results. ## 1839 1.1 jmmv ## ------------- ##" 1840 1.1 jmmv echo 1841 1.1 jmmv } >&5 1842 1.1 jmmv 1843 1.1 jmmv if test $at_run_count = 1; then 1844 1.1 jmmv at_result="1 test" 1845 1.1 jmmv at_were=was 1846 1.1 jmmv else 1847 1.1 jmmv at_result="$at_run_count tests" 1848 1.1 jmmv at_were=were 1849 1.1 jmmv fi 1850 1.1 jmmv if $at_errexit_p && test $at_unexpected_count != 0; then 1851 1.1 jmmv if test $at_xpass_count = 1; then 1852 1.1 jmmv at_result="$at_result $at_were run, one passed" 1853 1.1 jmmv else 1854 1.1 jmmv at_result="$at_result $at_were run, one failed" 1855 1.1 jmmv fi 1856 1.1 jmmv at_result="$at_result unexpectedly and inhibited subsequent tests." 1857 1.1 jmmv at_color=$at_red 1858 1.1 jmmv else 1859 1.1 jmmv # Don't you just love exponential explosion of the number of cases? 1860 1.1 jmmv at_color=$at_red 1861 1.1 jmmv case $at_xpass_count:$at_fail_count:$at_xfail_count in 1862 1.1 jmmv # So far, so good. 1863 1.1 jmmv 0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;; 1864 1.1 jmmv 0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;; 1865 1.1 jmmv 1866 1.1 jmmv # Some unexpected failures 1867 1.1 jmmv 0:*:0) at_result="$at_result $at_were run, 1868 1.1 jmmv $at_fail_count failed unexpectedly." ;; 1869 1.1 jmmv 1870 1.1 jmmv # Some failures, both expected and unexpected 1871 1.1 jmmv 0:*:1) at_result="$at_result $at_were run, 1872 1.1 jmmv $at_total_fail_count failed ($at_xfail_count expected failure)." ;; 1873 1.1 jmmv 0:*:*) at_result="$at_result $at_were run, 1874 1.1 jmmv $at_total_fail_count failed ($at_xfail_count expected failures)." ;; 1875 1.1 jmmv 1876 1.1 jmmv # No unexpected failures, but some xpasses 1877 1.1 jmmv *:0:*) at_result="$at_result $at_were run, 1878 1.1 jmmv $at_xpass_count passed unexpectedly." ;; 1879 1.1 jmmv 1880 1.1 jmmv # No expected failures, but failures and xpasses 1881 1.1 jmmv *:1:0) at_result="$at_result $at_were run, 1882 1.1 jmmv $at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; 1883 1.1 jmmv *:*:0) at_result="$at_result $at_were run, 1884 1.1 jmmv $at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; 1885 1.1 jmmv 1886 1.1 jmmv # All of them. 1887 1.1 jmmv *:*:1) at_result="$at_result $at_were run, 1888 1.1 jmmv $at_xpass_count passed unexpectedly, 1889 1.1 jmmv $at_total_fail_count failed ($at_xfail_count expected failure)." ;; 1890 1.1 jmmv *:*:*) at_result="$at_result $at_were run, 1891 1.1 jmmv $at_xpass_count passed unexpectedly, 1892 1.1 jmmv $at_total_fail_count failed ($at_xfail_count expected failures)." ;; 1893 1.1 jmmv esac 1894 1.1 jmmv 1895 1.1 jmmv if test $at_skip_count = 0 && test $at_run_count -gt 1; then 1896 1.1 jmmv at_result="All $at_result" 1897 1.1 jmmv fi 1898 1.1 jmmv fi 1899 1.1 jmmv 1900 1.1 jmmv # Now put skips in the mix. 1901 1.1 jmmv case $at_skip_count in 1902 1.1 jmmv 0) ;; 1903 1.1 jmmv 1) at_result="$at_result 1904 1.1 jmmv 1 test was skipped." ;; 1905 1.1 jmmv *) at_result="$at_result 1906 1.1 jmmv $at_skip_count tests were skipped." ;; 1907 1.1 jmmv esac 1908 1.1 jmmv 1909 1.1 jmmv if test $at_unexpected_count = 0; then 1910 1.1 jmmv echo "$at_color$at_result$at_std" 1911 1.1 jmmv echo "$at_result" >&5 1912 1.1 jmmv else 1913 1.1 jmmv echo "${at_color}ERROR: $at_result$at_std" >&2 1914 1.1 jmmv echo "ERROR: $at_result" >&5 1915 1.1 jmmv { 1916 1.1 jmmv echo 1917 1.1 jmmv $as_echo "## ------------------------ ## 1918 1.1 jmmv ## Summary of the failures. ## 1919 1.1 jmmv ## ------------------------ ##" 1920 1.1 jmmv 1921 1.1 jmmv # Summary of failed and skipped tests. 1922 1.1 jmmv if test $at_fail_count != 0; then 1923 1.1 jmmv echo "Failed tests:" 1924 1.1 jmmv $SHELL "$at_myself" $at_fail_list --list 1925 1.1 jmmv echo 1926 1.1 jmmv fi 1927 1.1 jmmv if test $at_skip_count != 0; then 1928 1.1 jmmv echo "Skipped tests:" 1929 1.1 jmmv $SHELL "$at_myself" $at_skip_list --list 1930 1.1 jmmv echo 1931 1.1 jmmv fi 1932 1.1 jmmv if test $at_xpass_count != 0; then 1933 1.1 jmmv echo "Unexpected passes:" 1934 1.1 jmmv $SHELL "$at_myself" $at_xpass_list --list 1935 1.1 jmmv echo 1936 1.1 jmmv fi 1937 1.1 jmmv if test $at_fail_count != 0; then 1938 1.1 jmmv $as_echo "## ---------------------- ## 1939 1.1 jmmv ## Detailed failed tests. ## 1940 1.1 jmmv ## ---------------------- ##" 1941 1.1 jmmv echo 1942 1.1 jmmv for at_group in $at_fail_list 1943 1.1 jmmv do 1944 1.1 jmmv at_group_normalized=$at_group 1945 1.1 jmmv 1946 1.1 jmmv eval 'while :; do 1947 1.1 jmmv case $at_group_normalized in #( 1948 1.1 jmmv '"$at_format"'*) break;; 1949 1.1 jmmv esac 1950 1.1 jmmv at_group_normalized=0$at_group_normalized 1951 1.1 jmmv done' 1952 1.1 jmmv 1953 1.1 jmmv cat "$at_suite_dir/$at_group_normalized/$as_me.log" 1954 1.1 jmmv echo 1955 1.1 jmmv done 1956 1.1 jmmv echo 1957 1.1 jmmv fi 1958 1.1 jmmv if test -n "$at_top_srcdir"; then 1959 1.1 jmmv sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX 1960 1.1 jmmv ## ${at_top_build_prefix}config.log ## 1961 1.1 jmmv _ASBOX 1962 1.1 jmmv sed 's/^/| /' ${at_top_build_prefix}config.log 1963 1.1 jmmv echo 1964 1.1 jmmv fi 1965 1.1 jmmv } >&5 1966 1.1 jmmv 1967 1.1 jmmv sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX 1968 1.1 jmmv ## $as_me.log was created. ## 1969 1.1 jmmv _ASBOX 1970 1.1 jmmv 1971 1.1 jmmv echo 1972 1.1 jmmv if $at_debug_p; then 1973 1.1 jmmv at_msg='per-test log files' 1974 1.1 jmmv else 1975 1.1 jmmv at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'" 1976 1.1 jmmv fi 1977 1.1 jmmv $as_echo "Please send $at_msg and all information you think might help: 1978 1.1 jmmv 1979 1.1 jmmv To: <kyua-discuss (at] googlegroups.com> 1980 1.1.1.2 jmmv Subject: [Kyua - Command line interface 0.7] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} 1981 1.1 jmmv 1982 1.1 jmmv You may investigate any problem if you feel able to do so, in which 1983 1.1 jmmv case the test suite provides a good starting point. Its output may 1984 1.1 jmmv be found below \`${at_testdir+${at_testdir}/}$as_me.dir'. 1985 1.1 jmmv " 1986 1.1 jmmv exit 1 1987 1.1 jmmv fi 1988 1.1 jmmv 1989 1.1 jmmv exit 0 1990 1.1 jmmv 1991 1.1 jmmv ## ------------- ## 1992 1.1 jmmv ## Actual tests. ## 1993 1.1 jmmv ## ------------- ## 1994 1.1 jmmv #AT_START_1 1995 1.1 jmmv at_fn_group_banner 1 'testsuite.at:70' \ 1996 1.1 jmmv "test program crashes in test list" " " 1997 1.1 jmmv at_xfail=no 1998 1.1 jmmv ( 1999 1.1 jmmv $as_echo "1. $at_setup_line: testing $at_desc ..." 2000 1.1 jmmv $at_traceon 2001 1.1 jmmv 2002 1.1 jmmv 2003 1.1 jmmv 2004 1.1 jmmv 2005 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2006 1.1 jmmv 2007 1.1 jmmv syntax(2) 2008 1.1 jmmv test_suite("bootstrap") 2009 1.1 jmmv atf_test_program{name="plain_helpers"} 2010 1.1 jmmv _ATEOF 2011 1.1 jmmv 2012 1.1 jmmv ln -s $({ 2013 1.1 jmmv old=$(pwd) 2014 1.1 jmmv cd "${at_suite_dir}" 2015 1.1 jmmv # We need to locate a build product, not a source file, because the 2016 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2017 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2018 1.1 jmmv cd .. 2019 1.1 jmmv done 2020 1.1 jmmv topdir=$(pwd) 2021 1.1 jmmv cd ${old} 2022 1.1 jmmv echo ${topdir} 2023 1.1 jmmv })/bootstrap/plain_helpers plain_helpers 2024 1.1 jmmv 2025 1.1 jmmv { set +x 2026 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:74: HOME=\$(pwd) HELPER=\"abort_test_cases_list\" kyua --config=none test --store=bootstrap.db" 2027 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:74" 2028 1.1 jmmv ( $at_check_trace; HOME=$(pwd) HELPER="abort_test_cases_list" kyua --config=none test --store=bootstrap.db 2029 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2030 1.1 jmmv at_status=$? at_failed=false 2031 1.1 jmmv $at_check_filter 2032 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2033 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2034 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:74" 2035 1.1 jmmv $at_failed && at_fn_log_failure 2036 1.1 jmmv $at_traceon; } 2037 1.1 jmmv 2038 1.1 jmmv re='plain_helpers:__test_cases_list__.*broken.*Test program list did not return success' 2039 1.1 jmmv { set +x 2040 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:76: grep \"\${re}\" stdout" 2041 1.1 jmmv at_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:76" 2042 1.1 jmmv ( $at_check_trace; grep "${re}" stdout 2043 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2044 1.1 jmmv at_status=$? at_failed=false 2045 1.1 jmmv $at_check_filter 2046 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2047 1.1 jmmv echo stdout:; cat "$at_stdout" 2048 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:76" 2049 1.1 jmmv $at_failed && at_fn_log_failure 2050 1.1 jmmv $at_traceon; } 2051 1.1 jmmv 2052 1.1 jmmv 2053 1.1 jmmv set +x 2054 1.1 jmmv $at_times_p && times >"$at_times_file" 2055 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2056 1.1 jmmv read at_status <"$at_status_file" 2057 1.1 jmmv #AT_STOP_1 2058 1.1 jmmv #AT_START_2 2059 1.1 jmmv at_fn_group_banner 2 'testsuite.at:81' \ 2060 1.1 jmmv "test program prints an empty test list" " " 2061 1.1 jmmv at_xfail=no 2062 1.1 jmmv ( 2063 1.1 jmmv $as_echo "2. $at_setup_line: testing $at_desc ..." 2064 1.1 jmmv $at_traceon 2065 1.1 jmmv 2066 1.1 jmmv 2067 1.1 jmmv 2068 1.1 jmmv 2069 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2070 1.1 jmmv 2071 1.1 jmmv syntax(2) 2072 1.1 jmmv test_suite("bootstrap") 2073 1.1 jmmv atf_test_program{name="plain_helpers"} 2074 1.1 jmmv _ATEOF 2075 1.1 jmmv 2076 1.1 jmmv ln -s $({ 2077 1.1 jmmv old=$(pwd) 2078 1.1 jmmv cd "${at_suite_dir}" 2079 1.1 jmmv # We need to locate a build product, not a source file, because the 2080 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2081 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2082 1.1 jmmv cd .. 2083 1.1 jmmv done 2084 1.1 jmmv topdir=$(pwd) 2085 1.1 jmmv cd ${old} 2086 1.1 jmmv echo ${topdir} 2087 1.1 jmmv })/bootstrap/plain_helpers plain_helpers 2088 1.1 jmmv 2089 1.1 jmmv { set +x 2090 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:85: HOME=\$(pwd) HELPER=\"empty_test_cases_list\" kyua --config=none test --store=bootstrap.db" 2091 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:85" 2092 1.1 jmmv ( $at_check_trace; HOME=$(pwd) HELPER="empty_test_cases_list" kyua --config=none test --store=bootstrap.db 2093 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2094 1.1 jmmv at_status=$? at_failed=false 2095 1.1 jmmv $at_check_filter 2096 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2097 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2098 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:85" 2099 1.1 jmmv $at_failed && at_fn_log_failure 2100 1.1 jmmv $at_traceon; } 2101 1.1 jmmv 2102 1.1 jmmv re='plain_helpers:__test_cases_list__.*broken.*failed to read.*unexpected EOF' 2103 1.1 jmmv { set +x 2104 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:87: grep \"\${re}\" stdout" 2105 1.1 jmmv at_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:87" 2106 1.1 jmmv ( $at_check_trace; grep "${re}" stdout 2107 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2108 1.1 jmmv at_status=$? at_failed=false 2109 1.1 jmmv $at_check_filter 2110 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2111 1.1 jmmv echo stdout:; cat "$at_stdout" 2112 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:87" 2113 1.1 jmmv $at_failed && at_fn_log_failure 2114 1.1 jmmv $at_traceon; } 2115 1.1 jmmv 2116 1.1 jmmv 2117 1.1 jmmv set +x 2118 1.1 jmmv $at_times_p && times >"$at_times_file" 2119 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2120 1.1 jmmv read at_status <"$at_status_file" 2121 1.1 jmmv #AT_STOP_2 2122 1.1 jmmv #AT_START_3 2123 1.1 jmmv at_fn_group_banner 3 'testsuite.at:92' \ 2124 1.1 jmmv "test program with zero test cases" " " 2125 1.1 jmmv at_xfail=no 2126 1.1 jmmv ( 2127 1.1 jmmv $as_echo "3. $at_setup_line: testing $at_desc ..." 2128 1.1 jmmv $at_traceon 2129 1.1 jmmv 2130 1.1 jmmv 2131 1.1 jmmv 2132 1.1 jmmv 2133 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2134 1.1 jmmv 2135 1.1 jmmv syntax(2) 2136 1.1 jmmv test_suite("bootstrap") 2137 1.1 jmmv atf_test_program{name="plain_helpers"} 2138 1.1 jmmv _ATEOF 2139 1.1 jmmv 2140 1.1 jmmv ln -s $({ 2141 1.1 jmmv old=$(pwd) 2142 1.1 jmmv cd "${at_suite_dir}" 2143 1.1 jmmv # We need to locate a build product, not a source file, because the 2144 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2145 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2146 1.1 jmmv cd .. 2147 1.1 jmmv done 2148 1.1 jmmv topdir=$(pwd) 2149 1.1 jmmv cd ${old} 2150 1.1 jmmv echo ${topdir} 2151 1.1 jmmv })/bootstrap/plain_helpers plain_helpers 2152 1.1 jmmv 2153 1.1 jmmv { set +x 2154 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:96: HOME=\$(pwd) HELPER=\"zero_test_cases\" kyua --config=none test --store=bootstrap.db" 2155 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:96" 2156 1.1 jmmv ( $at_check_trace; HOME=$(pwd) HELPER="zero_test_cases" kyua --config=none test --store=bootstrap.db 2157 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2158 1.1 jmmv at_status=$? at_failed=false 2159 1.1 jmmv $at_check_filter 2160 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2161 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2162 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:96" 2163 1.1 jmmv $at_failed && at_fn_log_failure 2164 1.1 jmmv $at_traceon; } 2165 1.1 jmmv 2166 1.1 jmmv re='plain_helpers:__test_cases_list__.*broken.*Empty test cases list' 2167 1.1 jmmv { set +x 2168 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:98: grep \"\${re}\" stdout" 2169 1.1 jmmv at_fn_check_prepare_notrace 'a ${...} parameter expansion' "testsuite.at:98" 2170 1.1 jmmv ( $at_check_trace; grep "${re}" stdout 2171 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2172 1.1 jmmv at_status=$? at_failed=false 2173 1.1 jmmv $at_check_filter 2174 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2175 1.1 jmmv echo stdout:; cat "$at_stdout" 2176 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:98" 2177 1.1 jmmv $at_failed && at_fn_log_failure 2178 1.1 jmmv $at_traceon; } 2179 1.1 jmmv 2180 1.1 jmmv 2181 1.1 jmmv set +x 2182 1.1 jmmv $at_times_p && times >"$at_times_file" 2183 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2184 1.1 jmmv read at_status <"$at_status_file" 2185 1.1 jmmv #AT_STOP_3 2186 1.1 jmmv #AT_START_4 2187 1.1 jmmv at_fn_group_banner 4 'testsuite.at:103' \ 2188 1.1 jmmv "run test case that passes" " " 2189 1.1 jmmv at_xfail=no 2190 1.1 jmmv ( 2191 1.1 jmmv $as_echo "4. $at_setup_line: testing $at_desc ..." 2192 1.1 jmmv $at_traceon 2193 1.1 jmmv 2194 1.1 jmmv 2195 1.1 jmmv 2196 1.1 jmmv 2197 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2198 1.1 jmmv 2199 1.1 jmmv syntax(2) 2200 1.1 jmmv test_suite("bootstrap") 2201 1.1 jmmv atf_test_program{name="atf_helpers"} 2202 1.1 jmmv _ATEOF 2203 1.1 jmmv 2204 1.1 jmmv ln -s $({ 2205 1.1 jmmv old=$(pwd) 2206 1.1 jmmv cd "${at_suite_dir}" 2207 1.1 jmmv # We need to locate a build product, not a source file, because the 2208 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2209 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2210 1.1 jmmv cd .. 2211 1.1 jmmv done 2212 1.1 jmmv topdir=$(pwd) 2213 1.1 jmmv cd ${old} 2214 1.1 jmmv echo ${topdir} 2215 1.1 jmmv })/bootstrap/atf_helpers atf_helpers 2216 1.1 jmmv 2217 1.1 jmmv { set +x 2218 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:107: HOME=\$(pwd) TESTS=\"passes\" kyua --config=none test --store=bootstrap.db " 2219 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:107" 2220 1.1 jmmv ( $at_check_trace; HOME=$(pwd) TESTS="passes" kyua --config=none test --store=bootstrap.db 2221 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2222 1.1 jmmv at_status=$? at_failed=false 2223 1.1 jmmv $at_check_filter 2224 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2225 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2226 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:107" 2227 1.1 jmmv $at_failed && at_fn_log_failure 2228 1.1 jmmv $at_traceon; } 2229 1.1 jmmv 2230 1.1 jmmv { set +x 2231 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:108: grep \"atf_helpers:fails\" stdout" 2232 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:108" 2233 1.1 jmmv ( $at_check_trace; grep "atf_helpers:fails" stdout 2234 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2235 1.1 jmmv at_status=$? at_failed=false 2236 1.1 jmmv $at_check_filter 2237 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2238 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2239 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:108" 2240 1.1 jmmv $at_failed && at_fn_log_failure 2241 1.1 jmmv $at_traceon; } 2242 1.1 jmmv 2243 1.1 jmmv { set +x 2244 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:109: grep \"atf_helpers:passes.*passed\" stdout" 2245 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:109" 2246 1.1 jmmv ( $at_check_trace; grep "atf_helpers:passes.*passed" stdout 2247 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2248 1.1 jmmv at_status=$? at_failed=false 2249 1.1 jmmv $at_check_filter 2250 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2251 1.1 jmmv echo stdout:; cat "$at_stdout" 2252 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:109" 2253 1.1 jmmv $at_failed && at_fn_log_failure 2254 1.1 jmmv $at_traceon; } 2255 1.1 jmmv 2256 1.1 jmmv { set +x 2257 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:110: grep \"atf_helpers:skips\" stdout" 2258 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:110" 2259 1.1 jmmv ( $at_check_trace; grep "atf_helpers:skips" stdout 2260 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2261 1.1 jmmv at_status=$? at_failed=false 2262 1.1 jmmv $at_check_filter 2263 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2264 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2265 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:110" 2266 1.1 jmmv $at_failed && at_fn_log_failure 2267 1.1 jmmv $at_traceon; } 2268 1.1 jmmv 2269 1.1 jmmv 2270 1.1 jmmv set +x 2271 1.1 jmmv $at_times_p && times >"$at_times_file" 2272 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2273 1.1 jmmv read at_status <"$at_status_file" 2274 1.1 jmmv #AT_STOP_4 2275 1.1 jmmv #AT_START_5 2276 1.1 jmmv at_fn_group_banner 5 'testsuite.at:115' \ 2277 1.1 jmmv "run test case that fails" " " 2278 1.1 jmmv at_xfail=no 2279 1.1 jmmv ( 2280 1.1 jmmv $as_echo "5. $at_setup_line: testing $at_desc ..." 2281 1.1 jmmv $at_traceon 2282 1.1 jmmv 2283 1.1 jmmv 2284 1.1 jmmv 2285 1.1 jmmv 2286 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2287 1.1 jmmv 2288 1.1 jmmv syntax(2) 2289 1.1 jmmv test_suite("bootstrap") 2290 1.1 jmmv atf_test_program{name="atf_helpers"} 2291 1.1 jmmv _ATEOF 2292 1.1 jmmv 2293 1.1 jmmv ln -s $({ 2294 1.1 jmmv old=$(pwd) 2295 1.1 jmmv cd "${at_suite_dir}" 2296 1.1 jmmv # We need to locate a build product, not a source file, because the 2297 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2298 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2299 1.1 jmmv cd .. 2300 1.1 jmmv done 2301 1.1 jmmv topdir=$(pwd) 2302 1.1 jmmv cd ${old} 2303 1.1 jmmv echo ${topdir} 2304 1.1 jmmv })/bootstrap/atf_helpers atf_helpers 2305 1.1 jmmv 2306 1.1 jmmv { set +x 2307 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:119: HOME=\$(pwd) TESTS=\"fails\" kyua --config=none test --store=bootstrap.db " 2308 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:119" 2309 1.1 jmmv ( $at_check_trace; HOME=$(pwd) TESTS="fails" kyua --config=none test --store=bootstrap.db 2310 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2311 1.1 jmmv at_status=$? at_failed=false 2312 1.1 jmmv $at_check_filter 2313 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2314 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2315 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:119" 2316 1.1 jmmv $at_failed && at_fn_log_failure 2317 1.1 jmmv $at_traceon; } 2318 1.1 jmmv 2319 1.1 jmmv { set +x 2320 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:120: grep \"atf_helpers:fails.*failed.*Failed on purpose\" stdout" 2321 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:120" 2322 1.1 jmmv ( $at_check_trace; grep "atf_helpers:fails.*failed.*Failed on purpose" stdout 2323 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2324 1.1 jmmv at_status=$? at_failed=false 2325 1.1 jmmv $at_check_filter 2326 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2327 1.1 jmmv echo stdout:; cat "$at_stdout" 2328 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:120" 2329 1.1 jmmv $at_failed && at_fn_log_failure 2330 1.1 jmmv $at_traceon; } 2331 1.1 jmmv 2332 1.1 jmmv { set +x 2333 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:122: grep \"atf_helpers:passes\" stdout" 2334 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:122" 2335 1.1 jmmv ( $at_check_trace; grep "atf_helpers:passes" stdout 2336 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2337 1.1 jmmv at_status=$? at_failed=false 2338 1.1 jmmv $at_check_filter 2339 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2340 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2341 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:122" 2342 1.1 jmmv $at_failed && at_fn_log_failure 2343 1.1 jmmv $at_traceon; } 2344 1.1 jmmv 2345 1.1 jmmv { set +x 2346 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:123: grep \"atf_helpers:skips\" stdout" 2347 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:123" 2348 1.1 jmmv ( $at_check_trace; grep "atf_helpers:skips" stdout 2349 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2350 1.1 jmmv at_status=$? at_failed=false 2351 1.1 jmmv $at_check_filter 2352 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2353 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2354 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:123" 2355 1.1 jmmv $at_failed && at_fn_log_failure 2356 1.1 jmmv $at_traceon; } 2357 1.1 jmmv 2358 1.1 jmmv 2359 1.1 jmmv set +x 2360 1.1 jmmv $at_times_p && times >"$at_times_file" 2361 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2362 1.1 jmmv read at_status <"$at_status_file" 2363 1.1 jmmv #AT_STOP_5 2364 1.1 jmmv #AT_START_6 2365 1.1 jmmv at_fn_group_banner 6 'testsuite.at:128' \ 2366 1.1 jmmv "run test case that skips" " " 2367 1.1 jmmv at_xfail=no 2368 1.1 jmmv ( 2369 1.1 jmmv $as_echo "6. $at_setup_line: testing $at_desc ..." 2370 1.1 jmmv $at_traceon 2371 1.1 jmmv 2372 1.1 jmmv 2373 1.1 jmmv 2374 1.1 jmmv 2375 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2376 1.1 jmmv 2377 1.1 jmmv syntax(2) 2378 1.1 jmmv test_suite("bootstrap") 2379 1.1 jmmv atf_test_program{name="atf_helpers"} 2380 1.1 jmmv _ATEOF 2381 1.1 jmmv 2382 1.1 jmmv ln -s $({ 2383 1.1 jmmv old=$(pwd) 2384 1.1 jmmv cd "${at_suite_dir}" 2385 1.1 jmmv # We need to locate a build product, not a source file, because the 2386 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2387 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2388 1.1 jmmv cd .. 2389 1.1 jmmv done 2390 1.1 jmmv topdir=$(pwd) 2391 1.1 jmmv cd ${old} 2392 1.1 jmmv echo ${topdir} 2393 1.1 jmmv })/bootstrap/atf_helpers atf_helpers 2394 1.1 jmmv 2395 1.1 jmmv { set +x 2396 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:132: HOME=\$(pwd) TESTS=\"skips\" kyua --config=none test --store=bootstrap.db " 2397 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:132" 2398 1.1 jmmv ( $at_check_trace; HOME=$(pwd) TESTS="skips" kyua --config=none test --store=bootstrap.db 2399 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2400 1.1 jmmv at_status=$? at_failed=false 2401 1.1 jmmv $at_check_filter 2402 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2403 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2404 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:132" 2405 1.1 jmmv $at_failed && at_fn_log_failure 2406 1.1 jmmv $at_traceon; } 2407 1.1 jmmv 2408 1.1 jmmv { set +x 2409 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:133: grep \"atf_helpers:fails\" stdout" 2410 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:133" 2411 1.1 jmmv ( $at_check_trace; grep "atf_helpers:fails" stdout 2412 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2413 1.1 jmmv at_status=$? at_failed=false 2414 1.1 jmmv $at_check_filter 2415 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2416 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2417 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:133" 2418 1.1 jmmv $at_failed && at_fn_log_failure 2419 1.1 jmmv $at_traceon; } 2420 1.1 jmmv 2421 1.1 jmmv { set +x 2422 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:134: grep \"atf_helpers:passes\" stdout" 2423 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:134" 2424 1.1 jmmv ( $at_check_trace; grep "atf_helpers:passes" stdout 2425 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2426 1.1 jmmv at_status=$? at_failed=false 2427 1.1 jmmv $at_check_filter 2428 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2429 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2430 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:134" 2431 1.1 jmmv $at_failed && at_fn_log_failure 2432 1.1 jmmv $at_traceon; } 2433 1.1 jmmv 2434 1.1 jmmv { set +x 2435 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:135: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout" 2436 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:135" 2437 1.1 jmmv ( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout 2438 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2439 1.1 jmmv at_status=$? at_failed=false 2440 1.1 jmmv $at_check_filter 2441 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2442 1.1 jmmv echo stdout:; cat "$at_stdout" 2443 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:135" 2444 1.1 jmmv $at_failed && at_fn_log_failure 2445 1.1 jmmv $at_traceon; } 2446 1.1 jmmv 2447 1.1 jmmv 2448 1.1 jmmv set +x 2449 1.1 jmmv $at_times_p && times >"$at_times_file" 2450 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2451 1.1 jmmv read at_status <"$at_status_file" 2452 1.1 jmmv #AT_STOP_6 2453 1.1 jmmv #AT_START_7 2454 1.1 jmmv at_fn_group_banner 7 'testsuite.at:141' \ 2455 1.1 jmmv "run two test cases, success" " " 2456 1.1 jmmv at_xfail=no 2457 1.1 jmmv ( 2458 1.1 jmmv $as_echo "7. $at_setup_line: testing $at_desc ..." 2459 1.1 jmmv $at_traceon 2460 1.1 jmmv 2461 1.1 jmmv 2462 1.1 jmmv 2463 1.1 jmmv 2464 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2465 1.1 jmmv 2466 1.1 jmmv syntax(2) 2467 1.1 jmmv test_suite("bootstrap") 2468 1.1 jmmv atf_test_program{name="atf_helpers"} 2469 1.1 jmmv _ATEOF 2470 1.1 jmmv 2471 1.1 jmmv ln -s $({ 2472 1.1 jmmv old=$(pwd) 2473 1.1 jmmv cd "${at_suite_dir}" 2474 1.1 jmmv # We need to locate a build product, not a source file, because the 2475 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2476 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2477 1.1 jmmv cd .. 2478 1.1 jmmv done 2479 1.1 jmmv topdir=$(pwd) 2480 1.1 jmmv cd ${old} 2481 1.1 jmmv echo ${topdir} 2482 1.1 jmmv })/bootstrap/atf_helpers atf_helpers 2483 1.1 jmmv 2484 1.1 jmmv { set +x 2485 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:145: HOME=\$(pwd) TESTS=\"passes skips\" kyua --config=none test --store=bootstrap.db " 2486 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:145" 2487 1.1 jmmv ( $at_check_trace; HOME=$(pwd) TESTS="passes skips" kyua --config=none test --store=bootstrap.db 2488 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2489 1.1 jmmv at_status=$? at_failed=false 2490 1.1 jmmv $at_check_filter 2491 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2492 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2493 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:145" 2494 1.1 jmmv $at_failed && at_fn_log_failure 2495 1.1 jmmv $at_traceon; } 2496 1.1 jmmv 2497 1.1 jmmv { set +x 2498 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:146: grep \"atf_helpers:fails\" stdout" 2499 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:146" 2500 1.1 jmmv ( $at_check_trace; grep "atf_helpers:fails" stdout 2501 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2502 1.1 jmmv at_status=$? at_failed=false 2503 1.1 jmmv $at_check_filter 2504 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2505 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2506 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:146" 2507 1.1 jmmv $at_failed && at_fn_log_failure 2508 1.1 jmmv $at_traceon; } 2509 1.1 jmmv 2510 1.1 jmmv { set +x 2511 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:147: grep \"atf_helpers:passes.*passed\" stdout" 2512 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:147" 2513 1.1 jmmv ( $at_check_trace; grep "atf_helpers:passes.*passed" stdout 2514 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2515 1.1 jmmv at_status=$? at_failed=false 2516 1.1 jmmv $at_check_filter 2517 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2518 1.1 jmmv echo stdout:; cat "$at_stdout" 2519 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:147" 2520 1.1 jmmv $at_failed && at_fn_log_failure 2521 1.1 jmmv $at_traceon; } 2522 1.1 jmmv 2523 1.1 jmmv { set +x 2524 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:148: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout" 2525 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:148" 2526 1.1 jmmv ( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout 2527 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2528 1.1 jmmv at_status=$? at_failed=false 2529 1.1 jmmv $at_check_filter 2530 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2531 1.1 jmmv echo stdout:; cat "$at_stdout" 2532 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:148" 2533 1.1 jmmv $at_failed && at_fn_log_failure 2534 1.1 jmmv $at_traceon; } 2535 1.1 jmmv 2536 1.1 jmmv 2537 1.1 jmmv set +x 2538 1.1 jmmv $at_times_p && times >"$at_times_file" 2539 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2540 1.1 jmmv read at_status <"$at_status_file" 2541 1.1 jmmv #AT_STOP_7 2542 1.1 jmmv #AT_START_8 2543 1.1 jmmv at_fn_group_banner 8 'testsuite.at:154' \ 2544 1.1 jmmv "run two test cases, failure" " " 2545 1.1 jmmv at_xfail=no 2546 1.1 jmmv ( 2547 1.1 jmmv $as_echo "8. $at_setup_line: testing $at_desc ..." 2548 1.1 jmmv $at_traceon 2549 1.1 jmmv 2550 1.1 jmmv 2551 1.1 jmmv 2552 1.1 jmmv 2553 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2554 1.1 jmmv 2555 1.1 jmmv syntax(2) 2556 1.1 jmmv test_suite("bootstrap") 2557 1.1 jmmv atf_test_program{name="atf_helpers"} 2558 1.1 jmmv _ATEOF 2559 1.1 jmmv 2560 1.1 jmmv ln -s $({ 2561 1.1 jmmv old=$(pwd) 2562 1.1 jmmv cd "${at_suite_dir}" 2563 1.1 jmmv # We need to locate a build product, not a source file, because the 2564 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2565 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2566 1.1 jmmv cd .. 2567 1.1 jmmv done 2568 1.1 jmmv topdir=$(pwd) 2569 1.1 jmmv cd ${old} 2570 1.1 jmmv echo ${topdir} 2571 1.1 jmmv })/bootstrap/atf_helpers atf_helpers 2572 1.1 jmmv 2573 1.1 jmmv { set +x 2574 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:158: HOME=\$(pwd) TESTS=\"fails passes\" kyua --config=none test --store=bootstrap.db " 2575 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:158" 2576 1.1 jmmv ( $at_check_trace; HOME=$(pwd) TESTS="fails passes" kyua --config=none test --store=bootstrap.db 2577 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2578 1.1 jmmv at_status=$? at_failed=false 2579 1.1 jmmv $at_check_filter 2580 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2581 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2582 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:158" 2583 1.1 jmmv $at_failed && at_fn_log_failure 2584 1.1 jmmv $at_traceon; } 2585 1.1 jmmv 2586 1.1 jmmv { set +x 2587 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:159: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout" 2588 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:159" 2589 1.1 jmmv ( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout 2590 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2591 1.1 jmmv at_status=$? at_failed=false 2592 1.1 jmmv $at_check_filter 2593 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2594 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2595 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:159" 2596 1.1 jmmv $at_failed && at_fn_log_failure 2597 1.1 jmmv $at_traceon; } 2598 1.1 jmmv 2599 1.1 jmmv { set +x 2600 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:161: grep \"atf_helpers:passes.*passed\" stdout" 2601 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:161" 2602 1.1 jmmv ( $at_check_trace; grep "atf_helpers:passes.*passed" stdout 2603 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2604 1.1 jmmv at_status=$? at_failed=false 2605 1.1 jmmv $at_check_filter 2606 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2607 1.1 jmmv echo stdout:; cat "$at_stdout" 2608 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:161" 2609 1.1 jmmv $at_failed && at_fn_log_failure 2610 1.1 jmmv $at_traceon; } 2611 1.1 jmmv 2612 1.1 jmmv { set +x 2613 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:162: grep \"atf_helpers:skips\" stdout" 2614 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:162" 2615 1.1 jmmv ( $at_check_trace; grep "atf_helpers:skips" stdout 2616 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2617 1.1 jmmv at_status=$? at_failed=false 2618 1.1 jmmv $at_check_filter 2619 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2620 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2621 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:162" 2622 1.1 jmmv $at_failed && at_fn_log_failure 2623 1.1 jmmv $at_traceon; } 2624 1.1 jmmv 2625 1.1 jmmv 2626 1.1 jmmv set +x 2627 1.1 jmmv $at_times_p && times >"$at_times_file" 2628 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2629 1.1 jmmv read at_status <"$at_status_file" 2630 1.1 jmmv #AT_STOP_8 2631 1.1 jmmv #AT_START_9 2632 1.1 jmmv at_fn_group_banner 9 'testsuite.at:167' \ 2633 1.1 jmmv "run mixed test cases" " " 2634 1.1 jmmv at_xfail=no 2635 1.1 jmmv ( 2636 1.1 jmmv $as_echo "9. $at_setup_line: testing $at_desc ..." 2637 1.1 jmmv $at_traceon 2638 1.1 jmmv 2639 1.1 jmmv 2640 1.1 jmmv 2641 1.1 jmmv 2642 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2643 1.1 jmmv 2644 1.1 jmmv syntax(2) 2645 1.1 jmmv test_suite("bootstrap") 2646 1.1 jmmv atf_test_program{name="atf_helpers"} 2647 1.1 jmmv _ATEOF 2648 1.1 jmmv 2649 1.1 jmmv ln -s $({ 2650 1.1 jmmv old=$(pwd) 2651 1.1 jmmv cd "${at_suite_dir}" 2652 1.1 jmmv # We need to locate a build product, not a source file, because the 2653 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2654 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2655 1.1 jmmv cd .. 2656 1.1 jmmv done 2657 1.1 jmmv topdir=$(pwd) 2658 1.1 jmmv cd ${old} 2659 1.1 jmmv echo ${topdir} 2660 1.1 jmmv })/bootstrap/atf_helpers atf_helpers 2661 1.1 jmmv 2662 1.1 jmmv { set +x 2663 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:171: HOME=\$(pwd) TESTS=\"fails passes skips\" kyua --config=none test --store=bootstrap.db " 2664 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:171" 2665 1.1 jmmv ( $at_check_trace; HOME=$(pwd) TESTS="fails passes skips" kyua --config=none test --store=bootstrap.db 2666 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2667 1.1 jmmv at_status=$? at_failed=false 2668 1.1 jmmv $at_check_filter 2669 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2670 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2671 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:171" 2672 1.1 jmmv $at_failed && at_fn_log_failure 2673 1.1 jmmv $at_traceon; } 2674 1.1 jmmv 2675 1.1 jmmv { set +x 2676 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:172: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout" 2677 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:172" 2678 1.1 jmmv ( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout 2679 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2680 1.1 jmmv at_status=$? at_failed=false 2681 1.1 jmmv $at_check_filter 2682 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2683 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2684 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:172" 2685 1.1 jmmv $at_failed && at_fn_log_failure 2686 1.1 jmmv $at_traceon; } 2687 1.1 jmmv 2688 1.1 jmmv { set +x 2689 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:174: grep \"atf_helpers:passes.*passed\" stdout" 2690 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:174" 2691 1.1 jmmv ( $at_check_trace; grep "atf_helpers:passes.*passed" stdout 2692 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2693 1.1 jmmv at_status=$? at_failed=false 2694 1.1 jmmv $at_check_filter 2695 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2696 1.1 jmmv echo stdout:; cat "$at_stdout" 2697 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:174" 2698 1.1 jmmv $at_failed && at_fn_log_failure 2699 1.1 jmmv $at_traceon; } 2700 1.1 jmmv 2701 1.1 jmmv { set +x 2702 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:175: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout" 2703 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:175" 2704 1.1 jmmv ( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout 2705 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2706 1.1 jmmv at_status=$? at_failed=false 2707 1.1 jmmv $at_check_filter 2708 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2709 1.1 jmmv echo stdout:; cat "$at_stdout" 2710 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:175" 2711 1.1 jmmv $at_failed && at_fn_log_failure 2712 1.1 jmmv $at_traceon; } 2713 1.1 jmmv 2714 1.1 jmmv 2715 1.1 jmmv set +x 2716 1.1 jmmv $at_times_p && times >"$at_times_file" 2717 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2718 1.1 jmmv read at_status <"$at_status_file" 2719 1.1 jmmv #AT_STOP_9 2720 1.1 jmmv #AT_START_10 2721 1.1 jmmv at_fn_group_banner 10 'testsuite.at:181' \ 2722 1.1 jmmv "run tests from build directories" " " 2723 1.1 jmmv at_xfail=no 2724 1.1 jmmv ( 2725 1.1 jmmv $as_echo "10. $at_setup_line: testing $at_desc ..." 2726 1.1 jmmv $at_traceon 2727 1.1 jmmv 2728 1.1 jmmv 2729 1.1 jmmv 2730 1.1 jmmv 2731 1.1 jmmv cat >Kyuafile <<'_ATEOF' 2732 1.1 jmmv 2733 1.1 jmmv syntax(2) 2734 1.1 jmmv test_suite("bootstrap") 2735 1.1 jmmv atf_test_program{name="atf_helpers"} 2736 1.1 jmmv _ATEOF 2737 1.1 jmmv 2738 1.1 jmmv ln -s $({ 2739 1.1 jmmv old=$(pwd) 2740 1.1 jmmv cd "${at_suite_dir}" 2741 1.1 jmmv # We need to locate a build product, not a source file, because the 2742 1.1 jmmv # test suite may be run outside of the source tree (think distcheck). 2743 1.1 jmmv while test $(pwd) != '/' -a ! -e engine/test_case_test; do 2744 1.1 jmmv cd .. 2745 1.1 jmmv done 2746 1.1 jmmv topdir=$(pwd) 2747 1.1 jmmv cd ${old} 2748 1.1 jmmv echo ${topdir} 2749 1.1 jmmv })/bootstrap/atf_helpers atf_helpers 2750 1.1 jmmv 2751 1.1 jmmv { set +x 2752 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:185: mkdir src" 2753 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:185" 2754 1.1 jmmv ( $at_check_trace; mkdir src 2755 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2756 1.1 jmmv at_status=$? at_failed=false 2757 1.1 jmmv $at_check_filter 2758 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2759 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2760 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:185" 2761 1.1 jmmv $at_failed && at_fn_log_failure 2762 1.1 jmmv $at_traceon; } 2763 1.1 jmmv 2764 1.1 jmmv { set +x 2765 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:186: mv Kyuafile src" 2766 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:186" 2767 1.1 jmmv ( $at_check_trace; mv Kyuafile src 2768 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2769 1.1 jmmv at_status=$? at_failed=false 2770 1.1 jmmv $at_check_filter 2771 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2772 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2773 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:186" 2774 1.1 jmmv $at_failed && at_fn_log_failure 2775 1.1 jmmv $at_traceon; } 2776 1.1 jmmv 2777 1.1 jmmv { set +x 2778 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:187: mkdir obj" 2779 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:187" 2780 1.1 jmmv ( $at_check_trace; mkdir obj 2781 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2782 1.1 jmmv at_status=$? at_failed=false 2783 1.1 jmmv $at_check_filter 2784 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2785 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2786 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:187" 2787 1.1 jmmv $at_failed && at_fn_log_failure 2788 1.1 jmmv $at_traceon; } 2789 1.1 jmmv 2790 1.1 jmmv { set +x 2791 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:188: mv atf_helpers obj" 2792 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:188" 2793 1.1 jmmv ( $at_check_trace; mv atf_helpers obj 2794 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2795 1.1 jmmv at_status=$? at_failed=false 2796 1.1 jmmv $at_check_filter 2797 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2798 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2799 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:188" 2800 1.1 jmmv $at_failed && at_fn_log_failure 2801 1.1 jmmv $at_traceon; } 2802 1.1 jmmv 2803 1.1 jmmv { set +x 2804 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:189: HOME=\$(pwd) TESTS=\"fails passes skips\" kyua --config=none test --store=bootstrap.db --kyuafile=src/Kyuafile --build-root=obj" 2805 1.1 jmmv at_fn_check_prepare_notrace 'a $(...) command substitution' "testsuite.at:189" 2806 1.1 jmmv ( $at_check_trace; HOME=$(pwd) TESTS="fails passes skips" kyua --config=none test --store=bootstrap.db --kyuafile=src/Kyuafile --build-root=obj 2807 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2808 1.1 jmmv at_status=$? at_failed=false 2809 1.1 jmmv $at_check_filter 2810 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2811 1.1 jmmv echo stdout:; tee stdout <"$at_stdout" 2812 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:189" 2813 1.1 jmmv $at_failed && at_fn_log_failure 2814 1.1 jmmv $at_traceon; } 2815 1.1 jmmv 2816 1.1 jmmv { set +x 2817 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:192: grep \"atf_helpers:fails.*failure.*Failed on purpose\" stdout" 2818 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:192" 2819 1.1 jmmv ( $at_check_trace; grep "atf_helpers:fails.*failure.*Failed on purpose" stdout 2820 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2821 1.1 jmmv at_status=$? at_failed=false 2822 1.1 jmmv $at_check_filter 2823 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2824 1.1 jmmv at_fn_diff_devnull "$at_stdout" || at_failed=: 2825 1.1 jmmv at_fn_check_status 1 $at_status "$at_srcdir/testsuite.at:192" 2826 1.1 jmmv $at_failed && at_fn_log_failure 2827 1.1 jmmv $at_traceon; } 2828 1.1 jmmv 2829 1.1 jmmv { set +x 2830 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:194: grep \"atf_helpers:passes.*passed\" stdout" 2831 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:194" 2832 1.1 jmmv ( $at_check_trace; grep "atf_helpers:passes.*passed" stdout 2833 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2834 1.1 jmmv at_status=$? at_failed=false 2835 1.1 jmmv $at_check_filter 2836 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2837 1.1 jmmv echo stdout:; cat "$at_stdout" 2838 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:194" 2839 1.1 jmmv $at_failed && at_fn_log_failure 2840 1.1 jmmv $at_traceon; } 2841 1.1 jmmv 2842 1.1 jmmv { set +x 2843 1.1 jmmv $as_echo "$at_srcdir/testsuite.at:195: grep \"atf_helpers:skips.*skipped.*Skipped on purpose\" stdout" 2844 1.1 jmmv at_fn_check_prepare_trace "testsuite.at:195" 2845 1.1 jmmv ( $at_check_trace; grep "atf_helpers:skips.*skipped.*Skipped on purpose" stdout 2846 1.1 jmmv ) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2847 1.1 jmmv at_status=$? at_failed=false 2848 1.1 jmmv $at_check_filter 2849 1.1 jmmv at_fn_diff_devnull "$at_stderr" || at_failed=: 2850 1.1 jmmv echo stdout:; cat "$at_stdout" 2851 1.1 jmmv at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:195" 2852 1.1 jmmv $at_failed && at_fn_log_failure 2853 1.1 jmmv $at_traceon; } 2854 1.1 jmmv 2855 1.1 jmmv 2856 1.1 jmmv set +x 2857 1.1 jmmv $at_times_p && times >"$at_times_file" 2858 1.1 jmmv ) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2859 1.1 jmmv read at_status <"$at_status_file" 2860 1.1 jmmv #AT_STOP_10 2861