1#! /bin/sh 2# Generated from ../../grecs/wordsplit/wordsplit.at by GNU Autoconf 2.69. 3# 4# Copyright (C) 2009-2012 Free Software Foundation, Inc. 5# 6# This test suite is free software; the Free Software Foundation gives 7# unlimited permission to copy, distribute and modify it. 8## -------------------- ## 9## M4sh Initialization. ## 10## -------------------- ## 11 12# Be more Bourne compatible 13DUALCASE=1; export DUALCASE # for MKS sh 14if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : 15 emulate sh 16 NULLCMD=: 17 # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which 18 # is contrary to our usage. Disable this feature. 19 alias -g '${1+"$@"}'='"$@"' 20 setopt NO_GLOB_SUBST 21else 22 case `(set -o) 2>/dev/null` in #( 23 *posix*) : 24 set -o posix ;; #( 25 *) : 26 ;; 27esac 28fi 29 30 31as_nl=' 32' 33export as_nl 34# Printing a long string crashes Solaris 7 /usr/bin/printf. 35as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' 36as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo 37as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo 38# Prefer a ksh shell builtin over an external printf program on Solaris, 39# but without wasting forks for bash or zsh. 40if test -z "$BASH_VERSION$ZSH_VERSION" \ 41 && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then 42 as_echo='print -r --' 43 as_echo_n='print -rn --' 44elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then 45 as_echo='printf %s\n' 46 as_echo_n='printf %s' 47else 48 if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then 49 as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' 50 as_echo_n='/usr/ucb/echo -n' 51 else 52 as_echo_body='eval expr "X$1" : "X\\(.*\\)"' 53 as_echo_n_body='eval 54 arg=$1; 55 case $arg in #( 56 *"$as_nl"*) 57 expr "X$arg" : "X\\(.*\\)$as_nl"; 58 arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; 59 esac; 60 expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" 61 ' 62 export as_echo_n_body 63 as_echo_n='sh -c $as_echo_n_body as_echo' 64 fi 65 export as_echo_body 66 as_echo='sh -c $as_echo_body as_echo' 67fi 68 69# The user is always right. 70if test "${PATH_SEPARATOR+set}" != set; then 71 PATH_SEPARATOR=: 72 (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { 73 (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || 74 PATH_SEPARATOR=';' 75 } 76fi 77 78 79# IFS 80# We need space, tab and new line, in precisely that order. Quoting is 81# there to prevent editors from complaining about space-tab. 82# (If _AS_PATH_WALK were called with IFS unset, it would disable word 83# splitting by setting IFS to empty value.) 84IFS=" "" $as_nl" 85 86# Find who we are. Look in the path if we contain no directory separator. 87as_myself= 88case $0 in #(( 89 *[\\/]* ) as_myself=$0 ;; 90 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 91for as_dir in $PATH 92do 93 IFS=$as_save_IFS 94 test -z "$as_dir" && as_dir=. 95 test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break 96 done 97IFS=$as_save_IFS 98 99 ;; 100esac 101# We did not find ourselves, most probably we were run as `sh COMMAND' 102# in which case we are not to be found in the path. 103if test "x$as_myself" = x; then 104 as_myself=$0 105fi 106if test ! -f "$as_myself"; then 107 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 108 exit 1 109fi 110 111# Unset variables that we do not need and which cause bugs (e.g. in 112# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" 113# suppresses any "Segmentation fault" message there. '((' could 114# trigger a bug in pdksh 5.2.14. 115for as_var in BASH_ENV ENV MAIL MAILPATH 116do eval test x\${$as_var+set} = xset \ 117 && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : 118done 119PS1='$ ' 120PS2='> ' 121PS4='+ ' 122 123# NLS nuisances. 124LC_ALL=C 125export LC_ALL 126LANGUAGE=C 127export LANGUAGE 128 129# CDPATH. 130(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 131 132if test "x$CONFIG_SHELL" = x; then 133 as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : 134 emulate sh 135 NULLCMD=: 136 # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which 137 # is contrary to our usage. Disable this feature. 138 alias -g '\${1+\"\$@\"}'='\"\$@\"' 139 setopt NO_GLOB_SUBST 140else 141 case \`(set -o) 2>/dev/null\` in #( 142 *posix*) : 143 set -o posix ;; #( 144 *) : 145 ;; 146esac 147fi 148" 149 as_required="as_fn_return () { (exit \$1); } 150as_fn_success () { as_fn_return 0; } 151as_fn_failure () { as_fn_return 1; } 152as_fn_ret_success () { return 0; } 153as_fn_ret_failure () { return 1; } 154 155exitcode=0 156as_fn_success || { exitcode=1; echo as_fn_success failed.; } 157as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } 158as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } 159as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } 160if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : 161 162else 163 exitcode=1; echo positional parameters were not saved. 164fi 165test x\$exitcode = x0 || exit 1 166test -x / || exit 1" 167 as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO 168 as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO 169 eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && 170 test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 171test \$(( 1 + 1 )) = 2 || exit 1" 172 if (eval "$as_required") 2>/dev/null; then : 173 as_have_required=yes 174else 175 as_have_required=no 176fi 177 if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : 178 179else 180 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 181as_found=false 182for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH 183do 184 IFS=$as_save_IFS 185 test -z "$as_dir" && as_dir=. 186 as_found=: 187 case $as_dir in #( 188 /*) 189 for as_base in sh bash ksh sh5; do 190 # Try only shells that exist, to save several forks. 191 as_shell=$as_dir/$as_base 192 if { test -f "$as_shell" || test -f "$as_shell.exe"; } && 193 { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : 194 CONFIG_SHELL=$as_shell as_have_required=yes 195 if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : 196 break 2 197fi 198fi 199 done;; 200 esac 201 as_found=false 202done 203$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && 204 { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : 205 CONFIG_SHELL=$SHELL as_have_required=yes 206fi; } 207IFS=$as_save_IFS 208 209 210 if test "x$CONFIG_SHELL" != x; then : 211 export CONFIG_SHELL 212 # We cannot yet assume a decent shell, so we have to provide a 213# neutralization value for shells without unset; and this also 214# works around shells that cannot unset nonexistent variables. 215# Preserve -v and -x to the replacement shell. 216BASH_ENV=/dev/null 217ENV=/dev/null 218(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV 219case $- in # (((( 220 *v*x* | *x*v* ) as_opts=-vx ;; 221 *v* ) as_opts=-v ;; 222 *x* ) as_opts=-x ;; 223 * ) as_opts= ;; 224esac 225exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} 226# Admittedly, this is quite paranoid, since all the known shells bail 227# out after a failed `exec'. 228$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 229exit 255 230fi 231 232 if test x$as_have_required = xno; then : 233 $as_echo "$0: This script requires a shell more modern than all" 234 $as_echo "$0: the shells that I found on your system." 235 if test x${ZSH_VERSION+set} = xset ; then 236 $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" 237 $as_echo "$0: be upgraded to zsh 4.3.4 or later." 238 else 239 $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, 240$0: including any error possibly output before this 241$0: message. Then install a modern shell, or manually run 242$0: the script under such a shell if you do have one." 243 fi 244 exit 1 245fi 246fi 247fi 248SHELL=${CONFIG_SHELL-/bin/sh} 249export SHELL 250# Unset more variables known to interfere with behavior of common tools. 251CLICOLOR_FORCE= GREP_OPTIONS= 252unset CLICOLOR_FORCE GREP_OPTIONS 253 254## --------------------- ## 255## M4sh Shell Functions. ## 256## --------------------- ## 257# as_fn_unset VAR 258# --------------- 259# Portably unset VAR. 260as_fn_unset () 261{ 262 { eval $1=; unset $1;} 263} 264as_unset=as_fn_unset 265 266# as_fn_set_status STATUS 267# ----------------------- 268# Set $? to STATUS, without forking. 269as_fn_set_status () 270{ 271 return $1 272} # as_fn_set_status 273 274# as_fn_exit STATUS 275# ----------------- 276# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. 277as_fn_exit () 278{ 279 set +e 280 as_fn_set_status $1 281 exit $1 282} # as_fn_exit 283 284# as_fn_mkdir_p 285# ------------- 286# Create "$as_dir" as a directory, including parents if necessary. 287as_fn_mkdir_p () 288{ 289 290 case $as_dir in #( 291 -*) as_dir=./$as_dir;; 292 esac 293 test -d "$as_dir" || eval $as_mkdir_p || { 294 as_dirs= 295 while :; do 296 case $as_dir in #( 297 *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( 298 *) as_qdir=$as_dir;; 299 esac 300 as_dirs="'$as_qdir' $as_dirs" 301 as_dir=`$as_dirname -- "$as_dir" || 302$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ 303 X"$as_dir" : 'X\(//\)[^/]' \| \ 304 X"$as_dir" : 'X\(//\)$' \| \ 305 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || 306$as_echo X"$as_dir" | 307 sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ 308 s//\1/ 309 q 310 } 311 /^X\(\/\/\)[^/].*/{ 312 s//\1/ 313 q 314 } 315 /^X\(\/\/\)$/{ 316 s//\1/ 317 q 318 } 319 /^X\(\/\).*/{ 320 s//\1/ 321 q 322 } 323 s/.*/./; q'` 324 test -d "$as_dir" && break 325 done 326 test -z "$as_dirs" || eval "mkdir $as_dirs" 327 } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" 328 329 330} # as_fn_mkdir_p 331 332# as_fn_executable_p FILE 333# ----------------------- 334# Test if FILE is an executable regular file. 335as_fn_executable_p () 336{ 337 test -f "$1" && test -x "$1" 338} # as_fn_executable_p 339# as_fn_append VAR VALUE 340# ---------------------- 341# Append the text in VALUE to the end of the definition contained in VAR. Take 342# advantage of any shell optimizations that allow amortized linear growth over 343# repeated appends, instead of the typical quadratic growth present in naive 344# implementations. 345if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : 346 eval 'as_fn_append () 347 { 348 eval $1+=\$2 349 }' 350else 351 as_fn_append () 352 { 353 eval $1=\$$1\$2 354 } 355fi # as_fn_append 356 357# as_fn_arith ARG... 358# ------------------ 359# Perform arithmetic evaluation on the ARGs, and store the result in the 360# global $as_val. Take advantage of shells that can avoid forks. The arguments 361# must be portable across $(()) and expr. 362if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : 363 eval 'as_fn_arith () 364 { 365 as_val=$(( $* )) 366 }' 367else 368 as_fn_arith () 369 { 370 as_val=`expr "$@" || test $? -eq 1` 371 } 372fi # as_fn_arith 373 374 375# as_fn_error STATUS ERROR [LINENO LOG_FD] 376# ---------------------------------------- 377# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are 378# provided, also output the error to LOG_FD, referencing LINENO. Then exit the 379# script with STATUS, using 1 if that was 0. 380as_fn_error () 381{ 382 as_status=$1; test $as_status -eq 0 && as_status=1 383 if test "$4"; then 384 as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 385 $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 386 fi 387 $as_echo "$as_me: error: $2" >&2 388 as_fn_exit $as_status 389} # as_fn_error 390 391if expr a : '\(a\)' >/dev/null 2>&1 && 392 test "X`expr 00001 : '.*\(...\)'`" = X001; then 393 as_expr=expr 394else 395 as_expr=false 396fi 397 398if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then 399 as_basename=basename 400else 401 as_basename=false 402fi 403 404as_me=`$as_basename -- "$0" || 405$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ 406 X"$0" : 'X\(//\)$' \| \ 407 X"$0" : 'X\(/\)' \| . 2>/dev/null || 408$as_echo X/"$0" | 409 sed '/^.*\/\([^/][^/]*\)\/*$/{ 410 s//\1/ 411 q 412 } 413 /^X\/\(\/\/\)$/{ 414 s//\1/ 415 q 416 } 417 /^X\/\(\/\).*/{ 418 s//\1/ 419 q 420 } 421 s/.*/./; q'` 422 423if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then 424 as_dirname=dirname 425else 426 as_dirname=false 427fi 428 429# Avoid depending upon Character Ranges. 430as_cr_letters='abcdefghijklmnopqrstuvwxyz' 431as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' 432as_cr_Letters=$as_cr_letters$as_cr_LETTERS 433as_cr_digits='0123456789' 434as_cr_alnum=$as_cr_Letters$as_cr_digits 435 436 437 as_lineno_1=$LINENO as_lineno_1a=$LINENO 438 as_lineno_2=$LINENO as_lineno_2a=$LINENO 439 eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && 440 test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { 441 # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) 442 sed -n ' 443 p 444 /[$]LINENO/= 445 ' <$as_myself | 446 sed ' 447 s/[$]LINENO.*/&-/ 448 t lineno 449 b 450 :lineno 451 N 452 :loop 453 s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ 454 t loop 455 s/-\n.*// 456 ' >$as_me.lineno && 457 chmod +x "$as_me.lineno" || 458 { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } 459 460 # If we had to re-execute with $CONFIG_SHELL, we're ensured to have 461 # already done that, so ensure we don't try to do so again and fall 462 # in an infinite loop. This has already happened in practice. 463 _as_can_reexec=no; export _as_can_reexec 464 # Don't try to exec as it changes $[0], causing all sort of problems 465 # (the dirname of $[0] is not the place where we might find the 466 # original and so on. Autoconf is especially sensitive to this). 467 . "./$as_me.lineno" 468 # Exit status is that of the last command. 469 exit 470} 471 472ECHO_C= ECHO_N= ECHO_T= 473case `echo -n x` in #((((( 474-n*) 475 case `echo 'xy\c'` in 476 *c*) ECHO_T=' ';; # ECHO_T is single tab character. 477 xy) ECHO_C='\c';; 478 *) echo `echo ksh88 bug on AIX 6.1` > /dev/null 479 ECHO_T=' ';; 480 esac;; 481*) 482 ECHO_N='-n';; 483esac 484 485rm -f conf$$ conf$$.exe conf$$.file 486if test -d conf$$.dir; then 487 rm -f conf$$.dir/conf$$.file 488else 489 rm -f conf$$.dir 490 mkdir conf$$.dir 2>/dev/null 491fi 492if (echo >conf$$.file) 2>/dev/null; then 493 if ln -s conf$$.file conf$$ 2>/dev/null; then 494 as_ln_s='ln -s' 495 # ... but there are two gotchas: 496 # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. 497 # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. 498 # In both cases, we have to default to `cp -pR'. 499 ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || 500 as_ln_s='cp -pR' 501 elif ln conf$$.file conf$$ 2>/dev/null; then 502 as_ln_s=ln 503 else 504 as_ln_s='cp -pR' 505 fi 506else 507 as_ln_s='cp -pR' 508fi 509rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file 510rmdir conf$$.dir 2>/dev/null 511 512if mkdir -p . 2>/dev/null; then 513 as_mkdir_p='mkdir -p "$as_dir"' 514else 515 test -d ./-p && rmdir ./-p 516 as_mkdir_p=false 517fi 518 519as_test_x='test -x' 520as_executable_p=as_fn_executable_p 521 522# Sed expression to map a string onto a valid CPP name. 523as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" 524 525# Sed expression to map a string onto a valid variable name. 526as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" 527 528 529 530 531 532SHELL=${CONFIG_SHELL-/bin/sh} 533 534# How were we run? 535at_cli_args="$@" 536 537 538# Not all shells have the 'times' builtin; the subshell is needed to make 539# sure we discard the 'times: not found' message from the shell. 540at_times_p=false 541(times) >/dev/null 2>&1 && at_times_p=: 542 543# CLI Arguments to pass to the debugging scripts. 544at_debug_args= 545# -e sets to true 546at_errexit_p=false 547# Shall we be verbose? ':' means no, empty means yes. 548at_verbose=: 549at_quiet= 550# Running several jobs in parallel, 0 means as many as test groups. 551at_jobs=1 552at_traceon=: 553at_trace_echo=: 554at_check_filter_trace=: 555 556# Shall we keep the debug scripts? Must be `:' when the suite is 557# run by a debug script, so that the script doesn't remove itself. 558at_debug_p=false 559# Display help message? 560at_help_p=false 561# Display the version message? 562at_version_p=false 563# List test groups? 564at_list_p=false 565# --clean 566at_clean=false 567# Test groups to run 568at_groups= 569# Whether to rerun failed tests. 570at_recheck= 571# Whether a write failure occurred 572at_write_fail=0 573 574# The directory we run the suite in. Default to . if no -C option. 575at_dir=`pwd` 576# An absolute reference to this testsuite script. 577case $as_myself in 578 [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;; 579 * ) at_myself=$at_dir/$as_myself ;; 580esac 581# Whether -C is in effect. 582at_change_dir=false 583 584# Whether to enable colored test results. 585at_color=no 586# List of the tested programs. 587at_tested='wsp' 588# As many question marks as there are digits in the last test group number. 589# Used to normalize the test group numbers so that `ls' lists them in 590# numerical order. 591at_format='??' 592# Description of all the test groups. 593at_help_all="1;wordsplit.at:59;simple input;wordsplit wsp wordsplit000 wsp000 wsp-simple; 5942;wordsplit.at:68;quoted space;wordsplit wsp wordsplit001 wsp000 wsp-quoted; 5953;wordsplit.at:75;tab character;wordsplit wsp wordsplit002 wsp000 wsp-tab; 5964;wordsplit.at:84;octal and hex escapes;wordsplit wsp wordsplit003 wsp000 wsp-escape wsp-escape000; 5975;wordsplit.at:91;octal and hex escapes 2;wordsplit wsp wordsplit004 wsp000 wsp-escape wsp-escape001; 5986;wordsplit.at:100;escape representation;wordsplit wsp wordsplit005 wsp000 wsp-escape wsp-escape002; 5997;wordsplit.at:112;append;wordsplit wsp wordsplit006 wsp000 wsp-append; 6008;wordsplit.at:137;dooffs;wordsplit wsp wordsplit007 wsp000 wsp-doofs; 6019;wordsplit.at:150;variable substitutions: single var;wordsplit wsp wordsplit008 wsp000 wsp-var wsp-var000; 60210;wordsplit.at:161;variable substitutions: concatenated vars;wordsplit wsp wordsplit009 wsp000 wsp-var wsp-var001; 60311;wordsplit.at:173;variable substitutions: field splitting;wordsplit wsp wordsplit010 wsp000 wsp-var wsp-var002; 60412;wordsplit.at:185;variable substitutions: double-quoted variable;wordsplit wsp wordsplit011 wsp000 wsp-var wsp-var003; 60513;wordsplit.at:196;variable substitutions: single-quoted variable;wordsplit wsp wordsplit012 wsp000 wsp-var wsp-var004; 60614;wordsplit.at:207;undefined variables 1;wordsplit wsp wordsplit013 wsp000 wsp-var wsp-var005; 60715;wordsplit.at:218;undefined variables 2;wordsplit wsp wordsplit014 wsp000 wsp-var wsp-var006; 60816;wordsplit.at:230;warn about undefined variables;wordsplit wsp wordsplit015 wsp000 wsp-var wsp-var007; 60917;wordsplit.at:239;bail out on undefined variables;wordsplit wsp wordsplit016 wsp000 wsp-var wsp-var008; 61018;wordsplit.at:246;disable variable expansion;wordsplit wsp wordsplit017 wsp000 wsp-var wsp-var009; 61119;wordsplit.at:255;K/V environment;wordsplit wsp wordsplit018 wsp000 wsp-var wsp-var010 wsp-env-kv wsp-env_kv; 61220;wordsplit.at:266;nosplit with variable expansion;wordsplit wsp wordsplit019 wsp000 wsp-var wsp-var011 wsp-var-nosplit; 61321;wordsplit.at:275;nosplit without variable expansion;wordsplit wsp wordsplit020 wsp000 wsp-var wsp-var012; 61422;wordsplit.at:284;nosplit: empty expansion;wordsplit wsp wordsplit021 wsp000 wsp-var wsp-var013; 61523;wordsplit.at:293;default value;wordsplit wsp wordsplit022 wsp000 wsp-var wsp-var014; 61624;wordsplit.at:300;default value (defined);wordsplit wsp wordsplit023 wsp000 wsp-var wsp-var015; 61725;wordsplit.at:309;default value (:- null);wordsplit wsp wordsplit024 wsp000 wsp-var wsp-var016; 61826;wordsplit.at:318;default value (- null);wordsplit wsp wordsplit025 wsp000 wsp-var wsp-var017; 61927;wordsplit.at:326;default value (- null, unset);wordsplit wsp wordsplit026 wsp000 wsp-var wsp-var018; 62028;wordsplit.at:333;assign default values;wordsplit wsp wordsplit027 wsp000 wsp-var wsp-var019; 62129;wordsplit.at:344;default error message (var defined);wordsplit wsp wordsplit028 wsp000 wsp-var wsp-var020; 62230;wordsplit.at:355;default error message;wordsplit wsp wordsplit029 wsp000 wsp-var wsp-var021; 62331;wordsplit.at:363;custom error message (defined);wordsplit wsp wordsplit030 wsp000 wsp-var wsp-var022 wsp-custom-err wsp-custom-err00; 62432;wordsplit.at:374;custom error message;wordsplit wsp wordsplit031 wsp000 wsp-var wsp-var023 wsp-custom-err wsp-custom-err01; 62533;wordsplit.at:384;alternate value (defined);wordsplit wsp wordsplit032 wsp000 wsp-var wsp-var024 wsp-alt wsp-alt00; 62634;wordsplit.at:395;alternate value;wordsplit wsp wordsplit033 wsp000 wsp-var wsp-var025 wsp-alt wsp-alt01; 62735;wordsplit.at:405;getvar;wordsplit wsp wordsplit034 wsp000 wsp-var wsp-var026 wsp-getvar; 62836;wordsplit.at:419;getvar and env;wordsplit wsp wordsplit035 wsp000 wsp-var wsp-var027 wsp-getvar; 62937;wordsplit.at:435;getvar, alternate value;wordsplit wsp wordsplit036 wsp000 wsp-var wsp-var028 wsp-getvar; 63038;wordsplit.at:446;ignore quotes;wordsplit wsp wordsplit037 wsp000 wsp-ignore-quotes; 63139;wordsplit.at:456;custom delimiters (squeeze);wordsplit wsp wordsplit038 wsp000 wsp-delim wsp-delim000; 63240;wordsplit.at:468;custom delimiters (no squeeze);wordsplit wsp wordsplit039 wsp000 wsp-delim wsp-delim001; 63341;wordsplit.at:481;custom, with returned delimiters;wordsplit wsp wordsplit040 wsp000 wsp-delim wsp-delim002; 63442;wordsplit.at:497;custom, with returned & squeezed delimiters;wordsplit wsp wordsplit041 wsp000 wsp-delim wsp-delim003; 63543;wordsplit.at:516;sed expressions;wordsplit wsp wordsplit042 wsp000 wsp-sed wsp-sed000; 63644;wordsplit.at:527;C escapes on;wordsplit wsp wordsplit043 wsp000 wcp-c-escape; 63745;wordsplit.at:537;C escapes off;wordsplit wsp wordsplit044 wsp000 wcp-c-escape-off; 63846;wordsplit.at:547;ws elimination;wordsplit wsp wordsplit045 wsp000 wsp-ws-elim; 63947;wordsplit.at:557;ws elimination + return delim;wordsplit wsp wordsplit046 wsp000 wsp-ws-elim-ret; 64048;wordsplit.at:571;empty quotes;wordsplit wsp wordsplit047 wsp000 wsp-empty-quotes; 64149;wordsplit.at:578;delimiter following empty quotes;wordsplit wsp wordsplit048 wsp000; 64250;wordsplit.at:588;suppress ws trimming within quotes;wordsplit wsp wordsplit049 wsp000; 64351;wordsplit.at:601;unescape;wordsplit wsp wordsplit050 wsp000 wsp-unescape wsp-unescape-simple; 64452;wordsplit.at:612;unescape: word/quote;wordsplit wsp wordsplit051 wsp000 wsp-unescape wsp-unescape-word; 64553;wordsplit.at:626;dquote;wordsplit wsp wordsplit052 wsp000; 64654;wordsplit.at:636;squote;wordsplit wsp wordsplit053 wsp000; 64755;wordsplit.at:648;incremental;wordsplit wsp wordsplit054 wsp000 wsp-incr wsp-incr000; 64856;wordsplit.at:666;incremental append;wordsplit wsp wordsplit055 wsp000 wsp-incr wsp-incr001; 64957;wordsplit.at:687;incremental ws;wordsplit wsp wordsplit056 wsp000 wsp-incr wsp-incr002; 65058;wordsplit.at:706;incremental nosplit;wordsplit wsp wordsplit057 wsp000 wsp-incr wsp-incr003; 65159;wordsplit.at:716;simple command substitution;wordsplit wsp wordsplit058 wsp000 wsp-incr wsp-incr004; 65260;wordsplit.at:726;quoted command substitution;wordsplit wsp wordsplit059 wsp000 wsp-incr wsp-incr005; 65361;wordsplit.at:735;coalesced command substitution;wordsplit wsp wordsplit060 wsp000 wsp-incr wsp-incr006; 65462;wordsplit.at:743;quoted coalesced command substitution;wordsplit wsp wordsplit061 wsp000 wsp-incr wsp-incr007; 65563;wordsplit.at:750;variable and command substitution;wordsplit wsp wordsplit062 wsp000 wsp-incr wsp-incr008; 65664;wordsplit.at:761;variable expansion and command substitution in quotes;wordsplit wsp wordsplit063 wsp000 wsp-incr wsp-incr009; 65765;wordsplit.at:768;nested commands;wordsplit wsp wordsplit064 wsp000 wsp-incr wsp-incr010; 65866;wordsplit.at:779;pathname expansion;wordsplit wsp wsp-path wsp-path-1; 65967;wordsplit.at:801;pathname expansion: no match;wordsplit wsp wsp-path wsp-path-2; 66068;wordsplit.at:821;pathname expansion: nullglob;wordsplit wsp wsp-path wsp-path-3; 66169;wordsplit.at:840;pathname expansion: failglob;wordsplit wsp wsp-path wsp-path-4; 66270;wordsplit.at:857;append;wordsplit wsp wordsplit065 wsp000 wsp-incr wsp-incr011; 66371;wordsplit.at:869;append + dooffs + env;wordsplit wsp wordsplit066 wsp000 wsp-incr wsp-incr012; 66472;wordsplit.at:886;maxwords;wordsplit wsp wordsplit067 wsp000 wsp-incr wsp-incr013; 66573;wordsplit.at:896;maxwords return_delims;wordsplit wsp wordsplit068 wsp000 wsp-incr wsp-incr014; 66674;wordsplit.at:911;maxwords return_delims -squeeze_delims;wordsplit wsp wordsplit069 wsp000 wsp-incr wsp-incr015; 66775;wordsplit.at:926;maxwords incremental;wordsplit wsp wordsplit070 wsp000 wsp-incr wsp-incr016; 66876;wordsplit.at:945;variable nosplit;wordsplit wsp wordsplit071 wsp000 wsp-incr wsp-incr017; 66977;wordsplit.at:954;command nosplit;wordsplit wsp wordsplit072 wsp000 wsp-incr wsp-incr018; 67078;wordsplit.at:963;positional parameters;wordsplit wsp wordsplit073 wsp000 wsp-incr wsp-incr019; 67179;wordsplit.at:976;\$* and \$@;wordsplit wsp wordsplit074 wsp000 wsp-incr wsp-incr020; 67280;wordsplit.at:1001;\$* and \$@ in nosplit mode;wordsplit wsp wordsplit075 wsp000 wsp-incr wsp-incr021; 67381;wordsplit.at:1013;\$* and \$@ in nosplit mode with delimiter;wordsplit wsp wordsplit076 wsp000 wsp-incr wsp-incr022; 674" 675# List of the all the test groups. 676at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` 677 678# at_fn_validate_ranges NAME... 679# ----------------------------- 680# Validate and normalize the test group number contained in each variable 681# NAME. Leading zeroes are treated as decimal. 682at_fn_validate_ranges () 683{ 684 for at_grp 685 do 686 eval at_value=\$$at_grp 687 if test $at_value -lt 1 || test $at_value -gt 81; then 688 $as_echo "invalid test group: $at_value" >&2 689 exit 1 690 fi 691 case $at_value in 692 0*) # We want to treat leading 0 as decimal, like expr and test, but 693 # AS_VAR_ARITH treats it as octal if it uses $(( )). 694 # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the 695 # expr fork, but it is not worth the effort to determine if the 696 # shell supports XSI when the user can just avoid leading 0. 697 eval $at_grp='`expr $at_value + 0`' ;; 698 esac 699 done 700} 701 702at_prev= 703for at_option 704do 705 # If the previous option needs an argument, assign it. 706 if test -n "$at_prev"; then 707 at_option=$at_prev=$at_option 708 at_prev= 709 fi 710 711 case $at_option in 712 *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;; 713 *) at_optarg= ;; 714 esac 715 716 # Accept the important Cygnus configure options, so we can diagnose typos. 717 718 case $at_option in 719 --help | -h ) 720 at_help_p=: 721 ;; 722 723 --list | -l ) 724 at_list_p=: 725 ;; 726 727 --version | -V ) 728 at_version_p=: 729 ;; 730 731 --clean | -c ) 732 at_clean=: 733 ;; 734 735 --color ) 736 at_color=always 737 ;; 738 --color=* ) 739 case $at_optarg in 740 no | never | none) at_color=never ;; 741 auto | tty | if-tty) at_color=auto ;; 742 always | yes | force) at_color=always ;; 743 *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'` 744 as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;; 745 esac 746 ;; 747 748 --debug | -d ) 749 at_debug_p=: 750 ;; 751 752 --errexit | -e ) 753 at_debug_p=: 754 at_errexit_p=: 755 ;; 756 757 --verbose | -v ) 758 at_verbose=; at_quiet=: 759 ;; 760 761 --trace | -x ) 762 at_traceon='set -x' 763 at_trace_echo=echo 764 at_check_filter_trace=at_fn_filter_trace 765 ;; 766 767 [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) 768 at_fn_validate_ranges at_option 769 as_fn_append at_groups "$at_option$as_nl" 770 ;; 771 772 # Ranges 773 [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-) 774 at_range_start=`echo $at_option |tr -d X-` 775 at_fn_validate_ranges at_range_start 776 at_range=`$as_echo "$at_groups_all" | \ 777 sed -ne '/^'$at_range_start'$/,$p'` 778 as_fn_append at_groups "$at_range$as_nl" 779 ;; 780 781 -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]) 782 at_range_end=`echo $at_option |tr -d X-` 783 at_fn_validate_ranges at_range_end 784 at_range=`$as_echo "$at_groups_all" | \ 785 sed -ne '1,/^'$at_range_end'$/p'` 786 as_fn_append at_groups "$at_range$as_nl" 787 ;; 788 789 [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \ 790 [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \ 791 [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \ 792 [0-9][0-9][0-9]-[0-9][0-9][0-9] | \ 793 [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \ 794 [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ) 795 at_range_start=`expr $at_option : '\(.*\)-'` 796 at_range_end=`expr $at_option : '.*-\(.*\)'` 797 if test $at_range_start -gt $at_range_end; then 798 at_tmp=$at_range_end 799 at_range_end=$at_range_start 800 at_range_start=$at_tmp 801 fi 802 at_fn_validate_ranges at_range_start at_range_end 803 at_range=`$as_echo "$at_groups_all" | \ 804 sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'` 805 as_fn_append at_groups "$at_range$as_nl" 806 ;; 807 808 # Directory selection. 809 --directory | -C ) 810 at_prev=--directory 811 ;; 812 --directory=* ) 813 at_change_dir=: 814 at_dir=$at_optarg 815 if test x- = "x$at_dir" ; then 816 at_dir=./- 817 fi 818 ;; 819 820 # Parallel execution. 821 --jobs | -j ) 822 at_jobs=0 823 ;; 824 --jobs=* | -j[0-9]* ) 825 if test -n "$at_optarg"; then 826 at_jobs=$at_optarg 827 else 828 at_jobs=`expr X$at_option : 'X-j\(.*\)'` 829 fi 830 case $at_jobs in *[!0-9]*) 831 at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'` 832 as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;; 833 esac 834 ;; 835 836 # Keywords. 837 --keywords | -k ) 838 at_prev=--keywords 839 ;; 840 --keywords=* ) 841 at_groups_selected=$at_help_all 842 at_save_IFS=$IFS 843 IFS=, 844 set X $at_optarg 845 shift 846 IFS=$at_save_IFS 847 for at_keyword 848 do 849 at_invert= 850 case $at_keyword in 851 '!'*) 852 at_invert="-v" 853 at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'` 854 ;; 855 esac 856 # It is on purpose that we match the test group titles too. 857 at_groups_selected=`$as_echo "$at_groups_selected" | 858 grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` 859 done 860 # Smash the keywords. 861 at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'` 862 as_fn_append at_groups "$at_groups_selected$as_nl" 863 ;; 864 --recheck) 865 at_recheck=: 866 ;; 867 868 *=*) 869 at_envvar=`expr "x$at_option" : 'x\([^=]*\)='` 870 # Reject names that are not valid shell variable names. 871 case $at_envvar in 872 '' | [0-9]* | *[!_$as_cr_alnum]* ) 873 as_fn_error $? "invalid variable name: \`$at_envvar'" ;; 874 esac 875 at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` 876 # Export now, but save eval for later and for debug scripts. 877 export $at_envvar 878 as_fn_append at_debug_args " $at_envvar='$at_value'" 879 ;; 880 881 *) $as_echo "$as_me: invalid option: $at_option" >&2 882 $as_echo "Try \`$0 --help' for more information." >&2 883 exit 1 884 ;; 885 esac 886done 887 888# Verify our last option didn't require an argument 889if test -n "$at_prev"; then : 890 as_fn_error $? "\`$at_prev' requires an argument" 891fi 892 893# The file containing the suite. 894at_suite_log=$at_dir/$as_me.log 895 896# Selected test groups. 897if test -z "$at_groups$at_recheck"; then 898 at_groups=$at_groups_all 899else 900 if test -n "$at_recheck" && test -r "$at_suite_log"; then 901 at_oldfails=`sed -n ' 902 /^Failed tests:$/,/^Skipped tests:$/{ 903 s/^[ ]*\([1-9][0-9]*\):.*/\1/p 904 } 905 /^Unexpected passes:$/,/^## Detailed failed tests/{ 906 s/^[ ]*\([1-9][0-9]*\):.*/\1/p 907 } 908 /^## Detailed failed tests/q 909 ' "$at_suite_log"` 910 as_fn_append at_groups "$at_oldfails$as_nl" 911 fi 912 # Sort the tests, removing duplicates. 913 at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'` 914fi 915 916if test x"$at_color" = xalways \ 917 || { test x"$at_color" = xauto && test -t 1; }; then 918 at_red=`printf '\033[0;31m'` 919 at_grn=`printf '\033[0;32m'` 920 at_lgn=`printf '\033[1;32m'` 921 at_blu=`printf '\033[1;34m'` 922 at_std=`printf '\033[m'` 923else 924 at_red= at_grn= at_lgn= at_blu= at_std= 925fi 926 927# Help message. 928if $at_help_p; then 929 cat <<_ATEOF || at_write_fail=1 930Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS] 931 932Run all the tests, or the selected TESTS, given by numeric ranges, and 933save a detailed log file. Upon failure, create debugging scripts. 934 935Do not change environment variables directly. Instead, set them via 936command line arguments. Set \`AUTOTEST_PATH' to select the executables 937to exercise. Each relative directory is expanded as build and source 938directories relative to the top level of this distribution. 939E.g., from within the build directory /tmp/foo-1.0, invoking this: 940 941 $ $0 AUTOTEST_PATH=bin 942 943is equivalent to the following, assuming the source directory is /src/foo-1.0: 944 945 PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0 946_ATEOF 947cat <<_ATEOF || at_write_fail=1 948 949Operation modes: 950 -h, --help print the help message, then exit 951 -V, --version print version number, then exit 952 -c, --clean remove all the files this test suite might create and exit 953 -l, --list describes all the tests, or the selected TESTS 954_ATEOF 955cat <<_ATEOF || at_write_fail=1 956 957Execution tuning: 958 -C, --directory=DIR 959 change to directory DIR before starting 960 --color[=never|auto|always] 961 enable colored test results on terminal, or always 962 -j, --jobs[=N] 963 Allow N jobs at once; infinite jobs with no arg (default 1) 964 -k, --keywords=KEYWORDS 965 select the tests matching all the comma-separated KEYWORDS 966 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD 967 --recheck select all tests that failed or passed unexpectedly last time 968 -e, --errexit abort as soon as a test fails; implies --debug 969 -v, --verbose force more detailed output 970 default for debugging scripts 971 -d, --debug inhibit clean up and top-level logging 972 default for debugging scripts 973 -x, --trace enable tests shell tracing 974_ATEOF 975cat <<_ATEOF || at_write_fail=1 976 977Report bugs to <bug-direvent@gnu.org.ua>. 978_ATEOF 979 exit $at_write_fail 980fi 981 982# List of tests. 983if $at_list_p; then 984 cat <<_ATEOF || at_write_fail=1 985wordsplit v1.0-6-gd36275f test suite test groups: 986 987 NUM: FILE-NAME:LINE TEST-GROUP-NAME 988 KEYWORDS 989 990_ATEOF 991 # Pass an empty line as separator between selected groups and help. 992 $as_echo "$at_groups$as_nl$as_nl$at_help_all" | 993 awk 'NF == 1 && FS != ";" { 994 selected[$ 1] = 1 995 next 996 } 997 /^$/ { FS = ";" } 998 NF > 0 { 999 if (selected[$ 1]) { 1000 printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3 1001 if ($ 4) { 1002 lmax = 79 1003 indent = " " 1004 line = indent 1005 len = length (line) 1006 n = split ($ 4, a, " ") 1007 for (i = 1; i <= n; i++) { 1008 l = length (a[i]) + 1 1009 if (i > 1 && len + l > lmax) { 1010 print line 1011 line = indent " " a[i] 1012 len = length (line) 1013 } else { 1014 line = line " " a[i] 1015 len += l 1016 } 1017 } 1018 if (n) 1019 print line 1020 } 1021 } 1022 }' || at_write_fail=1 1023 exit $at_write_fail 1024fi 1025if $at_version_p; then 1026 $as_echo "$as_me (wordsplit v1.0-6-gd36275f)" && 1027 cat <<\_ATEOF || at_write_fail=1 1028 1029Copyright (C) 2012 Free Software Foundation, Inc. 1030This test suite is free software; the Free Software Foundation gives 1031unlimited permission to copy, distribute and modify it. 1032_ATEOF 1033 exit $at_write_fail 1034fi 1035 1036# Should we print banners? Yes if more than one test is run. 1037case $at_groups in #( 1038 *$as_nl* ) 1039 at_print_banners=: ;; #( 1040 * ) at_print_banners=false ;; 1041esac 1042# Text for banner N, set to a single space once printed. 1043 1044# Take any -C into account. 1045if $at_change_dir ; then 1046 test x != "x$at_dir" && cd "$at_dir" \ 1047 || as_fn_error $? "unable to change directory" 1048 at_dir=`pwd` 1049fi 1050 1051# Load the config files for any default variable assignments. 1052for at_file in atconfig atlocal 1053do 1054 test -r $at_file || continue 1055 . ./$at_file || as_fn_error $? "invalid content: $at_file" 1056done 1057 1058# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: 1059: "${at_top_build_prefix=$at_top_builddir}" 1060 1061# Perform any assignments requested during argument parsing. 1062eval "$at_debug_args" 1063 1064# atconfig delivers names relative to the directory the test suite is 1065# in, but the groups themselves are run in testsuite-dir/group-dir. 1066if test -n "$at_top_srcdir"; then 1067 builddir=../.. 1068 for at_dir_var in srcdir top_srcdir top_build_prefix 1069 do 1070 eval at_val=\$at_$at_dir_var 1071 case $at_val in 1072 [\\/$]* | ?:[\\/]* ) at_prefix= ;; 1073 *) at_prefix=../../ ;; 1074 esac 1075 eval "$at_dir_var=\$at_prefix\$at_val" 1076 done 1077fi 1078 1079## -------------------- ## 1080## Directory structure. ## 1081## -------------------- ## 1082 1083# This is the set of directories and files used by this script 1084# (non-literals are capitalized): 1085# 1086# TESTSUITE - the testsuite 1087# TESTSUITE.log - summarizes the complete testsuite run 1088# TESTSUITE.dir/ - created during a run, remains after -d or failed test 1089# + at-groups/ - during a run: status of all groups in run 1090# | + NNN/ - during a run: meta-data about test group NNN 1091# | | + check-line - location (source file and line) of current AT_CHECK 1092# | | + status - exit status of current AT_CHECK 1093# | | + stdout - stdout of current AT_CHECK 1094# | | + stder1 - stderr, including trace 1095# | | + stderr - stderr, with trace filtered out 1096# | | + test-source - portion of testsuite that defines group 1097# | | + times - timestamps for computing duration 1098# | | + pass - created if group passed 1099# | | + xpass - created if group xpassed 1100# | | + fail - created if group failed 1101# | | + xfail - created if group xfailed 1102# | | + skip - created if group skipped 1103# + at-stop - during a run: end the run if this file exists 1104# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction 1105# + 0..NNN/ - created for each group NNN, remains after -d or failed test 1106# | + TESTSUITE.log - summarizes the group results 1107# | + ... - files created during the group 1108 1109# The directory the whole suite works in. 1110# Should be absolute to let the user `cd' at will. 1111at_suite_dir=$at_dir/$as_me.dir 1112# The file containing the suite ($at_dir might have changed since earlier). 1113at_suite_log=$at_dir/$as_me.log 1114# The directory containing helper files per test group. 1115at_helper_dir=$at_suite_dir/at-groups 1116# Stop file: if it exists, do not start new jobs. 1117at_stop_file=$at_suite_dir/at-stop 1118# The fifo used for the job dispatcher. 1119at_job_fifo=$at_suite_dir/at-job-fifo 1120 1121if $at_clean; then 1122 test -d "$at_suite_dir" && 1123 find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; 1124 rm -f -r "$at_suite_dir" "$at_suite_log" 1125 exit $? 1126fi 1127 1128# Don't take risks: use only absolute directories in PATH. 1129# 1130# For stand-alone test suites (ie. atconfig was not found), 1131# AUTOTEST_PATH is relative to `.'. 1132# 1133# For embedded test suites, AUTOTEST_PATH is relative to the top level 1134# of the package. Then expand it into build/src parts, since users 1135# may create executables in both places. 1136AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"` 1137at_path= 1138as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1139for as_dir in $AUTOTEST_PATH $PATH 1140do 1141 IFS=$as_save_IFS 1142 test -z "$as_dir" && as_dir=. 1143 test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR 1144case $as_dir in 1145 [\\/]* | ?:[\\/]* ) 1146 as_fn_append at_path "$as_dir" 1147 ;; 1148 * ) 1149 if test -z "$at_top_build_prefix"; then 1150 # Stand-alone test suite. 1151 as_fn_append at_path "$as_dir" 1152 else 1153 # Embedded test suite. 1154 as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR" 1155 as_fn_append at_path "$at_top_srcdir/$as_dir" 1156 fi 1157 ;; 1158esac 1159 done 1160IFS=$as_save_IFS 1161 1162 1163# Now build and simplify PATH. 1164# 1165# There might be directories that don't exist, but don't redirect 1166# builtins' (eg., cd) stderr directly: Ultrix's sh hates that. 1167at_new_path= 1168as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1169for as_dir in $at_path 1170do 1171 IFS=$as_save_IFS 1172 test -z "$as_dir" && as_dir=. 1173 test -d "$as_dir" || continue 1174case $as_dir in 1175 [\\/]* | ?:[\\/]* ) ;; 1176 * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; 1177esac 1178case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in 1179 *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;; 1180 $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;; 1181 *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;; 1182esac 1183 done 1184IFS=$as_save_IFS 1185 1186PATH=$at_new_path 1187export PATH 1188 1189# Setting up the FDs. 1190 1191 1192 1193# 5 is the log file. Not to be overwritten if `-d'. 1194if $at_debug_p; then 1195 at_suite_log=/dev/null 1196else 1197 : >"$at_suite_log" 1198fi 1199exec 5>>"$at_suite_log" 1200 1201# Banners and logs. 1202$as_echo "## ------------------------------------- ## 1203## wordsplit v1.0-6-gd36275f test suite. ## 1204## ------------------------------------- ##" 1205{ 1206 $as_echo "## ------------------------------------- ## 1207## wordsplit v1.0-6-gd36275f test suite. ## 1208## ------------------------------------- ##" 1209 echo 1210 1211 $as_echo "$as_me: command line was:" 1212 $as_echo " \$ $0 $at_cli_args" 1213 echo 1214 1215 # If ChangeLog exists, list a few lines in case it might help determining 1216 # the exact version. 1217 if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then 1218 $as_echo "## ---------- ## 1219## ChangeLog. ## 1220## ---------- ##" 1221 echo 1222 sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog" 1223 echo 1224 fi 1225 1226 { 1227cat <<_ASUNAME 1228## --------- ## 1229## Platform. ## 1230## --------- ## 1231 1232hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` 1233uname -m = `(uname -m) 2>/dev/null || echo unknown` 1234uname -r = `(uname -r) 2>/dev/null || echo unknown` 1235uname -s = `(uname -s) 2>/dev/null || echo unknown` 1236uname -v = `(uname -v) 2>/dev/null || echo unknown` 1237 1238/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` 1239/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` 1240 1241/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` 1242/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` 1243/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` 1244/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` 1245/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` 1246/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` 1247/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` 1248 1249_ASUNAME 1250 1251as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1252for as_dir in $PATH 1253do 1254 IFS=$as_save_IFS 1255 test -z "$as_dir" && as_dir=. 1256 $as_echo "PATH: $as_dir" 1257 done 1258IFS=$as_save_IFS 1259 1260} 1261 echo 1262 1263 # Contents of the config files. 1264 for at_file in atconfig atlocal 1265 do 1266 test -r $at_file || continue 1267 $as_echo "$as_me: $at_file:" 1268 sed 's/^/| /' $at_file 1269 echo 1270 done 1271} >&5 1272 1273 1274## ------------------------- ## 1275## Autotest shell functions. ## 1276## ------------------------- ## 1277 1278# at_fn_banner NUMBER 1279# ------------------- 1280# Output banner NUMBER, provided the testsuite is running multiple groups and 1281# this particular banner has not yet been printed. 1282at_fn_banner () 1283{ 1284 $at_print_banners || return 0 1285 eval at_banner_text=\$at_banner_text_$1 1286 test "x$at_banner_text" = "x " && return 0 1287 eval "at_banner_text_$1=\" \"" 1288 if test -z "$at_banner_text"; then 1289 $at_first || echo 1290 else 1291 $as_echo "$as_nl$at_banner_text$as_nl" 1292 fi 1293} # at_fn_banner 1294 1295# at_fn_check_prepare_notrace REASON LINE 1296# --------------------------------------- 1297# Perform AT_CHECK preparations for the command at LINE for an untraceable 1298# command; REASON is the reason for disabling tracing. 1299at_fn_check_prepare_notrace () 1300{ 1301 $at_trace_echo "Not enabling shell tracing (command contains $1)" 1302 $as_echo "$2" >"$at_check_line_file" 1303 at_check_trace=: at_check_filter=: 1304 : >"$at_stdout"; : >"$at_stderr" 1305} 1306 1307# at_fn_check_prepare_trace LINE 1308# ------------------------------ 1309# Perform AT_CHECK preparations for the command at LINE for a traceable 1310# command. 1311at_fn_check_prepare_trace () 1312{ 1313 $as_echo "$1" >"$at_check_line_file" 1314 at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace 1315 : >"$at_stdout"; : >"$at_stderr" 1316} 1317 1318# at_fn_check_prepare_dynamic COMMAND LINE 1319# ---------------------------------------- 1320# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate 1321# preparation function. 1322at_fn_check_prepare_dynamic () 1323{ 1324 case $1 in 1325 *$as_nl*) 1326 at_fn_check_prepare_notrace 'an embedded newline' "$2" ;; 1327 *) 1328 at_fn_check_prepare_trace "$2" ;; 1329 esac 1330} 1331 1332# at_fn_filter_trace 1333# ------------------ 1334# Remove the lines in the file "$at_stderr" generated by "set -x" and print 1335# them to stderr. 1336at_fn_filter_trace () 1337{ 1338 mv "$at_stderr" "$at_stder1" 1339 grep '^ *+' "$at_stder1" >&2 1340 grep -v '^ *+' "$at_stder1" >"$at_stderr" 1341} 1342 1343# at_fn_log_failure FILE-LIST 1344# --------------------------- 1345# Copy the files in the list on stdout with a "> " prefix, and exit the shell 1346# with a failure exit code. 1347at_fn_log_failure () 1348{ 1349 for file 1350 do $as_echo "$file:"; sed 's/^/> /' "$file"; done 1351 echo 1 > "$at_status_file" 1352 exit 1 1353} 1354 1355# at_fn_check_skip EXIT-CODE LINE 1356# ------------------------------- 1357# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit 1358# the test group subshell with that same exit code. Use LINE in any report 1359# about test failure. 1360at_fn_check_skip () 1361{ 1362 case $1 in 1363 99) echo 99 > "$at_status_file"; at_failed=: 1364 $as_echo "$2: hard failure"; exit 99;; 1365 77) echo 77 > "$at_status_file"; exit 77;; 1366 esac 1367} 1368 1369# at_fn_check_status EXPECTED EXIT-CODE LINE 1370# ------------------------------------------ 1371# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing. 1372# Otherwise, if it is 77 or 99, exit the test group subshell with that same 1373# exit code; if it is anything else print an error message referring to LINE, 1374# and fail the test. 1375at_fn_check_status () 1376{ 1377 case $2 in 1378 $1 ) ;; 1379 77) echo 77 > "$at_status_file"; exit 77;; 1380 99) echo 99 > "$at_status_file"; at_failed=: 1381 $as_echo "$3: hard failure"; exit 99;; 1382 *) $as_echo "$3: exit code was $2, expected $1" 1383 at_failed=:;; 1384 esac 1385} 1386 1387# at_fn_diff_devnull FILE 1388# ----------------------- 1389# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff 1390# invocations. 1391at_fn_diff_devnull () 1392{ 1393 test -s "$1" || return 0 1394 $at_diff "$at_devnull" "$1" 1395} 1396 1397# at_fn_test NUMBER 1398# ----------------- 1399# Parse out test NUMBER from the tail of this file. 1400at_fn_test () 1401{ 1402 eval at_sed=\$at_sed$1 1403 sed "$at_sed" "$at_myself" > "$at_test_source" 1404} 1405 1406# at_fn_create_debugging_script 1407# ----------------------------- 1408# Create the debugging script $at_group_dir/run which will reproduce the 1409# current test group. 1410at_fn_create_debugging_script () 1411{ 1412 { 1413 echo "#! /bin/sh" && 1414 echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' && 1415 $as_echo "cd '$at_dir'" && 1416 $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" && 1417 echo 'exit 1' 1418 } >"$at_group_dir/run" && 1419 chmod +x "$at_group_dir/run" 1420} 1421 1422## -------------------------------- ## 1423## End of autotest shell functions. ## 1424## -------------------------------- ## 1425{ 1426 $as_echo "## ---------------- ## 1427## Tested programs. ## 1428## ---------------- ##" 1429 echo 1430} >&5 1431 1432# Report what programs are being tested. 1433for at_program in : $at_tested 1434do 1435 test "$at_program" = : && continue 1436 case $at_program in 1437 [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;; 1438 * ) 1439 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 1440for as_dir in $PATH 1441do 1442 IFS=$as_save_IFS 1443 test -z "$as_dir" && as_dir=. 1444 test -f "$as_dir/$at_program" && break 1445 done 1446IFS=$as_save_IFS 1447 1448 at_program_=$as_dir/$at_program ;; 1449 esac 1450 if test -f "$at_program_"; then 1451 { 1452 $as_echo "$at_srcdir/wordsplit.at:17: $at_program_ --version" 1453 "$at_program_" --version </dev/null 1454 echo 1455 } >&5 2>&1 1456 else 1457 as_fn_error $? "cannot find $at_program" "$LINENO" 5 1458 fi 1459done 1460 1461{ 1462 $as_echo "## ------------------ ## 1463## Running the tests. ## 1464## ------------------ ##" 1465} >&5 1466 1467at_start_date=`date` 1468at_start_time=`date +%s 2>/dev/null` 1469$as_echo "$as_me: starting at: $at_start_date" >&5 1470 1471# Create the master directory if it doesn't already exist. 1472as_dir="$at_suite_dir"; as_fn_mkdir_p || 1473 as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5 1474 1475# Can we diff with `/dev/null'? DU 5.0 refuses. 1476if diff /dev/null /dev/null >/dev/null 2>&1; then 1477 at_devnull=/dev/null 1478else 1479 at_devnull=$at_suite_dir/devnull 1480 >"$at_devnull" 1481fi 1482 1483# Use `diff -u' when possible. 1484if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff" 1485then 1486 at_diff='diff -u' 1487else 1488 at_diff=diff 1489fi 1490 1491# Get the last needed group. 1492for at_group in : $at_groups; do :; done 1493 1494# Extract the start and end lines of each test group at the tail 1495# of this file 1496awk ' 1497BEGIN { FS="" } 1498/^#AT_START_/ { 1499 start = NR 1500} 1501/^#AT_STOP_/ { 1502 test = substr ($ 0, 10) 1503 print "at_sed" test "=\"1," start "d;" (NR-1) "q\"" 1504 if (test == "'"$at_group"'") exit 1505}' "$at_myself" > "$at_suite_dir/at-source-lines" && 1506. "$at_suite_dir/at-source-lines" || 1507 as_fn_error $? "cannot create test line number cache" "$LINENO" 5 1508rm -f "$at_suite_dir/at-source-lines" 1509 1510# Set number of jobs for `-j'; avoid more jobs than test groups. 1511set X $at_groups; shift; at_max_jobs=$# 1512if test $at_max_jobs -eq 0; then 1513 at_jobs=1 1514fi 1515if test $at_jobs -ne 1 && 1516 { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then 1517 at_jobs=$at_max_jobs 1518fi 1519 1520# If parallel mode, don't output banners, don't split summary lines. 1521if test $at_jobs -ne 1; then 1522 at_print_banners=false 1523 at_quiet=: 1524fi 1525 1526# Set up helper dirs. 1527rm -rf "$at_helper_dir" && 1528mkdir "$at_helper_dir" && 1529cd "$at_helper_dir" && 1530{ test -z "$at_groups" || mkdir $at_groups; } || 1531as_fn_error $? "testsuite directory setup failed" "$LINENO" 5 1532 1533# Functions for running a test group. We leave the actual 1534# test group execution outside of a shell function in order 1535# to avoid hitting zsh 4.x exit status bugs. 1536 1537# at_fn_group_prepare 1538# ------------------- 1539# Prepare for running a test group. 1540at_fn_group_prepare () 1541{ 1542 # The directory for additional per-group helper files. 1543 at_job_dir=$at_helper_dir/$at_group 1544 # The file containing the location of the last AT_CHECK. 1545 at_check_line_file=$at_job_dir/check-line 1546 # The file containing the exit status of the last command. 1547 at_status_file=$at_job_dir/status 1548 # The files containing the output of the tested commands. 1549 at_stdout=$at_job_dir/stdout 1550 at_stder1=$at_job_dir/stder1 1551 at_stderr=$at_job_dir/stderr 1552 # The file containing the code for a test group. 1553 at_test_source=$at_job_dir/test-source 1554 # The file containing dates. 1555 at_times_file=$at_job_dir/times 1556 1557 # Be sure to come back to the top test directory. 1558 cd "$at_suite_dir" 1559 1560 # Clearly separate the test groups when verbose. 1561 $at_first || $at_verbose echo 1562 1563 at_group_normalized=$at_group 1564 1565 eval 'while :; do 1566 case $at_group_normalized in #( 1567 '"$at_format"'*) break;; 1568 esac 1569 at_group_normalized=0$at_group_normalized 1570 done' 1571 1572 1573 # Create a fresh directory for the next test group, and enter. 1574 # If one already exists, the user may have invoked ./run from 1575 # within that directory; we remove the contents, but not the 1576 # directory itself, so that we aren't pulling the rug out from 1577 # under the shell's notion of the current directory. 1578 at_group_dir=$at_suite_dir/$at_group_normalized 1579 at_group_log=$at_group_dir/$as_me.log 1580 if test -d "$at_group_dir"; then 1581 find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \; 1582 rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??* 1583fi || 1584 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5 1585$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;} 1586 # Be tolerant if the above `rm' was not able to remove the directory. 1587 as_dir="$at_group_dir"; as_fn_mkdir_p 1588 1589 echo 0 > "$at_status_file" 1590 1591 # In verbose mode, append to the log file *and* show on 1592 # the standard output; in quiet mode only write to the log. 1593 if test -z "$at_verbose"; then 1594 at_tee_pipe='tee -a "$at_group_log"' 1595 else 1596 at_tee_pipe='cat >> "$at_group_log"' 1597 fi 1598} 1599 1600# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER] 1601# ------------------------------------------------- 1602# Declare the test group ORDINAL, located at LINE with group description DESC, 1603# and residing under BANNER. Use PAD to align the status column. 1604at_fn_group_banner () 1605{ 1606 at_setup_line="$2" 1607 test -n "$5" && at_fn_banner $5 1608 at_desc="$3" 1609 case $1 in 1610 [0-9]) at_desc_line=" $1: ";; 1611 [0-9][0-9]) at_desc_line=" $1: " ;; 1612 *) at_desc_line="$1: " ;; 1613 esac 1614 as_fn_append at_desc_line "$3$4" 1615 $at_quiet $as_echo_n "$at_desc_line" 1616 echo "# -*- compilation -*-" >> "$at_group_log" 1617} 1618 1619# at_fn_group_postprocess 1620# ----------------------- 1621# Perform cleanup after running a test group. 1622at_fn_group_postprocess () 1623{ 1624 # Be sure to come back to the suite directory, in particular 1625 # since below we might `rm' the group directory we are in currently. 1626 cd "$at_suite_dir" 1627 1628 if test ! -f "$at_check_line_file"; then 1629 sed "s/^ */$as_me: WARNING: /" <<_ATEOF 1630 A failure happened in a test group before any test could be 1631 run. This means that test suite is improperly designed. Please 1632 report this failure to <bug-direvent@gnu.org.ua>. 1633_ATEOF 1634 $as_echo "$at_setup_line" >"$at_check_line_file" 1635 at_status=99 1636 fi 1637 $at_verbose $as_echo_n "$at_group. $at_setup_line: " 1638 $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log" 1639 case $at_xfail:$at_status in 1640 yes:0) 1641 at_msg="UNEXPECTED PASS" 1642 at_res=xpass 1643 at_errexit=$at_errexit_p 1644 at_color=$at_red 1645 ;; 1646 no:0) 1647 at_msg="ok" 1648 at_res=pass 1649 at_errexit=false 1650 at_color=$at_grn 1651 ;; 1652 *:77) 1653 at_msg='skipped ('`cat "$at_check_line_file"`')' 1654 at_res=skip 1655 at_errexit=false 1656 at_color=$at_blu 1657 ;; 1658 no:* | *:99) 1659 at_msg='FAILED ('`cat "$at_check_line_file"`')' 1660 at_res=fail 1661 at_errexit=$at_errexit_p 1662 at_color=$at_red 1663 ;; 1664 yes:*) 1665 at_msg='expected failure ('`cat "$at_check_line_file"`')' 1666 at_res=xfail 1667 at_errexit=false 1668 at_color=$at_lgn 1669 ;; 1670 esac 1671 echo "$at_res" > "$at_job_dir/$at_res" 1672 # In parallel mode, output the summary line only afterwards. 1673 if test $at_jobs -ne 1 && test -n "$at_verbose"; then 1674 $as_echo "$at_desc_line $at_color$at_msg$at_std" 1675 else 1676 # Make sure there is a separator even with long titles. 1677 $as_echo " $at_color$at_msg$at_std" 1678 fi 1679 at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" 1680 case $at_status in 1681 0|77) 1682 # $at_times_file is only available if the group succeeded. 1683 # We're not including the group log, so the success message 1684 # is written in the global log separately. But we also 1685 # write to the group log in case they're using -d. 1686 if test -f "$at_times_file"; then 1687 at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')' 1688 rm -f "$at_times_file" 1689 fi 1690 $as_echo "$at_log_msg" >> "$at_group_log" 1691 $as_echo "$at_log_msg" >&5 1692 1693 # Cleanup the group directory, unless the user wants the files 1694 # or the success was unexpected. 1695 if $at_debug_p || test $at_res = xpass; then 1696 at_fn_create_debugging_script 1697 if test $at_res = xpass && $at_errexit; then 1698 echo stop > "$at_stop_file" 1699 fi 1700 else 1701 if test -d "$at_group_dir"; then 1702 find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; 1703 rm -fr "$at_group_dir" 1704 fi 1705 rm -f "$at_test_source" 1706 fi 1707 ;; 1708 *) 1709 # Upon failure, include the log into the testsuite's global 1710 # log. The failure message is written in the group log. It 1711 # is later included in the global log. 1712 $as_echo "$at_log_msg" >> "$at_group_log" 1713 1714 # Upon failure, keep the group directory for autopsy, and create 1715 # the debugging script. With -e, do not start any further tests. 1716 at_fn_create_debugging_script 1717 if $at_errexit; then 1718 echo stop > "$at_stop_file" 1719 fi 1720 ;; 1721 esac 1722} 1723 1724 1725## ------------ ## 1726## Driver loop. ## 1727## ------------ ## 1728 1729 1730if (set -m && set +m && set +b) >/dev/null 2>&1; then 1731 set +b 1732 at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=- 1733else 1734 at_job_control_on=: at_job_control_off=: at_job_group= 1735fi 1736 1737for at_signal in 1 2 15; do 1738 trap 'set +x; set +e 1739 $at_job_control_off 1740 at_signal='"$at_signal"' 1741 echo stop > "$at_stop_file" 1742 trap "" $at_signal 1743 at_pgids= 1744 for at_pgid in `jobs -p 2>/dev/null`; do 1745 at_pgids="$at_pgids $at_job_group$at_pgid" 1746 done 1747 test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null 1748 wait 1749 if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then 1750 echo >&2 1751 fi 1752 at_signame=`kill -l $at_signal 2>&1 || echo $at_signal` 1753 set x $at_signame 1754 test 0 -gt 2 && at_signame=$at_signal 1755 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5 1756$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;} 1757 as_fn_arith 128 + $at_signal && exit_status=$as_val 1758 as_fn_exit $exit_status' $at_signal 1759done 1760 1761rm -f "$at_stop_file" 1762at_first=: 1763 1764if test $at_jobs -ne 1 && 1765 rm -f "$at_job_fifo" && 1766 test -n "$at_job_group" && 1767 ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null 1768then 1769 # FIFO job dispatcher. 1770 1771 trap 'at_pids= 1772 for at_pid in `jobs -p`; do 1773 at_pids="$at_pids $at_job_group$at_pid" 1774 done 1775 if test -n "$at_pids"; then 1776 at_sig=TSTP 1777 test "${TMOUT+set}" = set && at_sig=STOP 1778 kill -$at_sig $at_pids 2>/dev/null 1779 fi 1780 kill -STOP $$ 1781 test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP 1782 1783 echo 1784 # Turn jobs into a list of numbers, starting from 1. 1785 at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` 1786 1787 set X $at_joblist 1788 shift 1789 for at_group in $at_groups; do 1790 $at_job_control_on 2>/dev/null 1791 ( 1792 # Start one test group. 1793 $at_job_control_off 1794 if $at_first; then 1795 exec 7>"$at_job_fifo" 1796 else 1797 exec 6<&- 1798 fi 1799 trap 'set +x; set +e 1800 trap "" PIPE 1801 echo stop > "$at_stop_file" 1802 echo >&7 1803 as_fn_exit 141' PIPE 1804 at_fn_group_prepare 1805 if cd "$at_group_dir" && 1806 at_fn_test $at_group && 1807 . "$at_test_source" 1808 then :; else 1809 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 1810$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} 1811 at_failed=: 1812 fi 1813 at_fn_group_postprocess 1814 echo >&7 1815 ) & 1816 $at_job_control_off 1817 if $at_first; then 1818 at_first=false 1819 exec 6<"$at_job_fifo" 7>"$at_job_fifo" 1820 fi 1821 shift # Consume one token. 1822 if test $# -gt 0; then :; else 1823 read at_token <&6 || break 1824 set x $* 1825 fi 1826 test -f "$at_stop_file" && break 1827 done 1828 exec 7>&- 1829 # Read back the remaining ($at_jobs - 1) tokens. 1830 set X $at_joblist 1831 shift 1832 if test $# -gt 0; then 1833 shift 1834 for at_job 1835 do 1836 read at_token 1837 done <&6 1838 fi 1839 exec 6<&- 1840 wait 1841else 1842 # Run serially, avoid forks and other potential surprises. 1843 for at_group in $at_groups; do 1844 at_fn_group_prepare 1845 if cd "$at_group_dir" && 1846 at_fn_test $at_group && 1847 . "$at_test_source"; then :; else 1848 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 1849$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} 1850 at_failed=: 1851 fi 1852 at_fn_group_postprocess 1853 test -f "$at_stop_file" && break 1854 at_first=false 1855 done 1856fi 1857 1858# Wrap up the test suite with summary statistics. 1859cd "$at_helper_dir" 1860 1861# Use ?..???? when the list must remain sorted, the faster * otherwise. 1862at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'` 1863at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'` 1864at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'` 1865at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do 1866 echo $f; done | sed '/?/d; s,/xpass,,'` 1867at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do 1868 echo $f; done | sed '/?/d; s,/fail,,'` 1869 1870set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list 1871shift; at_group_count=$# 1872set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$* 1873set X $at_xfail_list; shift; at_xfail_count=$# 1874set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$* 1875set X $at_skip_list; shift; at_skip_count=$# 1876 1877as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val 1878as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val 1879as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val 1880 1881# Back to the top directory. 1882cd "$at_dir" 1883rm -rf "$at_helper_dir" 1884 1885# Compute the duration of the suite. 1886at_stop_date=`date` 1887at_stop_time=`date +%s 2>/dev/null` 1888$as_echo "$as_me: ending at: $at_stop_date" >&5 1889case $at_start_time,$at_stop_time in 1890 [0-9]*,[0-9]*) 1891 as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val 1892 as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val 1893 as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val 1894 as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val 1895 as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val 1896 at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s" 1897 $as_echo "$as_me: test suite duration: $at_duration" >&5 1898 ;; 1899esac 1900 1901echo 1902$as_echo "## ------------- ## 1903## Test results. ## 1904## ------------- ##" 1905echo 1906{ 1907 echo 1908 $as_echo "## ------------- ## 1909## Test results. ## 1910## ------------- ##" 1911 echo 1912} >&5 1913 1914if test $at_run_count = 1; then 1915 at_result="1 test" 1916 at_were=was 1917else 1918 at_result="$at_run_count tests" 1919 at_were=were 1920fi 1921if $at_errexit_p && test $at_unexpected_count != 0; then 1922 if test $at_xpass_count = 1; then 1923 at_result="$at_result $at_were run, one passed" 1924 else 1925 at_result="$at_result $at_were run, one failed" 1926 fi 1927 at_result="$at_result unexpectedly and inhibited subsequent tests." 1928 at_color=$at_red 1929else 1930 # Don't you just love exponential explosion of the number of cases? 1931 at_color=$at_red 1932 case $at_xpass_count:$at_fail_count:$at_xfail_count in 1933 # So far, so good. 1934 0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;; 1935 0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;; 1936 1937 # Some unexpected failures 1938 0:*:0) at_result="$at_result $at_were run, 1939$at_fail_count failed unexpectedly." ;; 1940 1941 # Some failures, both expected and unexpected 1942 0:*:1) at_result="$at_result $at_were run, 1943$at_total_fail_count failed ($at_xfail_count expected failure)." ;; 1944 0:*:*) at_result="$at_result $at_were run, 1945$at_total_fail_count failed ($at_xfail_count expected failures)." ;; 1946 1947 # No unexpected failures, but some xpasses 1948 *:0:*) at_result="$at_result $at_were run, 1949$at_xpass_count passed unexpectedly." ;; 1950 1951 # No expected failures, but failures and xpasses 1952 *:1:0) at_result="$at_result $at_were run, 1953$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; 1954 *:*:0) at_result="$at_result $at_were run, 1955$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; 1956 1957 # All of them. 1958 *:*:1) at_result="$at_result $at_were run, 1959$at_xpass_count passed unexpectedly, 1960$at_total_fail_count failed ($at_xfail_count expected failure)." ;; 1961 *:*:*) at_result="$at_result $at_were run, 1962$at_xpass_count passed unexpectedly, 1963$at_total_fail_count failed ($at_xfail_count expected failures)." ;; 1964 esac 1965 1966 if test $at_skip_count = 0 && test $at_run_count -gt 1; then 1967 at_result="All $at_result" 1968 fi 1969fi 1970 1971# Now put skips in the mix. 1972case $at_skip_count in 1973 0) ;; 1974 1) at_result="$at_result 19751 test was skipped." ;; 1976 *) at_result="$at_result 1977$at_skip_count tests were skipped." ;; 1978esac 1979 1980if test $at_unexpected_count = 0; then 1981 echo "$at_color$at_result$at_std" 1982 echo "$at_result" >&5 1983else 1984 echo "${at_color}ERROR: $at_result$at_std" >&2 1985 echo "ERROR: $at_result" >&5 1986 { 1987 echo 1988 $as_echo "## ------------------------ ## 1989## Summary of the failures. ## 1990## ------------------------ ##" 1991 1992 # Summary of failed and skipped tests. 1993 if test $at_fail_count != 0; then 1994 echo "Failed tests:" 1995 $SHELL "$at_myself" $at_fail_list --list 1996 echo 1997 fi 1998 if test $at_skip_count != 0; then 1999 echo "Skipped tests:" 2000 $SHELL "$at_myself" $at_skip_list --list 2001 echo 2002 fi 2003 if test $at_xpass_count != 0; then 2004 echo "Unexpected passes:" 2005 $SHELL "$at_myself" $at_xpass_list --list 2006 echo 2007 fi 2008 if test $at_fail_count != 0; then 2009 $as_echo "## ---------------------- ## 2010## Detailed failed tests. ## 2011## ---------------------- ##" 2012 echo 2013 for at_group in $at_fail_list 2014 do 2015 at_group_normalized=$at_group 2016 2017 eval 'while :; do 2018 case $at_group_normalized in #( 2019 '"$at_format"'*) break;; 2020 esac 2021 at_group_normalized=0$at_group_normalized 2022 done' 2023 2024 cat "$at_suite_dir/$at_group_normalized/$as_me.log" 2025 echo 2026 done 2027 echo 2028 fi 2029 if test -n "$at_top_srcdir"; then 2030 sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX 2031## ${at_top_build_prefix}config.log ## 2032_ASBOX 2033 sed 's/^/| /' ${at_top_build_prefix}config.log 2034 echo 2035 fi 2036 } >&5 2037 2038 sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX 2039## $as_me.log was created. ## 2040_ASBOX 2041 2042 echo 2043 if $at_debug_p; then 2044 at_msg='per-test log files' 2045 else 2046 at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'" 2047 fi 2048 $as_echo "Please send $at_msg and all information you think might help: 2049 2050 To: <bug-direvent@gnu.org.ua> 2051 Subject: [wordsplit v1.0-6-gd36275f] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} 2052 2053You may investigate any problem if you feel able to do so, in which 2054case the test suite provides a good starting point. Its output may 2055be found below \`${at_testdir+${at_testdir}/}$as_me.dir'. 2056" 2057 exit 1 2058fi 2059 2060exit 0 2061 2062## ------------- ## 2063## Actual tests. ## 2064## ------------- ## 2065#AT_START_1 2066at_fn_group_banner 1 'wordsplit.at:59' \ 2067 "simple input" " " 2068at_xfail=no 2069( 2070 $as_echo "1. $at_setup_line: testing $at_desc ..." 2071 $at_traceon 2072 2073 2074{ set +x 2075$as_echo "$at_srcdir/wordsplit.at:59: 2076 wsp <<'EOT' 20771 2 3 2078EOT 2079" 2080at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:59" 2081( $at_check_trace; 2082 wsp <<'EOT' 20831 2 3 2084EOT 2085 2086) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2087at_status=$? at_failed=false 2088$at_check_filter 2089at_fn_diff_devnull "$at_stderr" || at_failed=: 2090echo >>"$at_stdout"; $as_echo "NF: 3 20910: 1 20921: 2 20932: 3 2094TOTAL: 3 2095" | \ 2096 $at_diff - "$at_stdout" || at_failed=: 2097at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:59" 2098$at_failed && at_fn_log_failure 2099$at_traceon; } 2100 2101 set +x 2102 $at_times_p && times >"$at_times_file" 2103) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2104read at_status <"$at_status_file" 2105#AT_STOP_1 2106#AT_START_2 2107at_fn_group_banner 2 'wordsplit.at:68' \ 2108 "quoted space" " " 2109at_xfail=no 2110( 2111 $as_echo "2. $at_setup_line: testing $at_desc ..." 2112 $at_traceon 2113 2114 2115{ set +x 2116$as_echo "$at_srcdir/wordsplit.at:68: 2117 wsp <<'EOT' 2118quoted\\ space 2119EOT 2120" 2121at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:68" 2122( $at_check_trace; 2123 wsp <<'EOT' 2124quoted\ space 2125EOT 2126 2127) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2128at_status=$? at_failed=false 2129$at_check_filter 2130at_fn_diff_devnull "$at_stderr" || at_failed=: 2131echo >>"$at_stdout"; $as_echo "NF: 1 21320: \"quoted space\" 2133TOTAL: 1 2134" | \ 2135 $at_diff - "$at_stdout" || at_failed=: 2136at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:68" 2137$at_failed && at_fn_log_failure 2138$at_traceon; } 2139 2140 set +x 2141 $at_times_p && times >"$at_times_file" 2142) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2143read at_status <"$at_status_file" 2144#AT_STOP_2 2145#AT_START_3 2146at_fn_group_banner 3 'wordsplit.at:75' \ 2147 "tab character" " " 2148at_xfail=no 2149( 2150 $as_echo "3. $at_setup_line: testing $at_desc ..." 2151 $at_traceon 2152 2153 2154{ set +x 2155$as_echo "$at_srcdir/wordsplit.at:75: 2156 wsp <<'EOT' 2157a \"tab character\" 2158EOT 2159" 2160at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:75" 2161( $at_check_trace; 2162 wsp <<'EOT' 2163a "tab character" 2164EOT 2165 2166) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2167at_status=$? at_failed=false 2168$at_check_filter 2169at_fn_diff_devnull "$at_stderr" || at_failed=: 2170echo >>"$at_stdout"; $as_echo "NF: 2 21710: a 21721: tab\\tcharacter 2173TOTAL: 2 2174" | \ 2175 $at_diff - "$at_stdout" || at_failed=: 2176at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:75" 2177$at_failed && at_fn_log_failure 2178$at_traceon; } 2179 2180 set +x 2181 $at_times_p && times >"$at_times_file" 2182) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2183read at_status <"$at_status_file" 2184#AT_STOP_3 2185#AT_START_4 2186at_fn_group_banner 4 'wordsplit.at:84' \ 2187 "octal and hex escapes" " " 2188at_xfail=no 2189( 2190 $as_echo "4. $at_setup_line: testing $at_desc ..." 2191 $at_traceon 2192 2193 2194{ set +x 2195$as_echo "$at_srcdir/wordsplit.at:84: 2196 wsp <<'EOT' 2197\\157\\143\\164\\141\\154\\40and\\x20\\x68\\x65\\x78 2198EOT 2199" 2200at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:84" 2201( $at_check_trace; 2202 wsp <<'EOT' 2203\157\143\164\141\154\40and\x20\x68\x65\x78 2204EOT 2205 2206) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2207at_status=$? at_failed=false 2208$at_check_filter 2209at_fn_diff_devnull "$at_stderr" || at_failed=: 2210echo >>"$at_stdout"; $as_echo "NF: 1 22110: \"octal and hex\" 2212TOTAL: 1 2213" | \ 2214 $at_diff - "$at_stdout" || at_failed=: 2215at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:84" 2216$at_failed && at_fn_log_failure 2217$at_traceon; } 2218 2219 set +x 2220 $at_times_p && times >"$at_times_file" 2221) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2222read at_status <"$at_status_file" 2223#AT_STOP_4 2224#AT_START_5 2225at_fn_group_banner 5 'wordsplit.at:91' \ 2226 "octal and hex escapes 2" " " 2227at_xfail=no 2228( 2229 $as_echo "5. $at_setup_line: testing $at_desc ..." 2230 $at_traceon 2231 2232 2233{ set +x 2234$as_echo "$at_srcdir/wordsplit.at:91: 2235 wsp <<'EOT' 2236\\157\\143\\164\\141\\154\\40 and \\x20\\x68\\x65\\x78 2237EOT 2238" 2239at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:91" 2240( $at_check_trace; 2241 wsp <<'EOT' 2242\157\143\164\141\154\40 and \x20\x68\x65\x78 2243EOT 2244 2245) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2246at_status=$? at_failed=false 2247$at_check_filter 2248at_fn_diff_devnull "$at_stderr" || at_failed=: 2249echo >>"$at_stdout"; $as_echo "NF: 3 22500: \"octal \" 22511: and 22522: \" hex\" 2253TOTAL: 3 2254" | \ 2255 $at_diff - "$at_stdout" || at_failed=: 2256at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:91" 2257$at_failed && at_fn_log_failure 2258$at_traceon; } 2259 2260 set +x 2261 $at_times_p && times >"$at_times_file" 2262) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2263read at_status <"$at_status_file" 2264#AT_STOP_5 2265#AT_START_6 2266at_fn_group_banner 6 'wordsplit.at:100' \ 2267 "escape representation" " " 2268at_xfail=no 2269( 2270 $as_echo "6. $at_setup_line: testing $at_desc ..." 2271 $at_traceon 2272 2273 2274{ set +x 2275$as_echo "$at_srcdir/wordsplit.at:100: 2276 wsp <<'EOT' 2277A\\x3-\\48\\39 2278EOT 2279" 2280at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:100" 2281( $at_check_trace; 2282 wsp <<'EOT' 2283A\x3-\48\39 2284EOT 2285 2286) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2287at_status=$? at_failed=false 2288$at_check_filter 2289at_fn_diff_devnull "$at_stderr" || at_failed=: 2290echo >>"$at_stdout"; $as_echo "NF: 1 22910: A\\003-\\0048\\0039 2292TOTAL: 1 2293" | \ 2294 $at_diff - "$at_stdout" || at_failed=: 2295at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:100" 2296$at_failed && at_fn_log_failure 2297$at_traceon; } 2298 2299 set +x 2300 $at_times_p && times >"$at_times_file" 2301) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2302read at_status <"$at_status_file" 2303#AT_STOP_6 2304#AT_START_7 2305at_fn_group_banner 7 'wordsplit.at:112' \ 2306 "append" " " 2307at_xfail=no 2308( 2309 $as_echo "7. $at_setup_line: testing $at_desc ..." 2310 $at_traceon 2311 2312 2313{ set +x 2314$as_echo "$at_srcdir/wordsplit.at:112: 2315 wsp -append <<'EOT' 2316jeden dwa trzy 2317cztery 2318piec szesc 2319EOT 2320" 2321at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:112" 2322( $at_check_trace; 2323 wsp -append <<'EOT' 2324jeden dwa trzy 2325cztery 2326piec szesc 2327EOT 2328 2329) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2330at_status=$? at_failed=false 2331$at_check_filter 2332at_fn_diff_devnull "$at_stderr" || at_failed=: 2333echo >>"$at_stdout"; $as_echo "NF: 3 23340: jeden 23351: dwa 23362: trzy 2337TOTAL: 3 2338NF: 4 23390: jeden 23401: dwa 23412: trzy 23423: cztery 2343TOTAL: 1 2344NF: 6 23450: jeden 23461: dwa 23472: trzy 23483: cztery 23494: piec 23505: szesc 2351TOTAL: 2 2352" | \ 2353 $at_diff - "$at_stdout" || at_failed=: 2354at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:112" 2355$at_failed && at_fn_log_failure 2356$at_traceon; } 2357 2358 set +x 2359 $at_times_p && times >"$at_times_file" 2360) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2361read at_status <"$at_status_file" 2362#AT_STOP_7 2363#AT_START_8 2364at_fn_group_banner 8 'wordsplit.at:137' \ 2365 "dooffs" " " 2366at_xfail=no 2367( 2368 $as_echo "8. $at_setup_line: testing $at_desc ..." 2369 $at_traceon 2370 2371 2372{ set +x 2373$as_echo "$at_srcdir/wordsplit.at:137: 2374 wsp -dooffs jeden dwa trzy <<'EOT' 2375cztery piec 2376EOT 2377" 2378at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:137" 2379( $at_check_trace; 2380 wsp -dooffs jeden dwa trzy <<'EOT' 2381cztery piec 2382EOT 2383 2384) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2385at_status=$? at_failed=false 2386$at_check_filter 2387at_fn_diff_devnull "$at_stderr" || at_failed=: 2388echo >>"$at_stdout"; $as_echo "NF: 2 (3) 2389(0): jeden 2390(1): dwa 2391(2): trzy 23923: cztery 23934: piec 2394TOTAL: 2 2395" | \ 2396 $at_diff - "$at_stdout" || at_failed=: 2397at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:137" 2398$at_failed && at_fn_log_failure 2399$at_traceon; } 2400 2401 set +x 2402 $at_times_p && times >"$at_times_file" 2403) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2404read at_status <"$at_status_file" 2405#AT_STOP_8 2406#AT_START_9 2407at_fn_group_banner 9 'wordsplit.at:150' \ 2408 "variable substitutions: single var" " " 2409at_xfail=no 2410( 2411 $as_echo "9. $at_setup_line: testing $at_desc ..." 2412 $at_traceon 2413 2414 2415{ set +x 2416$as_echo "$at_srcdir/wordsplit.at:150: 2417FOO=bar wsp <<'EOT' 2418a \$FOO test 2419EOT 2420" 2421at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:150" 2422( $at_check_trace; 2423FOO=bar wsp <<'EOT' 2424a $FOO test 2425EOT 2426 2427) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2428at_status=$? at_failed=false 2429$at_check_filter 2430at_fn_diff_devnull "$at_stderr" || at_failed=: 2431echo >>"$at_stdout"; $as_echo "NF: 3 24320: a 24331: bar 24342: test 2435TOTAL: 3 2436" | \ 2437 $at_diff - "$at_stdout" || at_failed=: 2438at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:150" 2439$at_failed && at_fn_log_failure 2440$at_traceon; } 2441 2442 set +x 2443 $at_times_p && times >"$at_times_file" 2444) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2445read at_status <"$at_status_file" 2446#AT_STOP_9 2447#AT_START_10 2448at_fn_group_banner 10 'wordsplit.at:161' \ 2449 "variable substitutions: concatenated vars" " " 2450at_xfail=no 2451( 2452 $as_echo "10. $at_setup_line: testing $at_desc ..." 2453 $at_traceon 2454 2455 2456{ set +x 2457$as_echo "$at_srcdir/wordsplit.at:161: 2458FOO=str BAR=ing wsp <<'EOT' 2459a \$FOO\${BAR}ent test 2460EOT 2461" 2462at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:161" 2463( $at_check_trace; 2464FOO=str BAR=ing wsp <<'EOT' 2465a $FOO${BAR}ent test 2466EOT 2467 2468) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2469at_status=$? at_failed=false 2470$at_check_filter 2471at_fn_diff_devnull "$at_stderr" || at_failed=: 2472echo >>"$at_stdout"; $as_echo "NF: 3 24730: a 24741: stringent 24752: test 2476TOTAL: 3 2477" | \ 2478 $at_diff - "$at_stdout" || at_failed=: 2479at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:161" 2480$at_failed && at_fn_log_failure 2481$at_traceon; } 2482 2483 set +x 2484 $at_times_p && times >"$at_times_file" 2485) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2486read at_status <"$at_status_file" 2487#AT_STOP_10 2488#AT_START_11 2489at_fn_group_banner 11 'wordsplit.at:173' \ 2490 "variable substitutions: field splitting" " " 2491at_xfail=no 2492( 2493 $as_echo "11. $at_setup_line: testing $at_desc ..." 2494 $at_traceon 2495 2496 2497{ set +x 2498$as_echo "$at_srcdir/wordsplit.at:173: 2499FOO=\"variable substitution\" wsp <<'EOT' 2500a \$FOO test 2501EOT 2502" 2503at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:173" 2504( $at_check_trace; 2505FOO="variable substitution" wsp <<'EOT' 2506a $FOO test 2507EOT 2508 2509) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2510at_status=$? at_failed=false 2511$at_check_filter 2512at_fn_diff_devnull "$at_stderr" || at_failed=: 2513echo >>"$at_stdout"; $as_echo "NF: 4 25140: a 25151: variable 25162: substitution 25173: test 2518TOTAL: 4 2519" | \ 2520 $at_diff - "$at_stdout" || at_failed=: 2521at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:173" 2522$at_failed && at_fn_log_failure 2523$at_traceon; } 2524 2525 set +x 2526 $at_times_p && times >"$at_times_file" 2527) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2528read at_status <"$at_status_file" 2529#AT_STOP_11 2530#AT_START_12 2531at_fn_group_banner 12 'wordsplit.at:185' \ 2532 "variable substitutions: double-quoted variable" " " 2533at_xfail=no 2534( 2535 $as_echo "12. $at_setup_line: testing $at_desc ..." 2536 $at_traceon 2537 2538 2539{ set +x 2540$as_echo "$at_srcdir/wordsplit.at:185: 2541FOO=\"variable substitution\" wsp <<'EOT' 2542a \"\$FOO\" test 2543EOT 2544" 2545at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:185" 2546( $at_check_trace; 2547FOO="variable substitution" wsp <<'EOT' 2548a "$FOO" test 2549EOT 2550 2551) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2552at_status=$? at_failed=false 2553$at_check_filter 2554at_fn_diff_devnull "$at_stderr" || at_failed=: 2555echo >>"$at_stdout"; $as_echo "NF: 3 25560: a 25571: \"variable substitution\" 25582: test 2559TOTAL: 3 2560" | \ 2561 $at_diff - "$at_stdout" || at_failed=: 2562at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:185" 2563$at_failed && at_fn_log_failure 2564$at_traceon; } 2565 2566 set +x 2567 $at_times_p && times >"$at_times_file" 2568) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2569read at_status <"$at_status_file" 2570#AT_STOP_12 2571#AT_START_13 2572at_fn_group_banner 13 'wordsplit.at:196' \ 2573 "variable substitutions: single-quoted variable" " " 2574at_xfail=no 2575( 2576 $as_echo "13. $at_setup_line: testing $at_desc ..." 2577 $at_traceon 2578 2579 2580{ set +x 2581$as_echo "$at_srcdir/wordsplit.at:196: 2582FOO=\"variable substitution\" wsp <<'EOT' 2583a '\$FOO' test 2584EOT 2585" 2586at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:196" 2587( $at_check_trace; 2588FOO="variable substitution" wsp <<'EOT' 2589a '$FOO' test 2590EOT 2591 2592) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2593at_status=$? at_failed=false 2594$at_check_filter 2595at_fn_diff_devnull "$at_stderr" || at_failed=: 2596echo >>"$at_stdout"; $as_echo "NF: 3 25970: a 25981: \$FOO 25992: test 2600TOTAL: 3 2601" | \ 2602 $at_diff - "$at_stdout" || at_failed=: 2603at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:196" 2604$at_failed && at_fn_log_failure 2605$at_traceon; } 2606 2607 set +x 2608 $at_times_p && times >"$at_times_file" 2609) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2610read at_status <"$at_status_file" 2611#AT_STOP_13 2612#AT_START_14 2613at_fn_group_banner 14 'wordsplit.at:207' \ 2614 "undefined variables 1" " " 2615at_xfail=no 2616( 2617 $as_echo "14. $at_setup_line: testing $at_desc ..." 2618 $at_traceon 2619 2620 2621{ set +x 2622$as_echo "$at_srcdir/wordsplit.at:207: 2623unset FOO; wsp <<'EOT' 2624a \$FOO test a\${FOO}b 2625EOT 2626" 2627at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:207" 2628( $at_check_trace; 2629unset FOO; wsp <<'EOT' 2630a $FOO test a${FOO}b 2631EOT 2632 2633) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2634at_status=$? at_failed=false 2635$at_check_filter 2636at_fn_diff_devnull "$at_stderr" || at_failed=: 2637echo >>"$at_stdout"; $as_echo "NF: 3 26380: a 26391: test 26402: ab 2641TOTAL: 3 2642" | \ 2643 $at_diff - "$at_stdout" || at_failed=: 2644at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:207" 2645$at_failed && at_fn_log_failure 2646$at_traceon; } 2647 2648 set +x 2649 $at_times_p && times >"$at_times_file" 2650) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2651read at_status <"$at_status_file" 2652#AT_STOP_14 2653#AT_START_15 2654at_fn_group_banner 15 'wordsplit.at:218' \ 2655 "undefined variables 2" " " 2656at_xfail=no 2657( 2658 $as_echo "15. $at_setup_line: testing $at_desc ..." 2659 $at_traceon 2660 2661 2662{ set +x 2663$as_echo "$at_srcdir/wordsplit.at:218: 2664unset FOO; wsp -keepundef <<'EOT' 2665a \$FOO test a\${FOO}b 2666EOT 2667" 2668at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:218" 2669( $at_check_trace; 2670unset FOO; wsp -keepundef <<'EOT' 2671a $FOO test a${FOO}b 2672EOT 2673 2674) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2675at_status=$? at_failed=false 2676$at_check_filter 2677at_fn_diff_devnull "$at_stderr" || at_failed=: 2678echo >>"$at_stdout"; $as_echo "NF: 4 26790: a 26801: \$FOO 26812: test 26823: a\${FOO}b 2683TOTAL: 4 2684" | \ 2685 $at_diff - "$at_stdout" || at_failed=: 2686at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:218" 2687$at_failed && at_fn_log_failure 2688$at_traceon; } 2689 2690 set +x 2691 $at_times_p && times >"$at_times_file" 2692) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2693read at_status <"$at_status_file" 2694#AT_STOP_15 2695#AT_START_16 2696at_fn_group_banner 16 'wordsplit.at:230' \ 2697 "warn about undefined variables" " " 2698at_xfail=no 2699( 2700 $as_echo "16. $at_setup_line: testing $at_desc ..." 2701 $at_traceon 2702 2703 2704{ set +x 2705$as_echo "$at_srcdir/wordsplit.at:230: 2706unset FOO; wsp -warnundef <<'EOT' 2707\$FOO 2708EOT 2709" 2710at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:230" 2711( $at_check_trace; 2712unset FOO; wsp -warnundef <<'EOT' 2713$FOO 2714EOT 2715 2716) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2717at_status=$? at_failed=false 2718$at_check_filter 2719echo >>"$at_stderr"; $as_echo "warning: undefined variable \`FOO' 2720" | \ 2721 $at_diff - "$at_stderr" || at_failed=: 2722echo >>"$at_stdout"; $as_echo "NF: 0 2723TOTAL: 0 2724" | \ 2725 $at_diff - "$at_stdout" || at_failed=: 2726at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:230" 2727$at_failed && at_fn_log_failure 2728$at_traceon; } 2729 2730 set +x 2731 $at_times_p && times >"$at_times_file" 2732) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2733read at_status <"$at_status_file" 2734#AT_STOP_16 2735#AT_START_17 2736at_fn_group_banner 17 'wordsplit.at:239' \ 2737 "bail out on undefined variables" " " 2738at_xfail=no 2739( 2740 $as_echo "17. $at_setup_line: testing $at_desc ..." 2741 $at_traceon 2742 2743 2744{ set +x 2745$as_echo "$at_srcdir/wordsplit.at:239: 2746unset FOO; wsp -undef <<'EOT' 2747\$FOO 2748EOT 2749" 2750at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:239" 2751( $at_check_trace; 2752unset FOO; wsp -undef <<'EOT' 2753$FOO 2754EOT 2755 2756) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2757at_status=$? at_failed=false 2758$at_check_filter 2759echo >>"$at_stderr"; $as_echo "undefined variable: FOO 2760" | \ 2761 $at_diff - "$at_stderr" || at_failed=: 2762at_fn_diff_devnull "$at_stdout" || at_failed=: 2763at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:239" 2764$at_failed && at_fn_log_failure 2765$at_traceon; } 2766 2767 set +x 2768 $at_times_p && times >"$at_times_file" 2769) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2770read at_status <"$at_status_file" 2771#AT_STOP_17 2772#AT_START_18 2773at_fn_group_banner 18 'wordsplit.at:246' \ 2774 "disable variable expansion" " " 2775at_xfail=no 2776( 2777 $as_echo "18. $at_setup_line: testing $at_desc ..." 2778 $at_traceon 2779 2780 2781{ set +x 2782$as_echo "$at_srcdir/wordsplit.at:246: 2783FOO=bar wsp -novar <<'EOT' 2784\$FOO 2785EOT 2786" 2787at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:246" 2788( $at_check_trace; 2789FOO=bar wsp -novar <<'EOT' 2790$FOO 2791EOT 2792 2793) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2794at_status=$? at_failed=false 2795$at_check_filter 2796at_fn_diff_devnull "$at_stderr" || at_failed=: 2797echo >>"$at_stdout"; $as_echo "NF: 1 27980: \$FOO 2799TOTAL: 1 2800" | \ 2801 $at_diff - "$at_stdout" || at_failed=: 2802at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:246" 2803$at_failed && at_fn_log_failure 2804$at_traceon; } 2805 2806 set +x 2807 $at_times_p && times >"$at_times_file" 2808) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2809read at_status <"$at_status_file" 2810#AT_STOP_18 2811#AT_START_19 2812at_fn_group_banner 19 'wordsplit.at:255' \ 2813 "K/V environment" " " 2814at_xfail=no 2815( 2816 $as_echo "19. $at_setup_line: testing $at_desc ..." 2817 $at_traceon 2818 2819 2820{ set +x 2821$as_echo "$at_srcdir/wordsplit.at:255: 2822FOO=bar BAZ=qux wsp -env_kv <<'EOT' 2823\$FOO a\$BAZ 2824EOT 2825" 2826at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:255" 2827( $at_check_trace; 2828FOO=bar BAZ=qux wsp -env_kv <<'EOT' 2829$FOO a$BAZ 2830EOT 2831 2832) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2833at_status=$? at_failed=false 2834$at_check_filter 2835at_fn_diff_devnull "$at_stderr" || at_failed=: 2836echo >>"$at_stdout"; $as_echo "NF: 2 28370: bar 28381: aqux 2839TOTAL: 2 2840" | \ 2841 $at_diff - "$at_stdout" || at_failed=: 2842at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:255" 2843$at_failed && at_fn_log_failure 2844$at_traceon; } 2845 2846 set +x 2847 $at_times_p && times >"$at_times_file" 2848) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2849read at_status <"$at_status_file" 2850#AT_STOP_19 2851#AT_START_20 2852at_fn_group_banner 20 'wordsplit.at:266' \ 2853 "nosplit with variable expansion" " " 2854at_xfail=no 2855( 2856 $as_echo "20. $at_setup_line: testing $at_desc ..." 2857 $at_traceon 2858 2859 2860{ set +x 2861$as_echo "$at_srcdir/wordsplit.at:266: 2862FOO=\"variable expansion\" wsp -nosplit <<'EOT' 2863a \$FOO test 2864EOT 2865" 2866at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:266" 2867( $at_check_trace; 2868FOO="variable expansion" wsp -nosplit <<'EOT' 2869a $FOO test 2870EOT 2871 2872) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2873at_status=$? at_failed=false 2874$at_check_filter 2875at_fn_diff_devnull "$at_stderr" || at_failed=: 2876echo >>"$at_stdout"; $as_echo "NF: 1 28770: \"a variable expansion test\\n\" 2878TOTAL: 1 2879" | \ 2880 $at_diff - "$at_stdout" || at_failed=: 2881at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:266" 2882$at_failed && at_fn_log_failure 2883$at_traceon; } 2884 2885 set +x 2886 $at_times_p && times >"$at_times_file" 2887) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2888read at_status <"$at_status_file" 2889#AT_STOP_20 2890#AT_START_21 2891at_fn_group_banner 21 'wordsplit.at:275' \ 2892 "nosplit without variable expansion" " " 2893at_xfail=no 2894( 2895 $as_echo "21. $at_setup_line: testing $at_desc ..." 2896 $at_traceon 2897 2898 2899{ set +x 2900$as_echo "$at_srcdir/wordsplit.at:275: 2901FOO=\"variable expansion\" wsp -nosplit -novar <<'EOT' 2902a \$FOO test 2903EOT 2904" 2905at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:275" 2906( $at_check_trace; 2907FOO="variable expansion" wsp -nosplit -novar <<'EOT' 2908a $FOO test 2909EOT 2910 2911) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2912at_status=$? at_failed=false 2913$at_check_filter 2914at_fn_diff_devnull "$at_stderr" || at_failed=: 2915echo >>"$at_stdout"; $as_echo "NF: 1 29160: \"a \$FOO test\\n\" 2917TOTAL: 1 2918" | \ 2919 $at_diff - "$at_stdout" || at_failed=: 2920at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:275" 2921$at_failed && at_fn_log_failure 2922$at_traceon; } 2923 2924 set +x 2925 $at_times_p && times >"$at_times_file" 2926) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2927read at_status <"$at_status_file" 2928#AT_STOP_21 2929#AT_START_22 2930at_fn_group_banner 22 'wordsplit.at:284' \ 2931 "nosplit: empty expansion" " " 2932at_xfail=no 2933( 2934 $as_echo "22. $at_setup_line: testing $at_desc ..." 2935 $at_traceon 2936 2937 2938{ set +x 2939$as_echo "$at_srcdir/wordsplit.at:284: 2940FOO=\"\" wsp -nosplit -trimnl <<'EOT' 2941\$FOO 2942EOT 2943" 2944at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:284" 2945( $at_check_trace; 2946FOO="" wsp -nosplit -trimnl <<'EOT' 2947$FOO 2948EOT 2949 2950) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2951at_status=$? at_failed=false 2952$at_check_filter 2953at_fn_diff_devnull "$at_stderr" || at_failed=: 2954echo >>"$at_stdout"; $as_echo "NF: 1 29550: \"\" 2956TOTAL: 1 2957" | \ 2958 $at_diff - "$at_stdout" || at_failed=: 2959at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:284" 2960$at_failed && at_fn_log_failure 2961$at_traceon; } 2962 2963 set +x 2964 $at_times_p && times >"$at_times_file" 2965) 5>&1 2>&1 7>&- | eval $at_tee_pipe 2966read at_status <"$at_status_file" 2967#AT_STOP_22 2968#AT_START_23 2969at_fn_group_banner 23 'wordsplit.at:293' \ 2970 "default value" " " 2971at_xfail=no 2972( 2973 $as_echo "23. $at_setup_line: testing $at_desc ..." 2974 $at_traceon 2975 2976 2977{ set +x 2978$as_echo "$at_srcdir/wordsplit.at:293: 2979 wsp <<'EOT' 2980\${FOO:-bar} 2981EOT 2982" 2983at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:293" 2984( $at_check_trace; 2985 wsp <<'EOT' 2986${FOO:-bar} 2987EOT 2988 2989) >>"$at_stdout" 2>>"$at_stderr" 5>&- 2990at_status=$? at_failed=false 2991$at_check_filter 2992at_fn_diff_devnull "$at_stderr" || at_failed=: 2993echo >>"$at_stdout"; $as_echo "NF: 1 29940: bar 2995TOTAL: 1 2996" | \ 2997 $at_diff - "$at_stdout" || at_failed=: 2998at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:293" 2999$at_failed && at_fn_log_failure 3000$at_traceon; } 3001 3002 set +x 3003 $at_times_p && times >"$at_times_file" 3004) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3005read at_status <"$at_status_file" 3006#AT_STOP_23 3007#AT_START_24 3008at_fn_group_banner 24 'wordsplit.at:300' \ 3009 "default value (defined)" " " 3010at_xfail=no 3011( 3012 $as_echo "24. $at_setup_line: testing $at_desc ..." 3013 $at_traceon 3014 3015 3016{ set +x 3017$as_echo "$at_srcdir/wordsplit.at:300: 3018FOO=qux wsp <<'EOT' 3019\${FOO:-bar} 3020EOT 3021" 3022at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:300" 3023( $at_check_trace; 3024FOO=qux wsp <<'EOT' 3025${FOO:-bar} 3026EOT 3027 3028) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3029at_status=$? at_failed=false 3030$at_check_filter 3031at_fn_diff_devnull "$at_stderr" || at_failed=: 3032echo >>"$at_stdout"; $as_echo "NF: 1 30330: qux 3034TOTAL: 1 3035" | \ 3036 $at_diff - "$at_stdout" || at_failed=: 3037at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:300" 3038$at_failed && at_fn_log_failure 3039$at_traceon; } 3040 3041 set +x 3042 $at_times_p && times >"$at_times_file" 3043) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3044read at_status <"$at_status_file" 3045#AT_STOP_24 3046#AT_START_25 3047at_fn_group_banner 25 'wordsplit.at:309' \ 3048 "default value (:- null)" " " 3049at_xfail=no 3050( 3051 $as_echo "25. $at_setup_line: testing $at_desc ..." 3052 $at_traceon 3053 3054 3055{ set +x 3056$as_echo "$at_srcdir/wordsplit.at:309: 3057FOO= wsp <<'EOT' 3058\${FOO:-bar} 3059EOT 3060" 3061at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:309" 3062( $at_check_trace; 3063FOO= wsp <<'EOT' 3064${FOO:-bar} 3065EOT 3066 3067) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3068at_status=$? at_failed=false 3069$at_check_filter 3070at_fn_diff_devnull "$at_stderr" || at_failed=: 3071echo >>"$at_stdout"; $as_echo "NF: 1 30720: bar 3073TOTAL: 1 3074" | \ 3075 $at_diff - "$at_stdout" || at_failed=: 3076at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:309" 3077$at_failed && at_fn_log_failure 3078$at_traceon; } 3079 3080 set +x 3081 $at_times_p && times >"$at_times_file" 3082) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3083read at_status <"$at_status_file" 3084#AT_STOP_25 3085#AT_START_26 3086at_fn_group_banner 26 'wordsplit.at:318' \ 3087 "default value (- null)" " " 3088at_xfail=no 3089( 3090 $as_echo "26. $at_setup_line: testing $at_desc ..." 3091 $at_traceon 3092 3093 3094{ set +x 3095$as_echo "$at_srcdir/wordsplit.at:318: 3096FOO= wsp <<'EOT' 3097\${FOO-bar} 3098EOT 3099" 3100at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:318" 3101( $at_check_trace; 3102FOO= wsp <<'EOT' 3103${FOO-bar} 3104EOT 3105 3106) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3107at_status=$? at_failed=false 3108$at_check_filter 3109at_fn_diff_devnull "$at_stderr" || at_failed=: 3110echo >>"$at_stdout"; $as_echo "NF: 0 3111TOTAL: 0 3112" | \ 3113 $at_diff - "$at_stdout" || at_failed=: 3114at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:318" 3115$at_failed && at_fn_log_failure 3116$at_traceon; } 3117 3118 set +x 3119 $at_times_p && times >"$at_times_file" 3120) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3121read at_status <"$at_status_file" 3122#AT_STOP_26 3123#AT_START_27 3124at_fn_group_banner 27 'wordsplit.at:326' \ 3125 "default value (- null, unset)" " " 3126at_xfail=no 3127( 3128 $as_echo "27. $at_setup_line: testing $at_desc ..." 3129 $at_traceon 3130 3131 3132{ set +x 3133$as_echo "$at_srcdir/wordsplit.at:326: 3134 wsp <<'EOT' 3135\${FOO-bar} 3136EOT 3137" 3138at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:326" 3139( $at_check_trace; 3140 wsp <<'EOT' 3141${FOO-bar} 3142EOT 3143 3144) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3145at_status=$? at_failed=false 3146$at_check_filter 3147at_fn_diff_devnull "$at_stderr" || at_failed=: 3148echo >>"$at_stdout"; $as_echo "NF: 1 31490: bar 3150TOTAL: 1 3151" | \ 3152 $at_diff - "$at_stdout" || at_failed=: 3153at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:326" 3154$at_failed && at_fn_log_failure 3155$at_traceon; } 3156 3157 set +x 3158 $at_times_p && times >"$at_times_file" 3159) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3160read at_status <"$at_status_file" 3161#AT_STOP_27 3162#AT_START_28 3163at_fn_group_banner 28 'wordsplit.at:333' \ 3164 "assign default values" " " 3165at_xfail=no 3166( 3167 $as_echo "28. $at_setup_line: testing $at_desc ..." 3168 $at_traceon 3169 3170 3171{ set +x 3172$as_echo "$at_srcdir/wordsplit.at:333: 3173 wsp <<'EOT' 3174\${FOO=bar} 3175\$FOO 3176EOT 3177" 3178at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:333" 3179( $at_check_trace; 3180 wsp <<'EOT' 3181${FOO=bar} 3182$FOO 3183EOT 3184 3185) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3186at_status=$? at_failed=false 3187$at_check_filter 3188at_fn_diff_devnull "$at_stderr" || at_failed=: 3189echo >>"$at_stdout"; $as_echo "NF: 1 31900: bar 3191TOTAL: 1 3192NF: 1 31930: bar 3194TOTAL: 1 3195" | \ 3196 $at_diff - "$at_stdout" || at_failed=: 3197at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:333" 3198$at_failed && at_fn_log_failure 3199$at_traceon; } 3200 3201 set +x 3202 $at_times_p && times >"$at_times_file" 3203) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3204read at_status <"$at_status_file" 3205#AT_STOP_28 3206#AT_START_29 3207at_fn_group_banner 29 'wordsplit.at:344' \ 3208 "default error message (var defined)" " " 3209at_xfail=no 3210( 3211 $as_echo "29. $at_setup_line: testing $at_desc ..." 3212 $at_traceon 3213 3214 3215{ set +x 3216$as_echo "$at_srcdir/wordsplit.at:344: 3217FOO=bar wsp <<'EOT' 3218a \${FOO:?} test 3219EOT 3220" 3221at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:344" 3222( $at_check_trace; 3223FOO=bar wsp <<'EOT' 3224a ${FOO:?} test 3225EOT 3226 3227) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3228at_status=$? at_failed=false 3229$at_check_filter 3230at_fn_diff_devnull "$at_stderr" || at_failed=: 3231echo >>"$at_stdout"; $as_echo "NF: 3 32320: a 32331: bar 32342: test 3235TOTAL: 3 3236" | \ 3237 $at_diff - "$at_stdout" || at_failed=: 3238at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:344" 3239$at_failed && at_fn_log_failure 3240$at_traceon; } 3241 3242 set +x 3243 $at_times_p && times >"$at_times_file" 3244) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3245read at_status <"$at_status_file" 3246#AT_STOP_29 3247#AT_START_30 3248at_fn_group_banner 30 'wordsplit.at:355' \ 3249 "default error message" " " 3250at_xfail=no 3251( 3252 $as_echo "30. $at_setup_line: testing $at_desc ..." 3253 $at_traceon 3254 3255 3256{ set +x 3257$as_echo "$at_srcdir/wordsplit.at:355: 3258 wsp <<'EOT' 3259\${FOO:?} 3260EOT 3261" 3262at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:355" 3263( $at_check_trace; 3264 wsp <<'EOT' 3265${FOO:?} 3266EOT 3267 3268) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3269at_status=$? at_failed=false 3270$at_check_filter 3271echo >>"$at_stderr"; $as_echo "FOO: variable null or not set 3272" | \ 3273 $at_diff - "$at_stderr" || at_failed=: 3274echo >>"$at_stdout"; $as_echo "NF: 0 3275TOTAL: 0 3276" | \ 3277 $at_diff - "$at_stdout" || at_failed=: 3278at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:355" 3279$at_failed && at_fn_log_failure 3280$at_traceon; } 3281 3282 set +x 3283 $at_times_p && times >"$at_times_file" 3284) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3285read at_status <"$at_status_file" 3286#AT_STOP_30 3287#AT_START_31 3288at_fn_group_banner 31 'wordsplit.at:363' \ 3289 "custom error message (defined)" " " 3290at_xfail=no 3291( 3292 $as_echo "31. $at_setup_line: testing $at_desc ..." 3293 $at_traceon 3294 3295 3296{ set +x 3297$as_echo "$at_srcdir/wordsplit.at:363: 3298FOO=bar wsp <<'EOT' 3299a \${FOO:?please define it} test 3300EOT 3301" 3302at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:363" 3303( $at_check_trace; 3304FOO=bar wsp <<'EOT' 3305a ${FOO:?please define it} test 3306EOT 3307 3308) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3309at_status=$? at_failed=false 3310$at_check_filter 3311at_fn_diff_devnull "$at_stderr" || at_failed=: 3312echo >>"$at_stdout"; $as_echo "NF: 3 33130: a 33141: bar 33152: test 3316TOTAL: 3 3317" | \ 3318 $at_diff - "$at_stdout" || at_failed=: 3319at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:363" 3320$at_failed && at_fn_log_failure 3321$at_traceon; } 3322 3323 set +x 3324 $at_times_p && times >"$at_times_file" 3325) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3326read at_status <"$at_status_file" 3327#AT_STOP_31 3328#AT_START_32 3329at_fn_group_banner 32 'wordsplit.at:374' \ 3330 "custom error message" " " 3331at_xfail=no 3332( 3333 $as_echo "32. $at_setup_line: testing $at_desc ..." 3334 $at_traceon 3335 3336 3337{ set +x 3338$as_echo "$at_srcdir/wordsplit.at:374: 3339 wsp <<'EOT' 3340a \${FOO:?please define it} test 3341EOT 3342" 3343at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:374" 3344( $at_check_trace; 3345 wsp <<'EOT' 3346a ${FOO:?please define it} test 3347EOT 3348 3349) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3350at_status=$? at_failed=false 3351$at_check_filter 3352echo >>"$at_stderr"; $as_echo "FOO: please define it 3353" | \ 3354 $at_diff - "$at_stderr" || at_failed=: 3355echo >>"$at_stdout"; $as_echo "NF: 2 33560: a 33571: test 3358TOTAL: 2 3359" | \ 3360 $at_diff - "$at_stdout" || at_failed=: 3361at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:374" 3362$at_failed && at_fn_log_failure 3363$at_traceon; } 3364 3365 set +x 3366 $at_times_p && times >"$at_times_file" 3367) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3368read at_status <"$at_status_file" 3369#AT_STOP_32 3370#AT_START_33 3371at_fn_group_banner 33 'wordsplit.at:384' \ 3372 "alternate value (defined)" " " 3373at_xfail=no 3374( 3375 $as_echo "33. $at_setup_line: testing $at_desc ..." 3376 $at_traceon 3377 3378 3379{ set +x 3380$as_echo "$at_srcdir/wordsplit.at:384: 3381FOO=bar wsp <<'EOT' 3382a \${FOO:+isset} test 3383EOT 3384" 3385at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:384" 3386( $at_check_trace; 3387FOO=bar wsp <<'EOT' 3388a ${FOO:+isset} test 3389EOT 3390 3391) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3392at_status=$? at_failed=false 3393$at_check_filter 3394at_fn_diff_devnull "$at_stderr" || at_failed=: 3395echo >>"$at_stdout"; $as_echo "NF: 3 33960: a 33971: isset 33982: test 3399TOTAL: 3 3400" | \ 3401 $at_diff - "$at_stdout" || at_failed=: 3402at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:384" 3403$at_failed && at_fn_log_failure 3404$at_traceon; } 3405 3406 set +x 3407 $at_times_p && times >"$at_times_file" 3408) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3409read at_status <"$at_status_file" 3410#AT_STOP_33 3411#AT_START_34 3412at_fn_group_banner 34 'wordsplit.at:395' \ 3413 "alternate value" " " 3414at_xfail=no 3415( 3416 $as_echo "34. $at_setup_line: testing $at_desc ..." 3417 $at_traceon 3418 3419 3420{ set +x 3421$as_echo "$at_srcdir/wordsplit.at:395: 3422unset FOO; wsp <<'EOT' 3423a \${FOO:+isset} test 3424EOT 3425" 3426at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:395" 3427( $at_check_trace; 3428unset FOO; wsp <<'EOT' 3429a ${FOO:+isset} test 3430EOT 3431 3432) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3433at_status=$? at_failed=false 3434$at_check_filter 3435at_fn_diff_devnull "$at_stderr" || at_failed=: 3436echo >>"$at_stdout"; $as_echo "NF: 2 34370: a 34381: test 3439TOTAL: 2 3440" | \ 3441 $at_diff - "$at_stdout" || at_failed=: 3442at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:395" 3443$at_failed && at_fn_log_failure 3444$at_traceon; } 3445 3446 set +x 3447 $at_times_p && times >"$at_times_file" 3448) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3449read at_status <"$at_status_file" 3450#AT_STOP_34 3451#AT_START_35 3452at_fn_group_banner 35 'wordsplit.at:405' \ 3453 "getvar" " " 3454at_xfail=no 3455( 3456 $as_echo "35. $at_setup_line: testing $at_desc ..." 3457 $at_traceon 3458 3459 3460{ set +x 3461$as_echo "$at_srcdir/wordsplit.at:405: unset foo; unset x 3462 wsp foo=bar x=quux <<'EOT' 3463begin \$foo \$x end 3464EOT 3465" 3466at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:405" 3467( $at_check_trace; unset foo; unset x 3468 wsp foo=bar x=quux <<'EOT' 3469begin $foo $x end 3470EOT 3471 3472) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3473at_status=$? at_failed=false 3474$at_check_filter 3475at_fn_diff_devnull "$at_stderr" || at_failed=: 3476echo >>"$at_stdout"; $as_echo "NF: 4 34770: begin 34781: bar 34792: quux 34803: end 3481TOTAL: 4 3482" | \ 3483 $at_diff - "$at_stdout" || at_failed=: 3484at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:405" 3485$at_failed && at_fn_log_failure 3486$at_traceon; } 3487 3488 set +x 3489 $at_times_p && times >"$at_times_file" 3490) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3491read at_status <"$at_status_file" 3492#AT_STOP_35 3493#AT_START_36 3494at_fn_group_banner 36 'wordsplit.at:419' \ 3495 "getvar and env" " " 3496at_xfail=no 3497( 3498 $as_echo "36. $at_setup_line: testing $at_desc ..." 3499 $at_traceon 3500 3501 3502{ set +x 3503$as_echo "$at_srcdir/wordsplit.at:419: unset foo; unset x 3504TVAR=12 y=zwar wsp foo=bar x=quux y=xur <<'EOT' 3505begin \$foo \$TVAR \$x \$y end 3506EOT 3507" 3508at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:419" 3509( $at_check_trace; unset foo; unset x 3510TVAR=12 y=zwar wsp foo=bar x=quux y=xur <<'EOT' 3511begin $foo $TVAR $x $y end 3512EOT 3513 3514) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3515at_status=$? at_failed=false 3516$at_check_filter 3517at_fn_diff_devnull "$at_stderr" || at_failed=: 3518echo >>"$at_stdout"; $as_echo "NF: 6 35190: begin 35201: bar 35212: 12 35223: quux 35234: zwar 35245: end 3525TOTAL: 6 3526" | \ 3527 $at_diff - "$at_stdout" || at_failed=: 3528at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:419" 3529$at_failed && at_fn_log_failure 3530$at_traceon; } 3531 3532 set +x 3533 $at_times_p && times >"$at_times_file" 3534) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3535read at_status <"$at_status_file" 3536#AT_STOP_36 3537#AT_START_37 3538at_fn_group_banner 37 'wordsplit.at:435' \ 3539 "getvar, alternate value" " " 3540at_xfail=no 3541( 3542 $as_echo "37. $at_setup_line: testing $at_desc ..." 3543 $at_traceon 3544 3545 3546{ set +x 3547$as_echo "$at_srcdir/wordsplit.at:435: 3548 wsp foo=bar <<'EOT' 3549a \${foo:+isset} 3550EOT 3551" 3552at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:435" 3553( $at_check_trace; 3554 wsp foo=bar <<'EOT' 3555a ${foo:+isset} 3556EOT 3557 3558) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3559at_status=$? at_failed=false 3560$at_check_filter 3561at_fn_diff_devnull "$at_stderr" || at_failed=: 3562echo >>"$at_stdout"; $as_echo "NF: 2 35630: a 35641: isset 3565TOTAL: 2 3566" | \ 3567 $at_diff - "$at_stdout" || at_failed=: 3568at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:435" 3569$at_failed && at_fn_log_failure 3570$at_traceon; } 3571 3572 set +x 3573 $at_times_p && times >"$at_times_file" 3574) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3575read at_status <"$at_status_file" 3576#AT_STOP_37 3577#AT_START_38 3578at_fn_group_banner 38 'wordsplit.at:446' \ 3579 "ignore quotes" " " 3580at_xfail=no 3581( 3582 $as_echo "38. $at_setup_line: testing $at_desc ..." 3583 $at_traceon 3584 3585 3586{ set +x 3587$as_echo "$at_srcdir/wordsplit.at:446: 3588 wsp -noquote <<'EOT' 3589\"a text\" 3590EOT 3591" 3592at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:446" 3593( $at_check_trace; 3594 wsp -noquote <<'EOT' 3595"a text" 3596EOT 3597 3598) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3599at_status=$? at_failed=false 3600$at_check_filter 3601at_fn_diff_devnull "$at_stderr" || at_failed=: 3602echo >>"$at_stdout"; $as_echo "NF: 2 36030: \"\\\"a\" 36041: \"text\\\"\" 3605TOTAL: 2 3606" | \ 3607 $at_diff - "$at_stdout" || at_failed=: 3608at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:446" 3609$at_failed && at_fn_log_failure 3610$at_traceon; } 3611 3612 set +x 3613 $at_times_p && times >"$at_times_file" 3614) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3615read at_status <"$at_status_file" 3616#AT_STOP_38 3617#AT_START_39 3618at_fn_group_banner 39 'wordsplit.at:456' \ 3619 "custom delimiters (squeeze)" " " 3620at_xfail=no 3621( 3622 $as_echo "39. $at_setup_line: testing $at_desc ..." 3623 $at_traceon 3624 3625 3626{ set +x 3627$as_echo "$at_srcdir/wordsplit.at:456: 3628 wsp -delim : -nows -trimnl <<'EOT' 3629semicolon: separated::list: of :words 3630EOT 3631" 3632at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:456" 3633( $at_check_trace; 3634 wsp -delim : -nows -trimnl <<'EOT' 3635semicolon: separated::list: of :words 3636EOT 3637 3638) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3639at_status=$? at_failed=false 3640$at_check_filter 3641at_fn_diff_devnull "$at_stderr" || at_failed=: 3642echo >>"$at_stdout"; $as_echo "NF: 5 36430: semicolon 36441: \" separated\" 36452: list 36463: \" of \" 36474: words 3648TOTAL: 5 3649" | \ 3650 $at_diff - "$at_stdout" || at_failed=: 3651at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:456" 3652$at_failed && at_fn_log_failure 3653$at_traceon; } 3654 3655 set +x 3656 $at_times_p && times >"$at_times_file" 3657) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3658read at_status <"$at_status_file" 3659#AT_STOP_39 3660#AT_START_40 3661at_fn_group_banner 40 'wordsplit.at:468' \ 3662 "custom delimiters (no squeeze)" " " 3663at_xfail=no 3664( 3665 $as_echo "40. $at_setup_line: testing $at_desc ..." 3666 $at_traceon 3667 3668 3669{ set +x 3670$as_echo "$at_srcdir/wordsplit.at:468: 3671 wsp -delim : -nows -nosqueeze_delims -trimnl <<'EOT' 3672semicolon: separated::list: of :words 3673EOT 3674" 3675at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:468" 3676( $at_check_trace; 3677 wsp -delim : -nows -nosqueeze_delims -trimnl <<'EOT' 3678semicolon: separated::list: of :words 3679EOT 3680 3681) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3682at_status=$? at_failed=false 3683$at_check_filter 3684at_fn_diff_devnull "$at_stderr" || at_failed=: 3685echo >>"$at_stdout"; $as_echo "NF: 6 36860: semicolon 36871: \" separated\" 36882: \"\" 36893: list 36904: \" of \" 36915: words 3692TOTAL: 6 3693" | \ 3694 $at_diff - "$at_stdout" || at_failed=: 3695at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:468" 3696$at_failed && at_fn_log_failure 3697$at_traceon; } 3698 3699 set +x 3700 $at_times_p && times >"$at_times_file" 3701) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3702read at_status <"$at_status_file" 3703#AT_STOP_40 3704#AT_START_41 3705at_fn_group_banner 41 'wordsplit.at:481' \ 3706 "custom, with returned delimiters" " " 3707at_xfail=no 3708( 3709 $as_echo "41. $at_setup_line: testing $at_desc ..." 3710 $at_traceon 3711 3712 3713{ set +x 3714$as_echo "$at_srcdir/wordsplit.at:481: 3715 wsp -delim : -nows -trimnl -return_delims <<'EOT' 3716semicolon: separated::list: of :words 3717EOT 3718" 3719at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:481" 3720( $at_check_trace; 3721 wsp -delim : -nows -trimnl -return_delims <<'EOT' 3722semicolon: separated::list: of :words 3723EOT 3724 3725) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3726at_status=$? at_failed=false 3727$at_check_filter 3728at_fn_diff_devnull "$at_stderr" || at_failed=: 3729echo >>"$at_stdout"; $as_echo "NF: 9 37300: semicolon 37311: : 37322: \" separated\" 37333: : 37344: list 37355: : 37366: \" of \" 37377: : 37388: words 3739TOTAL: 9 3740" | \ 3741 $at_diff - "$at_stdout" || at_failed=: 3742at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:481" 3743$at_failed && at_fn_log_failure 3744$at_traceon; } 3745 3746 set +x 3747 $at_times_p && times >"$at_times_file" 3748) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3749read at_status <"$at_status_file" 3750#AT_STOP_41 3751#AT_START_42 3752at_fn_group_banner 42 'wordsplit.at:497' \ 3753 "custom, with returned & squeezed delimiters" " " 3754at_xfail=no 3755( 3756 $as_echo "42. $at_setup_line: testing $at_desc ..." 3757 $at_traceon 3758 3759 3760{ set +x 3761$as_echo "$at_srcdir/wordsplit.at:497: 3762 wsp -delim : -nows -trimnl -return_delims -nosqueeze_delims <<'EOT' 3763semicolon: separated::list: of :words 3764EOT 3765" 3766at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:497" 3767( $at_check_trace; 3768 wsp -delim : -nows -trimnl -return_delims -nosqueeze_delims <<'EOT' 3769semicolon: separated::list: of :words 3770EOT 3771 3772) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3773at_status=$? at_failed=false 3774$at_check_filter 3775at_fn_diff_devnull "$at_stderr" || at_failed=: 3776echo >>"$at_stdout"; $as_echo "NF: 10 37770: semicolon 37781: : 37792: \" separated\" 37803: : 37814: : 37825: list 37836: : 37847: \" of \" 37858: : 37869: words 3787TOTAL: 10 3788" | \ 3789 $at_diff - "$at_stdout" || at_failed=: 3790at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:497" 3791$at_failed && at_fn_log_failure 3792$at_traceon; } 3793 3794 set +x 3795 $at_times_p && times >"$at_times_file" 3796) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3797read at_status <"$at_status_file" 3798#AT_STOP_42 3799#AT_START_43 3800at_fn_group_banner 43 'wordsplit.at:516' \ 3801 "sed expressions" " " 3802at_xfail=no 3803( 3804 $as_echo "43. $at_setup_line: testing $at_desc ..." 3805 $at_traceon 3806 3807 3808{ set +x 3809$as_echo "$at_srcdir/wordsplit.at:516: 3810 wsp -sed <<'EOT' 3811arg1 s/foo/bar/g;s/bar baz/quz quux/ arg2 3812EOT 3813" 3814at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:516" 3815( $at_check_trace; 3816 wsp -sed <<'EOT' 3817arg1 s/foo/bar/g;s/bar baz/quz quux/ arg2 3818EOT 3819 3820) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3821at_status=$? at_failed=false 3822$at_check_filter 3823at_fn_diff_devnull "$at_stderr" || at_failed=: 3824echo >>"$at_stdout"; $as_echo "NF: 3 38250: arg1 38261: \"s/foo/bar/g;s/bar baz/quz quux/\" 38272: arg2 3828TOTAL: 3 3829" | \ 3830 $at_diff - "$at_stdout" || at_failed=: 3831at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:516" 3832$at_failed && at_fn_log_failure 3833$at_traceon; } 3834 3835 set +x 3836 $at_times_p && times >"$at_times_file" 3837) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3838read at_status <"$at_status_file" 3839#AT_STOP_43 3840#AT_START_44 3841at_fn_group_banner 44 'wordsplit.at:527' \ 3842 "C escapes on" " " 3843at_xfail=no 3844( 3845 $as_echo "44. $at_setup_line: testing $at_desc ..." 3846 $at_traceon 3847 3848 3849{ set +x 3850$as_echo "$at_srcdir/wordsplit.at:527: 3851 wsp -cescapes <<'EOT' 3852a\\ttab form\\ffeed and new\\nline 3853EOT 3854" 3855at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:527" 3856( $at_check_trace; 3857 wsp -cescapes <<'EOT' 3858a\ttab form\ffeed and new\nline 3859EOT 3860 3861) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3862at_status=$? at_failed=false 3863$at_check_filter 3864at_fn_diff_devnull "$at_stderr" || at_failed=: 3865echo >>"$at_stdout"; $as_echo "NF: 4 38660: a\\ttab 38671: form\\ffeed 38682: and 38693: new\\nline 3870TOTAL: 4 3871" | \ 3872 $at_diff - "$at_stdout" || at_failed=: 3873at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:527" 3874$at_failed && at_fn_log_failure 3875$at_traceon; } 3876 3877 set +x 3878 $at_times_p && times >"$at_times_file" 3879) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3880read at_status <"$at_status_file" 3881#AT_STOP_44 3882#AT_START_45 3883at_fn_group_banner 45 'wordsplit.at:537' \ 3884 "C escapes off" " " 3885at_xfail=no 3886( 3887 $as_echo "45. $at_setup_line: testing $at_desc ..." 3888 $at_traceon 3889 3890 3891{ set +x 3892$as_echo "$at_srcdir/wordsplit.at:537: 3893 wsp -nocescapes <<'EOT' 3894a\\ttab form\\ffeed and new\\nline 3895EOT 3896" 3897at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:537" 3898( $at_check_trace; 3899 wsp -nocescapes <<'EOT' 3900a\ttab form\ffeed and new\nline 3901EOT 3902 3903) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3904at_status=$? at_failed=false 3905$at_check_filter 3906at_fn_diff_devnull "$at_stderr" || at_failed=: 3907echo >>"$at_stdout"; $as_echo "NF: 4 39080: attab 39091: formffeed 39102: and 39113: newnline 3912TOTAL: 4 3913" | \ 3914 $at_diff - "$at_stdout" || at_failed=: 3915at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:537" 3916$at_failed && at_fn_log_failure 3917$at_traceon; } 3918 3919 set +x 3920 $at_times_p && times >"$at_times_file" 3921) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3922read at_status <"$at_status_file" 3923#AT_STOP_45 3924#AT_START_46 3925at_fn_group_banner 46 'wordsplit.at:547' \ 3926 "ws elimination" " " 3927at_xfail=no 3928( 3929 $as_echo "46. $at_setup_line: testing $at_desc ..." 3930 $at_traceon 3931 3932 3933{ set +x 3934$as_echo "$at_srcdir/wordsplit.at:547: 3935 wsp -delim ' ()' -ws -return_delims <<'EOT' 3936( list items ) 3937EOT 3938" 3939at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:547" 3940( $at_check_trace; 3941 wsp -delim ' ()' -ws -return_delims <<'EOT' 3942( list items ) 3943EOT 3944 3945) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3946at_status=$? at_failed=false 3947$at_check_filter 3948at_fn_diff_devnull "$at_stderr" || at_failed=: 3949echo >>"$at_stdout"; $as_echo "NF: 4 39500: ( 39511: list 39522: items 39533: ) 3954TOTAL: 4 3955" | \ 3956 $at_diff - "$at_stdout" || at_failed=: 3957at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:547" 3958$at_failed && at_fn_log_failure 3959$at_traceon; } 3960 3961 set +x 3962 $at_times_p && times >"$at_times_file" 3963) 5>&1 2>&1 7>&- | eval $at_tee_pipe 3964read at_status <"$at_status_file" 3965#AT_STOP_46 3966#AT_START_47 3967at_fn_group_banner 47 'wordsplit.at:557' \ 3968 "ws elimination + return delim" " " 3969at_xfail=no 3970( 3971 $as_echo "47. $at_setup_line: testing $at_desc ..." 3972 $at_traceon 3973 3974 3975{ set +x 3976$as_echo "$at_srcdir/wordsplit.at:557: 3977 wsp -nodefault -novar -nocmd -delim \":,\" -return_delims -ws -dquote <<'EOT' 3978\"foo\" : \"bar\", \"quux\" : \"baaz\" 3979EOT 3980" 3981at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:557" 3982( $at_check_trace; 3983 wsp -nodefault -novar -nocmd -delim ":," -return_delims -ws -dquote <<'EOT' 3984"foo" : "bar", "quux" : "baaz" 3985EOT 3986 3987) >>"$at_stdout" 2>>"$at_stderr" 5>&- 3988at_status=$? at_failed=false 3989$at_check_filter 3990at_fn_diff_devnull "$at_stderr" || at_failed=: 3991echo >>"$at_stdout"; $as_echo "NF: 7 39920: foo 39931: : 39942: bar 39953: , 39964: quux 39975: : 39986: baaz 3999TOTAL: 7 4000" | \ 4001 $at_diff - "$at_stdout" || at_failed=: 4002at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:557" 4003$at_failed && at_fn_log_failure 4004$at_traceon; } 4005 4006 set +x 4007 $at_times_p && times >"$at_times_file" 4008) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4009read at_status <"$at_status_file" 4010#AT_STOP_47 4011#AT_START_48 4012at_fn_group_banner 48 'wordsplit.at:571' \ 4013 "empty quotes" " " 4014at_xfail=no 4015( 4016 $as_echo "48. $at_setup_line: testing $at_desc ..." 4017 $at_traceon 4018 4019 4020{ set +x 4021$as_echo "$at_srcdir/wordsplit.at:571: 4022 wsp -delim : -ws -return_delims <<'EOT' 4023t=\"\" 4024EOT 4025" 4026at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:571" 4027( $at_check_trace; 4028 wsp -delim : -ws -return_delims <<'EOT' 4029t="" 4030EOT 4031 4032) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4033at_status=$? at_failed=false 4034$at_check_filter 4035at_fn_diff_devnull "$at_stderr" || at_failed=: 4036echo >>"$at_stdout"; $as_echo "NF: 1 40370: t= 4038TOTAL: 1 4039" | \ 4040 $at_diff - "$at_stdout" || at_failed=: 4041at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:571" 4042$at_failed && at_fn_log_failure 4043$at_traceon; } 4044 4045 set +x 4046 $at_times_p && times >"$at_times_file" 4047) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4048read at_status <"$at_status_file" 4049#AT_STOP_48 4050#AT_START_49 4051at_fn_group_banner 49 'wordsplit.at:578' \ 4052 "delimiter following empty quotes" " " 4053at_xfail=no 4054( 4055 $as_echo "49. $at_setup_line: testing $at_desc ..." 4056 $at_traceon 4057 4058 4059{ set +x 4060$as_echo "$at_srcdir/wordsplit.at:578: 4061 wsp -delim : -ws -return_delims <<'EOT' 4062t=\"\":r 4063EOT 4064" 4065at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:578" 4066( $at_check_trace; 4067 wsp -delim : -ws -return_delims <<'EOT' 4068t="":r 4069EOT 4070 4071) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4072at_status=$? at_failed=false 4073$at_check_filter 4074at_fn_diff_devnull "$at_stderr" || at_failed=: 4075echo >>"$at_stdout"; $as_echo "NF: 3 40760: t= 40771: : 40782: r 4079TOTAL: 3 4080" | \ 4081 $at_diff - "$at_stdout" || at_failed=: 4082at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:578" 4083$at_failed && at_fn_log_failure 4084$at_traceon; } 4085 4086 set +x 4087 $at_times_p && times >"$at_times_file" 4088) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4089read at_status <"$at_status_file" 4090#AT_STOP_49 4091#AT_START_50 4092at_fn_group_banner 50 'wordsplit.at:588' \ 4093 "suppress ws trimming within quotes" " " 4094at_xfail=no 4095( 4096 $as_echo "50. $at_setup_line: testing $at_desc ..." 4097 $at_traceon 4098 4099 4100{ set +x 4101$as_echo "$at_srcdir/wordsplit.at:588: 4102 wsp -default -delim , -ws -return_delims <<'EOT' 4103nocomponent,nonewline, formatfield=\"In message %{text}, \" 4104EOT 4105" 4106at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:588" 4107( $at_check_trace; 4108 wsp -default -delim , -ws -return_delims <<'EOT' 4109nocomponent,nonewline, formatfield="In message %{text}, " 4110EOT 4111 4112) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4113at_status=$? at_failed=false 4114$at_check_filter 4115at_fn_diff_devnull "$at_stderr" || at_failed=: 4116echo >>"$at_stdout"; $as_echo "NF: 5 41170: nocomponent 41181: , 41192: nonewline 41203: , 41214: \"formatfield=In message %{text}, \" 4122TOTAL: 5 4123" | \ 4124 $at_diff - "$at_stdout" || at_failed=: 4125at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:588" 4126$at_failed && at_fn_log_failure 4127$at_traceon; } 4128 4129 set +x 4130 $at_times_p && times >"$at_times_file" 4131) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4132read at_status <"$at_status_file" 4133#AT_STOP_50 4134#AT_START_51 4135at_fn_group_banner 51 'wordsplit.at:601' \ 4136 "unescape" " " 4137at_xfail=no 4138( 4139 $as_echo "51. $at_setup_line: testing $at_desc ..." 4140 $at_traceon 4141 4142 4143{ set +x 4144$as_echo "$at_srcdir/wordsplit.at:601: 4145 wsp -nodefault -novar -nocmd -quote -escape ':+:\\\\\"\"' <<'EOT' 4146\\Seen \"quote \\\"\" \"bs \\\\\" 4147EOT 4148" 4149at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:601" 4150( $at_check_trace; 4151 wsp -nodefault -novar -nocmd -quote -escape ':+:\\""' <<'EOT' 4152\Seen "quote \"" "bs \\" 4153EOT 4154 4155) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4156at_status=$? at_failed=false 4157$at_check_filter 4158at_fn_diff_devnull "$at_stderr" || at_failed=: 4159echo >>"$at_stdout"; $as_echo "NF: 3 41600: \\\\Seen 41611: \"quote \\\"\" 41622: \"bs \\\\\" 4163TOTAL: 3 4164" | \ 4165 $at_diff - "$at_stdout" || at_failed=: 4166at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:601" 4167$at_failed && at_fn_log_failure 4168$at_traceon; } 4169 4170 set +x 4171 $at_times_p && times >"$at_times_file" 4172) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4173read at_status <"$at_status_file" 4174#AT_STOP_51 4175#AT_START_52 4176at_fn_group_banner 52 'wordsplit.at:612' \ 4177 "unescape: word/quote" " " 4178at_xfail=no 4179( 4180 $as_echo "52. $at_setup_line: testing $at_desc ..." 4181 $at_traceon 4182 4183 4184{ set +x 4185$as_echo "$at_srcdir/wordsplit.at:612: 4186 wsp -nodefault -novar -nocmd -quote -escape-word '\\\\\"\"' -escape-quote ':+0x:\\\\\"\"' <<'EOT' 4187\\Seen \"quote \\\"\" \"bs \\\\\" \"3\\x31 \\101\" 3\\x31 \\101 4188EOT 4189" 4190at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:612" 4191( $at_check_trace; 4192 wsp -nodefault -novar -nocmd -quote -escape-word '\\""' -escape-quote ':+0x:\\""' <<'EOT' 4193\Seen "quote \"" "bs \\" "3\x31 \101" 3\x31 \101 4194EOT 4195 4196) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4197at_status=$? at_failed=false 4198$at_check_filter 4199at_fn_diff_devnull "$at_stderr" || at_failed=: 4200echo >>"$at_stdout"; $as_echo "NF: 6 42010: Seen 42021: \"quote \\\"\" 42032: \"bs \\\\\" 42043: \"31 A\" 42054: 3x31 42065: 101 4207TOTAL: 6 4208" | \ 4209 $at_diff - "$at_stdout" || at_failed=: 4210at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:612" 4211$at_failed && at_fn_log_failure 4212$at_traceon; } 4213 4214 set +x 4215 $at_times_p && times >"$at_times_file" 4216) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4217read at_status <"$at_status_file" 4218#AT_STOP_52 4219#AT_START_53 4220at_fn_group_banner 53 'wordsplit.at:626' \ 4221 "dquote" " " 4222at_xfail=no 4223( 4224 $as_echo "53. $at_setup_line: testing $at_desc ..." 4225 $at_traceon 4226 4227 4228{ set +x 4229$as_echo "$at_srcdir/wordsplit.at:626: 4230 wsp -nodefault -novar -nocmd -dquote <<'EOT' 4231a \"quoted example\" isn't it 4232EOT 4233" 4234at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:626" 4235( $at_check_trace; 4236 wsp -nodefault -novar -nocmd -dquote <<'EOT' 4237a "quoted example" isn't it 4238EOT 4239 4240) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4241at_status=$? at_failed=false 4242$at_check_filter 4243at_fn_diff_devnull "$at_stderr" || at_failed=: 4244echo >>"$at_stdout"; $as_echo "NF: 4 42450: a 42461: \"quoted example\" 42472: isn't 42483: it 4249TOTAL: 4 4250" | \ 4251 $at_diff - "$at_stdout" || at_failed=: 4252at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:626" 4253$at_failed && at_fn_log_failure 4254$at_traceon; } 4255 4256 set +x 4257 $at_times_p && times >"$at_times_file" 4258) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4259read at_status <"$at_status_file" 4260#AT_STOP_53 4261#AT_START_54 4262at_fn_group_banner 54 'wordsplit.at:636' \ 4263 "squote" " " 4264at_xfail=no 4265( 4266 $as_echo "54. $at_setup_line: testing $at_desc ..." 4267 $at_traceon 4268 4269 4270{ set +x 4271$as_echo "$at_srcdir/wordsplit.at:636: 4272 wsp -nodefault -novar -nocmd -squote <<'EOT' 4273a 'quoted example' isn\"t it 4274EOT 4275" 4276at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:636" 4277( $at_check_trace; 4278 wsp -nodefault -novar -nocmd -squote <<'EOT' 4279a 'quoted example' isn"t it 4280EOT 4281 4282) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4283at_status=$? at_failed=false 4284$at_check_filter 4285at_fn_diff_devnull "$at_stderr" || at_failed=: 4286echo >>"$at_stdout"; $as_echo "NF: 4 42870: a 42881: \"quoted example\" 42892: \"isn\\\"t\" 42903: it 4291TOTAL: 4 4292" | \ 4293 $at_diff - "$at_stdout" || at_failed=: 4294at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:636" 4295$at_failed && at_fn_log_failure 4296$at_traceon; } 4297 4298 set +x 4299 $at_times_p && times >"$at_times_file" 4300) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4301read at_status <"$at_status_file" 4302#AT_STOP_54 4303#AT_START_55 4304at_fn_group_banner 55 'wordsplit.at:648' \ 4305 "incremental" " " 4306at_xfail=no 4307( 4308 $as_echo "55. $at_setup_line: testing $at_desc ..." 4309 $at_traceon 4310 4311 4312{ set +x 4313$as_echo "$at_srcdir/wordsplit.at:648: 4314 wsp -incremental <<'EOT' 4315incremental \"input test\" line 4316 4317 4318 4319EOT 4320" 4321at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:648" 4322( $at_check_trace; 4323 wsp -incremental <<'EOT' 4324incremental "input test" line 4325 4326 4327 4328EOT 4329 4330) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4331at_status=$? at_failed=false 4332$at_check_filter 4333echo >>"$at_stderr"; $as_echo "input exhausted 4334" | \ 4335 $at_diff - "$at_stderr" || at_failed=: 4336echo >>"$at_stdout"; $as_echo "NF: 1 43370: incremental 4338TOTAL: 1 4339NF: 1 43400: \"input test\" 4341TOTAL: 2 4342NF: 1 43430: line 4344TOTAL: 3 4345" | \ 4346 $at_diff - "$at_stdout" || at_failed=: 4347at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:648" 4348$at_failed && at_fn_log_failure 4349$at_traceon; } 4350 4351 set +x 4352 $at_times_p && times >"$at_times_file" 4353) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4354read at_status <"$at_status_file" 4355#AT_STOP_55 4356#AT_START_56 4357at_fn_group_banner 56 'wordsplit.at:666' \ 4358 "incremental append" " " 4359at_xfail=no 4360( 4361 $as_echo "56. $at_setup_line: testing $at_desc ..." 4362 $at_traceon 4363 4364 4365{ set +x 4366$as_echo "$at_srcdir/wordsplit.at:666: 4367 wsp -incremental -append <<'EOT' 4368incremental \"input test\" line 4369 4370 4371 4372EOT 4373" 4374at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:666" 4375( $at_check_trace; 4376 wsp -incremental -append <<'EOT' 4377incremental "input test" line 4378 4379 4380 4381EOT 4382 4383) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4384at_status=$? at_failed=false 4385$at_check_filter 4386echo >>"$at_stderr"; $as_echo "input exhausted 4387" | \ 4388 $at_diff - "$at_stderr" || at_failed=: 4389echo >>"$at_stdout"; $as_echo "NF: 1 43900: incremental 4391TOTAL: 1 4392NF: 2 43930: incremental 43941: \"input test\" 4395TOTAL: 2 4396NF: 3 43970: incremental 43981: \"input test\" 43992: line 4400TOTAL: 3 4401" | \ 4402 $at_diff - "$at_stdout" || at_failed=: 4403at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:666" 4404$at_failed && at_fn_log_failure 4405$at_traceon; } 4406 4407 set +x 4408 $at_times_p && times >"$at_times_file" 4409) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4410read at_status <"$at_status_file" 4411#AT_STOP_56 4412#AT_START_57 4413at_fn_group_banner 57 'wordsplit.at:687' \ 4414 "incremental ws" " " 4415at_xfail=no 4416( 4417 $as_echo "57. $at_setup_line: testing $at_desc ..." 4418 $at_traceon 4419 4420 4421{ set +x 4422$as_echo "$at_srcdir/wordsplit.at:687: 4423 wsp -return_delims -nosqueeze_delims -incremental -ws <<'EOT' 4424a list test 4425 4426 4427 4428EOT 4429" 4430at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:687" 4431( $at_check_trace; 4432 wsp -return_delims -nosqueeze_delims -incremental -ws <<'EOT' 4433a list test 4434 4435 4436 4437EOT 4438 4439) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4440at_status=$? at_failed=false 4441$at_check_filter 4442echo >>"$at_stderr"; $as_echo "input exhausted 4443" | \ 4444 $at_diff - "$at_stderr" || at_failed=: 4445echo >>"$at_stdout"; $as_echo "NF: 1 44460: a 4447TOTAL: 1 4448NF: 1 44490: list 4450TOTAL: 2 4451NF: 1 44520: test 4453TOTAL: 3 4454" | \ 4455 $at_diff - "$at_stdout" || at_failed=: 4456at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:687" 4457$at_failed && at_fn_log_failure 4458$at_traceon; } 4459 4460 set +x 4461 $at_times_p && times >"$at_times_file" 4462) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4463read at_status <"$at_status_file" 4464#AT_STOP_57 4465#AT_START_58 4466at_fn_group_banner 58 'wordsplit.at:706' \ 4467 "incremental nosplit" " " 4468at_xfail=no 4469( 4470 $as_echo "58. $at_setup_line: testing $at_desc ..." 4471 $at_traceon 4472 4473 4474{ set +x 4475$as_echo "$at_srcdir/wordsplit.at:706: 4476 wsp -incremental -nosplit <<'EOT' 4477incremental \"input test\" line 4478 4479EOT 4480" 4481at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:706" 4482( $at_check_trace; 4483 wsp -incremental -nosplit <<'EOT' 4484incremental "input test" line 4485 4486EOT 4487 4488) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4489at_status=$? at_failed=false 4490$at_check_filter 4491echo >>"$at_stderr"; $as_echo "input exhausted 4492" | \ 4493 $at_diff - "$at_stderr" || at_failed=: 4494echo >>"$at_stdout"; $as_echo "NF: 1 44950: \"incremental input test line\" 4496TOTAL: 1 4497" | \ 4498 $at_diff - "$at_stdout" || at_failed=: 4499at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:706" 4500$at_failed && at_fn_log_failure 4501$at_traceon; } 4502 4503 set +x 4504 $at_times_p && times >"$at_times_file" 4505) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4506read at_status <"$at_status_file" 4507#AT_STOP_58 4508#AT_START_59 4509at_fn_group_banner 59 'wordsplit.at:716' \ 4510 "simple command substitution" " " 4511at_xfail=no 4512( 4513 $as_echo "59. $at_setup_line: testing $at_desc ..." 4514 $at_traceon 4515 4516 4517{ set +x 4518$as_echo "$at_srcdir/wordsplit.at:716: 4519 wsp -cmd <<'EOT' 4520begin \$(words a b) end 4521EOT 4522" 4523at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:716" 4524( $at_check_trace; 4525 wsp -cmd <<'EOT' 4526begin $(words a b) end 4527EOT 4528 4529) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4530at_status=$? at_failed=false 4531$at_check_filter 4532at_fn_diff_devnull "$at_stderr" || at_failed=: 4533echo >>"$at_stdout"; $as_echo "NF: 4 45340: begin 45351: a 45362: b 45373: end 4538TOTAL: 4 4539" | \ 4540 $at_diff - "$at_stdout" || at_failed=: 4541at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:716" 4542$at_failed && at_fn_log_failure 4543$at_traceon; } 4544 4545 set +x 4546 $at_times_p && times >"$at_times_file" 4547) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4548read at_status <"$at_status_file" 4549#AT_STOP_59 4550#AT_START_60 4551at_fn_group_banner 60 'wordsplit.at:726' \ 4552 "quoted command substitution" " " 4553at_xfail=no 4554( 4555 $as_echo "60. $at_setup_line: testing $at_desc ..." 4556 $at_traceon 4557 4558 4559{ set +x 4560$as_echo "$at_srcdir/wordsplit.at:726: 4561 wsp -cmd <<'EOT' 4562begin \"\$(words a b)\" end 4563EOT 4564" 4565at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:726" 4566( $at_check_trace; 4567 wsp -cmd <<'EOT' 4568begin "$(words a b)" end 4569EOT 4570 4571) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4572at_status=$? at_failed=false 4573$at_check_filter 4574at_fn_diff_devnull "$at_stderr" || at_failed=: 4575echo >>"$at_stdout"; $as_echo "NF: 3 45760: begin 45771: \"a b\" 45782: end 4579TOTAL: 3 4580" | \ 4581 $at_diff - "$at_stdout" || at_failed=: 4582at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:726" 4583$at_failed && at_fn_log_failure 4584$at_traceon; } 4585 4586 set +x 4587 $at_times_p && times >"$at_times_file" 4588) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4589read at_status <"$at_status_file" 4590#AT_STOP_60 4591#AT_START_61 4592at_fn_group_banner 61 'wordsplit.at:735' \ 4593 "coalesced command substitution" " " 4594at_xfail=no 4595( 4596 $as_echo "61. $at_setup_line: testing $at_desc ..." 4597 $at_traceon 4598 4599 4600{ set +x 4601$as_echo "$at_srcdir/wordsplit.at:735: 4602 wsp -cmd <<'EOT' 4603begin(\$(words a b))end 4604EOT 4605" 4606at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:735" 4607( $at_check_trace; 4608 wsp -cmd <<'EOT' 4609begin($(words a b))end 4610EOT 4611 4612) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4613at_status=$? at_failed=false 4614$at_check_filter 4615at_fn_diff_devnull "$at_stderr" || at_failed=: 4616echo >>"$at_stdout"; $as_echo "NF: 2 46170: begin(a 46181: b)end 4619TOTAL: 2 4620" | \ 4621 $at_diff - "$at_stdout" || at_failed=: 4622at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:735" 4623$at_failed && at_fn_log_failure 4624$at_traceon; } 4625 4626 set +x 4627 $at_times_p && times >"$at_times_file" 4628) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4629read at_status <"$at_status_file" 4630#AT_STOP_61 4631#AT_START_62 4632at_fn_group_banner 62 'wordsplit.at:743' \ 4633 "quoted coalesced command substitution" " " 4634at_xfail=no 4635( 4636 $as_echo "62. $at_setup_line: testing $at_desc ..." 4637 $at_traceon 4638 4639 4640{ set +x 4641$as_echo "$at_srcdir/wordsplit.at:743: 4642 wsp -cmd <<'EOT' 4643\"begin(\$(words a b))end\" 4644EOT 4645" 4646at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:743" 4647( $at_check_trace; 4648 wsp -cmd <<'EOT' 4649"begin($(words a b))end" 4650EOT 4651 4652) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4653at_status=$? at_failed=false 4654$at_check_filter 4655at_fn_diff_devnull "$at_stderr" || at_failed=: 4656echo >>"$at_stdout"; $as_echo "NF: 1 46570: \"begin(a b)end\" 4658TOTAL: 1 4659" | \ 4660 $at_diff - "$at_stdout" || at_failed=: 4661at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:743" 4662$at_failed && at_fn_log_failure 4663$at_traceon; } 4664 4665 set +x 4666 $at_times_p && times >"$at_times_file" 4667) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4668read at_status <"$at_status_file" 4669#AT_STOP_62 4670#AT_START_63 4671at_fn_group_banner 63 'wordsplit.at:750' \ 4672 "variable and command substitution" " " 4673at_xfail=no 4674( 4675 $as_echo "63. $at_setup_line: testing $at_desc ..." 4676 $at_traceon 4677 4678 4679{ set +x 4680$as_echo "$at_srcdir/wordsplit.at:750: 4681X=a Y=b wsp -cmd -var <<'EOT' 4682begin \$X \$(words \$X \$Y) end 4683EOT 4684" 4685at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:750" 4686( $at_check_trace; 4687X=a Y=b wsp -cmd -var <<'EOT' 4688begin $X $(words $X $Y) end 4689EOT 4690 4691) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4692at_status=$? at_failed=false 4693$at_check_filter 4694at_fn_diff_devnull "$at_stderr" || at_failed=: 4695echo >>"$at_stdout"; $as_echo "NF: 5 46960: begin 46971: a 46982: a 46993: b 47004: end 4701TOTAL: 5 4702" | \ 4703 $at_diff - "$at_stdout" || at_failed=: 4704at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:750" 4705$at_failed && at_fn_log_failure 4706$at_traceon; } 4707 4708 set +x 4709 $at_times_p && times >"$at_times_file" 4710) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4711read at_status <"$at_status_file" 4712#AT_STOP_63 4713#AT_START_64 4714at_fn_group_banner 64 'wordsplit.at:761' \ 4715 "variable expansion and command substitution in quotes" "" 4716at_xfail=no 4717( 4718 $as_echo "64. $at_setup_line: testing $at_desc ..." 4719 $at_traceon 4720 4721 4722{ set +x 4723$as_echo "$at_srcdir/wordsplit.at:761: 4724X=a Y=b BEGIN=begin wsp -cmd -var <<'EOT' 4725\"\${BEGIN}(\$(words \$X \$Y))end\" 4726EOT 4727" 4728at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:761" 4729( $at_check_trace; 4730X=a Y=b BEGIN=begin wsp -cmd -var <<'EOT' 4731"${BEGIN}($(words $X $Y))end" 4732EOT 4733 4734) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4735at_status=$? at_failed=false 4736$at_check_filter 4737at_fn_diff_devnull "$at_stderr" || at_failed=: 4738echo >>"$at_stdout"; $as_echo "NF: 1 47390: \"begin(a b)end\" 4740TOTAL: 1 4741" | \ 4742 $at_diff - "$at_stdout" || at_failed=: 4743at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:761" 4744$at_failed && at_fn_log_failure 4745$at_traceon; } 4746 4747 set +x 4748 $at_times_p && times >"$at_times_file" 4749) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4750read at_status <"$at_status_file" 4751#AT_STOP_64 4752#AT_START_65 4753at_fn_group_banner 65 'wordsplit.at:768' \ 4754 "nested commands" " " 4755at_xfail=no 4756( 4757 $as_echo "65. $at_setup_line: testing $at_desc ..." 4758 $at_traceon 4759 4760 4761{ set +x 4762$as_echo "$at_srcdir/wordsplit.at:768: 4763SUFFIX=put wsp -cmd -var <<'EOT' 4764\$(words output \$(words in\$SUFFIX text) end) 4765EOT 4766" 4767at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:768" 4768( $at_check_trace; 4769SUFFIX=put wsp -cmd -var <<'EOT' 4770$(words output $(words in$SUFFIX text) end) 4771EOT 4772 4773) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4774at_status=$? at_failed=false 4775$at_check_filter 4776at_fn_diff_devnull "$at_stderr" || at_failed=: 4777echo >>"$at_stdout"; $as_echo "NF: 4 47780: output 47791: input 47802: text 47813: end 4782TOTAL: 4 4783" | \ 4784 $at_diff - "$at_stdout" || at_failed=: 4785at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:768" 4786$at_failed && at_fn_log_failure 4787$at_traceon; } 4788 4789 set +x 4790 $at_times_p && times >"$at_times_file" 4791) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4792read at_status <"$at_status_file" 4793#AT_STOP_65 4794#AT_START_66 4795at_fn_group_banner 66 'wordsplit.at:779' \ 4796 "pathname expansion" " " 4797at_xfail=no 4798( 4799 $as_echo "66. $at_setup_line: testing $at_desc ..." 4800 $at_traceon 4801 4802 4803{ set +x 4804$as_echo "$at_srcdir/wordsplit.at:781: 4805mkdir dir 4806> dir/1.c 4807> dir/2.c 4808> dir/3.b 4809 4810wsp -pathexpand<<'EOT' 4811begin dir/*.c end 4812EOT 4813" 4814at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:781" 4815( $at_check_trace; 4816mkdir dir 4817> dir/1.c 4818> dir/2.c 4819> dir/3.b 4820 4821wsp -pathexpand<<'EOT' 4822begin dir/*.c end 4823EOT 4824 4825) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4826at_status=$? at_failed=false 4827$at_check_filter 4828at_fn_diff_devnull "$at_stderr" || at_failed=: 4829echo >>"$at_stdout"; $as_echo "NF: 4 48300: begin 48311: dir/1.c 48322: dir/2.c 48333: end 4834TOTAL: 4 4835" | \ 4836 $at_diff - "$at_stdout" || at_failed=: 4837at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:781" 4838$at_failed && at_fn_log_failure 4839$at_traceon; } 4840 4841 set +x 4842 $at_times_p && times >"$at_times_file" 4843) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4844read at_status <"$at_status_file" 4845#AT_STOP_66 4846#AT_START_67 4847at_fn_group_banner 67 'wordsplit.at:801' \ 4848 "pathname expansion: no match" " " 4849at_xfail=no 4850( 4851 $as_echo "67. $at_setup_line: testing $at_desc ..." 4852 $at_traceon 4853 4854 4855{ set +x 4856$as_echo "$at_srcdir/wordsplit.at:803: 4857mkdir dir 4858> dir/1.c 4859> dir/2.b 4860 4861wsp -pathexpand<<'EOT' 4862begin dir/*.d end 4863EOT 4864" 4865at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:803" 4866( $at_check_trace; 4867mkdir dir 4868> dir/1.c 4869> dir/2.b 4870 4871wsp -pathexpand<<'EOT' 4872begin dir/*.d end 4873EOT 4874 4875) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4876at_status=$? at_failed=false 4877$at_check_filter 4878at_fn_diff_devnull "$at_stderr" || at_failed=: 4879echo >>"$at_stdout"; $as_echo "NF: 3 48800: begin 48811: dir/*.d 48822: end 4883TOTAL: 3 4884" | \ 4885 $at_diff - "$at_stdout" || at_failed=: 4886at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:803" 4887$at_failed && at_fn_log_failure 4888$at_traceon; } 4889 4890 set +x 4891 $at_times_p && times >"$at_times_file" 4892) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4893read at_status <"$at_status_file" 4894#AT_STOP_67 4895#AT_START_68 4896at_fn_group_banner 68 'wordsplit.at:821' \ 4897 "pathname expansion: nullglob" " " 4898at_xfail=no 4899( 4900 $as_echo "68. $at_setup_line: testing $at_desc ..." 4901 $at_traceon 4902 4903 4904{ set +x 4905$as_echo "$at_srcdir/wordsplit.at:823: 4906mkdir dir 4907> dir/1.c 4908> dir/2.b 4909 4910wsp -pathexpand -nullglob<<'EOT' 4911begin dir/*.d end 4912EOT 4913" 4914at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:823" 4915( $at_check_trace; 4916mkdir dir 4917> dir/1.c 4918> dir/2.b 4919 4920wsp -pathexpand -nullglob<<'EOT' 4921begin dir/*.d end 4922EOT 4923 4924) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4925at_status=$? at_failed=false 4926$at_check_filter 4927at_fn_diff_devnull "$at_stderr" || at_failed=: 4928echo >>"$at_stdout"; $as_echo "NF: 2 49290: begin 49301: end 4931TOTAL: 2 4932" | \ 4933 $at_diff - "$at_stdout" || at_failed=: 4934at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:823" 4935$at_failed && at_fn_log_failure 4936$at_traceon; } 4937 4938 set +x 4939 $at_times_p && times >"$at_times_file" 4940) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4941read at_status <"$at_status_file" 4942#AT_STOP_68 4943#AT_START_69 4944at_fn_group_banner 69 'wordsplit.at:840' \ 4945 "pathname expansion: failglob" " " 4946at_xfail=no 4947( 4948 $as_echo "69. $at_setup_line: testing $at_desc ..." 4949 $at_traceon 4950 4951 4952{ set +x 4953$as_echo "$at_srcdir/wordsplit.at:842: 4954mkdir dir 4955> dir/1.c 4956> dir/2.b 4957 4958wsp -pathexpand -failglob<<'EOT' 4959begin dir/*.d end 4960EOT 4961" 4962at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:842" 4963( $at_check_trace; 4964mkdir dir 4965> dir/1.c 4966> dir/2.b 4967 4968wsp -pathexpand -failglob<<'EOT' 4969begin dir/*.d end 4970EOT 4971 4972) >>"$at_stdout" 2>>"$at_stderr" 5>&- 4973at_status=$? at_failed=false 4974$at_check_filter 4975echo >>"$at_stderr"; $as_echo "no files match pattern dir/*.d 4976" | \ 4977 $at_diff - "$at_stderr" || at_failed=: 4978at_fn_diff_devnull "$at_stdout" || at_failed=: 4979at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:842" 4980$at_failed && at_fn_log_failure 4981$at_traceon; } 4982 4983 set +x 4984 $at_times_p && times >"$at_times_file" 4985) 5>&1 2>&1 7>&- | eval $at_tee_pipe 4986read at_status <"$at_status_file" 4987#AT_STOP_69 4988#AT_START_70 4989at_fn_group_banner 70 'wordsplit.at:857' \ 4990 "append" " " 4991at_xfail=no 4992( 4993 $as_echo "70. $at_setup_line: testing $at_desc ..." 4994 $at_traceon 4995 4996 4997{ set +x 4998$as_echo "$at_srcdir/wordsplit.at:857: 4999 wsp -append-args extra arguments follow <<'EOT' 5000some words and 5001EOT 5002" 5003at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:857" 5004( $at_check_trace; 5005 wsp -append-args extra arguments follow <<'EOT' 5006some words and 5007EOT 5008 5009) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5010at_status=$? at_failed=false 5011$at_check_filter 5012at_fn_diff_devnull "$at_stderr" || at_failed=: 5013echo >>"$at_stdout"; $as_echo "NF: 6 50140: some 50151: words 50162: and 50173: extra 50184: arguments 50195: follow 5020TOTAL: 3 5021" | \ 5022 $at_diff - "$at_stdout" || at_failed=: 5023at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:857" 5024$at_failed && at_fn_log_failure 5025$at_traceon; } 5026 5027 set +x 5028 $at_times_p && times >"$at_times_file" 5029) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5030read at_status <"$at_status_file" 5031#AT_STOP_70 5032#AT_START_71 5033at_fn_group_banner 71 'wordsplit.at:869' \ 5034 "append + dooffs + env" " " 5035at_xfail=no 5036( 5037 $as_echo "71. $at_setup_line: testing $at_desc ..." 5038 $at_traceon 5039 5040 5041{ set +x 5042$as_echo "$at_srcdir/wordsplit.at:869: 5043 wsp -env none -dooffs preface words -- V=2 -append-args extra arguments follow <<'EOT' 5044some words and var=\$V 5045EOT 5046" 5047at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:869" 5048( $at_check_trace; 5049 wsp -env none -dooffs preface words -- V=2 -append-args extra arguments follow <<'EOT' 5050some words and var=$V 5051EOT 5052 5053) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5054at_status=$? at_failed=false 5055$at_check_filter 5056at_fn_diff_devnull "$at_stderr" || at_failed=: 5057echo >>"$at_stdout"; $as_echo "NF: 7 (2) 5058(0): preface 5059(1): words 50602: some 50613: words 50624: and 50635: var=2 50646: extra 50657: arguments 50668: follow 5067TOTAL: 4 5068" | \ 5069 $at_diff - "$at_stdout" || at_failed=: 5070at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:869" 5071$at_failed && at_fn_log_failure 5072$at_traceon; } 5073 5074 set +x 5075 $at_times_p && times >"$at_times_file" 5076) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5077read at_status <"$at_status_file" 5078#AT_STOP_71 5079#AT_START_72 5080at_fn_group_banner 72 'wordsplit.at:886' \ 5081 "maxwords" " " 5082at_xfail=no 5083( 5084 $as_echo "72. $at_setup_line: testing $at_desc ..." 5085 $at_traceon 5086 5087 5088{ set +x 5089$as_echo "$at_srcdir/wordsplit.at:886: 5090 wsp -trimnl -maxwords 3 <<'EOT' 5091ws_maxwords limits the number of returned words 5092EOT 5093" 5094at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:886" 5095( $at_check_trace; 5096 wsp -trimnl -maxwords 3 <<'EOT' 5097ws_maxwords limits the number of returned words 5098EOT 5099 5100) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5101at_status=$? at_failed=false 5102$at_check_filter 5103at_fn_diff_devnull "$at_stderr" || at_failed=: 5104echo >>"$at_stdout"; $as_echo "NF: 3 51050: ws_maxwords 51061: limits 51072: \"the number of returned words\" 5108TOTAL: 3 5109" | \ 5110 $at_diff - "$at_stdout" || at_failed=: 5111at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:886" 5112$at_failed && at_fn_log_failure 5113$at_traceon; } 5114 5115 set +x 5116 $at_times_p && times >"$at_times_file" 5117) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5118read at_status <"$at_status_file" 5119#AT_STOP_72 5120#AT_START_73 5121at_fn_group_banner 73 'wordsplit.at:896' \ 5122 "maxwords return_delims" " " 5123at_xfail=no 5124( 5125 $as_echo "73. $at_setup_line: testing $at_desc ..." 5126 $at_traceon 5127 5128 5129{ set +x 5130$as_echo "$at_srcdir/wordsplit.at:896: 5131 wsp -trimnl -maxwords 8 -return_delims -delim :- <<'EOT' 5132foo:::bar-:baz-quux:ux:zu 5133EOT 5134" 5135at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:896" 5136( $at_check_trace; 5137 wsp -trimnl -maxwords 8 -return_delims -delim :- <<'EOT' 5138foo:::bar-:baz-quux:ux:zu 5139EOT 5140 5141) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5142at_status=$? at_failed=false 5143$at_check_filter 5144at_fn_diff_devnull "$at_stderr" || at_failed=: 5145echo >>"$at_stdout"; $as_echo "NF: 8 51460: foo 51471: : 51482: bar 51493: - 51504: : 51515: baz 51526: - 51537: quux:ux:zu 5154TOTAL: 8 5155" | \ 5156 $at_diff - "$at_stdout" || at_failed=: 5157at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:896" 5158$at_failed && at_fn_log_failure 5159$at_traceon; } 5160 5161 set +x 5162 $at_times_p && times >"$at_times_file" 5163) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5164read at_status <"$at_status_file" 5165#AT_STOP_73 5166#AT_START_74 5167at_fn_group_banner 74 'wordsplit.at:911' \ 5168 "maxwords return_delims -squeeze_delims" " " 5169at_xfail=no 5170( 5171 $as_echo "74. $at_setup_line: testing $at_desc ..." 5172 $at_traceon 5173 5174 5175{ set +x 5176$as_echo "$at_srcdir/wordsplit.at:911: 5177 wsp -trimnl -maxwords 8 -return_delims -nosqueeze_delims -delim :- <<'EOT' 5178foo:::bar-:baz:qux- 5179EOT 5180" 5181at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:911" 5182( $at_check_trace; 5183 wsp -trimnl -maxwords 8 -return_delims -nosqueeze_delims -delim :- <<'EOT' 5184foo:::bar-:baz:qux- 5185EOT 5186 5187) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5188at_status=$? at_failed=false 5189$at_check_filter 5190at_fn_diff_devnull "$at_stderr" || at_failed=: 5191echo >>"$at_stdout"; $as_echo "NF: 8 51920: foo 51931: : 51942: : 51953: : 51964: bar 51975: - 51986: : 51997: baz:qux- 5200TOTAL: 8 5201" | \ 5202 $at_diff - "$at_stdout" || at_failed=: 5203at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:911" 5204$at_failed && at_fn_log_failure 5205$at_traceon; } 5206 5207 set +x 5208 $at_times_p && times >"$at_times_file" 5209) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5210read at_status <"$at_status_file" 5211#AT_STOP_74 5212#AT_START_75 5213at_fn_group_banner 75 'wordsplit.at:926' \ 5214 "maxwords incremental" " " 5215at_xfail=no 5216( 5217 $as_echo "75. $at_setup_line: testing $at_desc ..." 5218 $at_traceon 5219 5220 5221{ set +x 5222$as_echo "$at_srcdir/wordsplit.at:926: 5223 wsp -trimnl -maxwords 3 -incremental <<'EOT' 5224foo bar baz qux uz 5225 5226 5227 5228EOT 5229" 5230at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:926" 5231( $at_check_trace; 5232 wsp -trimnl -maxwords 3 -incremental <<'EOT' 5233foo bar baz qux uz 5234 5235 5236 5237EOT 5238 5239) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5240at_status=$? at_failed=false 5241$at_check_filter 5242echo >>"$at_stderr"; $as_echo "input exhausted 5243" | \ 5244 $at_diff - "$at_stderr" || at_failed=: 5245echo >>"$at_stdout"; $as_echo "NF: 1 52460: foo 5247TOTAL: 1 5248NF: 1 52490: bar 5250TOTAL: 2 5251NF: 1 52520: \"baz qux uz\" 5253TOTAL: 3 5254" | \ 5255 $at_diff - "$at_stdout" || at_failed=: 5256at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:926" 5257$at_failed && at_fn_log_failure 5258$at_traceon; } 5259 5260 set +x 5261 $at_times_p && times >"$at_times_file" 5262) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5263read at_status <"$at_status_file" 5264#AT_STOP_75 5265#AT_START_76 5266at_fn_group_banner 76 'wordsplit.at:945' \ 5267 "variable nosplit" " " 5268at_xfail=no 5269( 5270 $as_echo "76. $at_setup_line: testing $at_desc ..." 5271 $at_traceon 5272 5273 5274{ set +x 5275$as_echo "$at_srcdir/wordsplit.at:945: 5276 wsp -novar -novarsplit <<'EOT' 5277begin \${VAR:- a b} end 5278EOT 5279" 5280at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:945" 5281( $at_check_trace; 5282 wsp -novar -novarsplit <<'EOT' 5283begin ${VAR:- a b} end 5284EOT 5285 5286) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5287at_status=$? at_failed=false 5288$at_check_filter 5289at_fn_diff_devnull "$at_stderr" || at_failed=: 5290echo >>"$at_stdout"; $as_echo "NF: 3 52910: begin 52921: \"\${VAR:- a b}\" 52932: end 5294TOTAL: 3 5295" | \ 5296 $at_diff - "$at_stdout" || at_failed=: 5297at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:945" 5298$at_failed && at_fn_log_failure 5299$at_traceon; } 5300 5301 set +x 5302 $at_times_p && times >"$at_times_file" 5303) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5304read at_status <"$at_status_file" 5305#AT_STOP_76 5306#AT_START_77 5307at_fn_group_banner 77 'wordsplit.at:954' \ 5308 "command nosplit" " " 5309at_xfail=no 5310( 5311 $as_echo "77. $at_setup_line: testing $at_desc ..." 5312 $at_traceon 5313 5314 5315{ set +x 5316$as_echo "$at_srcdir/wordsplit.at:954: 5317 wsp -nocmd -nocmdsplit <<'EOT' 5318begin \$(words a b) end 5319EOT 5320" 5321at_fn_check_prepare_notrace 'a $(...) command substitution' "wordsplit.at:954" 5322( $at_check_trace; 5323 wsp -nocmd -nocmdsplit <<'EOT' 5324begin $(words a b) end 5325EOT 5326 5327) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5328at_status=$? at_failed=false 5329$at_check_filter 5330at_fn_diff_devnull "$at_stderr" || at_failed=: 5331echo >>"$at_stdout"; $as_echo "NF: 3 53320: begin 53331: \"\$(words a b)\" 53342: end 5335TOTAL: 3 5336" | \ 5337 $at_diff - "$at_stdout" || at_failed=: 5338at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:954" 5339$at_failed && at_fn_log_failure 5340$at_traceon; } 5341 5342 set +x 5343 $at_times_p && times >"$at_times_file" 5344) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5345read at_status <"$at_status_file" 5346#AT_STOP_77 5347#AT_START_78 5348at_fn_group_banner 78 'wordsplit.at:963' \ 5349 "positional parameters" " " 5350at_xfail=no 5351( 5352 $as_echo "78. $at_setup_line: testing $at_desc ..." 5353 $at_traceon 5354 5355 5356{ set +x 5357$as_echo "$at_srcdir/wordsplit.at:963: 5358 wsp one two three four five six seven eight nine ten eleven twelve <<'EOT' 5359\$0 \$5 \${10} 5360\$# 5361EOT 5362" 5363at_fn_check_prepare_notrace 'a ${...} parameter expansion' "wordsplit.at:963" 5364( $at_check_trace; 5365 wsp one two three four five six seven eight nine ten eleven twelve <<'EOT' 5366$0 $5 ${10} 5367$# 5368EOT 5369 5370) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5371at_status=$? at_failed=false 5372$at_check_filter 5373at_fn_diff_devnull "$at_stderr" || at_failed=: 5374echo >>"$at_stdout"; $as_echo "NF: 3 53750: one 53761: six 53772: eleven 5378TOTAL: 3 5379NF: 1 53800: 12 5381TOTAL: 1 5382" | \ 5383 $at_diff - "$at_stdout" || at_failed=: 5384at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:963" 5385$at_failed && at_fn_log_failure 5386$at_traceon; } 5387 5388 set +x 5389 $at_times_p && times >"$at_times_file" 5390) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5391read at_status <"$at_status_file" 5392#AT_STOP_78 5393#AT_START_79 5394at_fn_group_banner 79 'wordsplit.at:976' \ 5395 "\$* and \$@" " " 5396at_xfail=no 5397( 5398 $as_echo "79. $at_setup_line: testing $at_desc ..." 5399 $at_traceon 5400 5401 5402{ set +x 5403$as_echo "$at_srcdir/wordsplit.at:976: 5404 wsp 'one two' three 'four five' <<'EOT' 5405\$* 5406\$@ 5407\"\$*\" 5408\"\$@\" 5409EOT 5410" 5411at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:976" 5412( $at_check_trace; 5413 wsp 'one two' three 'four five' <<'EOT' 5414$* 5415$@ 5416"$*" 5417"$@" 5418EOT 5419 5420) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5421at_status=$? at_failed=false 5422$at_check_filter 5423at_fn_diff_devnull "$at_stderr" || at_failed=: 5424echo >>"$at_stdout"; $as_echo "NF: 5 54250: one 54261: two 54272: three 54283: four 54294: five 5430TOTAL: 5 5431NF: 3 54320: \"one two\" 54331: three 54342: \"four five\" 5435TOTAL: 3 5436NF: 1 54370: \"one two three four five\" 5438TOTAL: 1 5439NF: 1 54400: \"one two three four five\" 5441TOTAL: 1 5442" | \ 5443 $at_diff - "$at_stdout" || at_failed=: 5444at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:976" 5445$at_failed && at_fn_log_failure 5446$at_traceon; } 5447 5448 set +x 5449 $at_times_p && times >"$at_times_file" 5450) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5451read at_status <"$at_status_file" 5452#AT_STOP_79 5453#AT_START_80 5454at_fn_group_banner 80 'wordsplit.at:1001' \ 5455 "\$* and \$@ in nosplit mode" " " 5456at_xfail=no 5457( 5458 $as_echo "80. $at_setup_line: testing $at_desc ..." 5459 $at_traceon 5460 5461 5462{ set +x 5463$as_echo "$at_srcdir/wordsplit.at:1001: 5464 wsp -trimnl -nosplit 'one two' three 'four five' <<'EOT' 5465\$* 5466\$@ 5467EOT 5468" 5469at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:1001" 5470( $at_check_trace; 5471 wsp -trimnl -nosplit 'one two' three 'four five' <<'EOT' 5472$* 5473$@ 5474EOT 5475 5476) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5477at_status=$? at_failed=false 5478$at_check_filter 5479at_fn_diff_devnull "$at_stderr" || at_failed=: 5480echo >>"$at_stdout"; $as_echo "NF: 1 54810: \"one two three four five\" 5482TOTAL: 1 5483NF: 1 54840: \"one two three four five\" 5485TOTAL: 1 5486" | \ 5487 $at_diff - "$at_stdout" || at_failed=: 5488at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:1001" 5489$at_failed && at_fn_log_failure 5490$at_traceon; } 5491 5492 set +x 5493 $at_times_p && times >"$at_times_file" 5494) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5495read at_status <"$at_status_file" 5496#AT_STOP_80 5497#AT_START_81 5498at_fn_group_banner 81 'wordsplit.at:1013' \ 5499 "\$* and \$@ in nosplit mode with delimiter" " " 5500at_xfail=no 5501( 5502 $as_echo "81. $at_setup_line: testing $at_desc ..." 5503 $at_traceon 5504 5505 5506{ set +x 5507$as_echo "$at_srcdir/wordsplit.at:1013: 5508 wsp -trimnl -nosplit -delim : 'one two' three 'four five' <<'EOT' 5509\$* 5510\$@ 5511EOT 5512" 5513at_fn_check_prepare_notrace 'an embedded newline' "wordsplit.at:1013" 5514( $at_check_trace; 5515 wsp -trimnl -nosplit -delim : 'one two' three 'four five' <<'EOT' 5516$* 5517$@ 5518EOT 5519 5520) >>"$at_stdout" 2>>"$at_stderr" 5>&- 5521at_status=$? at_failed=false 5522$at_check_filter 5523at_fn_diff_devnull "$at_stderr" || at_failed=: 5524echo >>"$at_stdout"; $as_echo "NF: 1 55250: \"one two:three:four five\" 5526TOTAL: 1 5527NF: 1 55280: \"one two:three:four five\" 5529TOTAL: 1 5530" | \ 5531 $at_diff - "$at_stdout" || at_failed=: 5532at_fn_check_status 0 $at_status "$at_srcdir/wordsplit.at:1013" 5533$at_failed && at_fn_log_failure 5534$at_traceon; } 5535 5536 set +x 5537 $at_times_p && times >"$at_times_file" 5538) 5>&1 2>&1 7>&- | eval $at_tee_pipe 5539read at_status <"$at_status_file" 5540#AT_STOP_81 5541