Zsh test failure

DoneSubmitted by Leo Famulari.
Details
2 participants
  • Leo Famulari
  • Ludovic Courtès
Owner
unassigned
Severity
normal
L
L
Leo Famulari wrote on 21 Jan 2016 03:21
(address . bug-guix@gnu.org)
20160121022120.GA19231@jasmine
Zsh fails to build due to a test failure on my system (x86_64).
The test suite does not report where the failure occurs but I believe itis in section 'Test/B02typeset.ztst' as a result of patch-shebangfailing to find a binary interpreter for 'Test/ztst.zsh':
patch-shebang: ./Test/ztst.zsh: warning: no binary for interpreter `zsh' found in $PATH
I wonder if this means that the file is being interpreted by Bash, ormaybe the 'sh' mode of Bash.
At the conclusion of the test suite:
**************************************44 successful test scripts, 1 failure, 0 skipped**************************************Makefile:189: recipe for target 'check' failedmake[1]: *** [check] Error 1make[1]: Leaving directory '/tmp/guix-build-zsh-5.1.1.drv-0/zsh-5.1.1/Test'Makefile:265: recipe for target 'check' failedmake: *** [check] Error 2phase `check' failed after 30.2 seconds
Here is the verbose output of the test section B02, up to where sectionB03 begins. I created the verbose output by setting the make-flag"ZTST_verbose=2".
Normally, before a new section begins, the previous section reports itssuccess. That does not happen in this case:
./B02typeset.ztst: starting.ZTST_getsect: read section name: prepZTST_getchunk: read code chunk: mkdir typeset.tmp && cd typeset.tmpZTST_execchunk: status 0ZTST_getchunk: read code chunk: setopt noglobZTST_execchunk: status 0ZTST_getchunk: read code chunk: scalar=scalar array=(a r r a y)ZTST_execchunk: status 0ZTST_getchunk: read code chunk: scope00() { typeset scalar scalar=local typeset -a array array=(l o c a l) print $scalar $array } scope01() { local scalar scalar=local local -a array array=(l o c a l) print $scalar $array } scope02() { declare scalar scalar=local declare -a array array=(l o c a l) print $scalar $array } scope10() { export outer=outer /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $outer' } scope11() { typeset -x outer=outer /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $outer' } scope12() { local -x outer=inner /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $outer' } scope13() { local -xT OUTER outer outer=(i n n e r) /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $OUTER' }ZTST_execchunk: status 0ZTST_getchunk: read code chunk: # Bug? `typeset -h' complains that ! # $ * - ? @ are not identifiers. stress00() { typeset -h +g -m [[:alpha:]_]* unset -m [[:alpha:]_]* typeset +m [[:alpha:]_]* }ZTST_execchunk: status 0ZTST_getchunk: read code chunk:
ZTST_getsect: read section name: testZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset +m scalar arrayZTST_getchunk: read code chunk: typeset +m scalar arrayZTST_test: examining line:
Toggle quote (1 lines)>scalar
ZTST_getredir: read redir for '>':scalararray arrayZTST_test: examining line:
Running test: Report types of parameters with typeset +mZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:scalararray arrayZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: scope00ZTST_getchunk: read code chunk: scope00 print $scalar $arrayZTST_test: examining line:
Toggle quote (1 lines)>local l o c a l
ZTST_getredir: read redir for '>':local l o c a lscalar a r r a yZTST_test: examining line:
Running test: Simple local declarationsZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:local l o c a lscalar a r r a yZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: scope01ZTST_getchunk: read code chunk: scope01 print $scalar $arrayZTST_test: examining line:
Toggle quote (1 lines)>local l o c a l
ZTST_getredir: read redir for '>':local l o c a lscalar a r r a yZTST_test: examining line:
Running test: Equivalence of local and typeset in functionsZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:local l o c a lscalar a r r a yZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: scope02ZTST_getchunk: read code chunk: scope02 print $scalar $arrayZTST_test: examining line:
Toggle quote (1 lines)>local l o c a l
ZTST_getredir: read redir for '>':local l o c a lscalar a r r a yZTST_test: examining line:
Running test: Basic equivalence of declare and typesetZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:local l o c a lscalar a r r a yZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: declare +m scalarZTST_getchunk: read code chunk: declare +m scalarZTST_test: examining line:
Toggle quote (1 lines)>scalar
ZTST_getredir: read redir for '>':scalarZTST_test: examining line:
Running test: declare previously lacked -m/+m optionsZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:scalarZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: scope10ZTST_getchunk: read code chunk: scope10 print $outerZTST_test: examining line:
Toggle quote (1 lines)>outer
ZTST_getredir: read redir for '>':outerouterZTST_test: examining line:
Running test: Global exportZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:outerouterZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: scope11ZTST_getchunk: read code chunk: scope11 print $outerZTST_test: examining line:
Toggle quote (1 lines)>outer
ZTST_getredir: read redir for '>':outerouterZTST_test: examining line:
Running test: Equivalence of export and typeset -xZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:outerouterZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: scope12ZTST_getchunk: read code chunk: scope12 print $outerZTST_test: examining line:
Toggle quote (1 lines)>inner
ZTST_getredir: read redir for '>':innerouterZTST_test: examining line:
Running test: Local exportZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:innerouterZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: float f=3.14159ZTST_getchunk: read code chunk: float f=3.14159 typeset +m f float -E3 f print $f float -F f print $fZTST_test: examining line:
Toggle quote (1 lines)>float local f
ZTST_getredir: read redir for '>':float local f3.14e+003.142ZTST_test: examining line:
Running test: Floating point, adding a precision, and fixed pointZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:float local f3.14e+003.142ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: integer i=3.141ZTST_getchunk: read code chunk: integer i=3.141 typeset +m i integer -i2 i print $iZTST_test: examining line:
Toggle quote (1 lines)>integer local i
ZTST_getredir: read redir for '>':integer local i2#11ZTST_test: examining line:
Running test: Integer and changing the baseZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:integer local i2#11ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: float -E3 f=3.141ZTST_getchunk: read code chunk: float -E3 f=3.141 typeset +m f integer -i2 f typeset +m f print $fZTST_test: examining line:
Toggle quote (1 lines)>float local f
ZTST_getredir: read redir for '>':float local finteger 2 local f2#11ZTST_test: examining line:
Running test: Conversion of floating point to integerZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:float local finteger 2 local f2#11ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -fZTST_getchunk: read code chunk: typeset -fZTST_test: examining line:
Toggle quote (1 lines)>$(functions)
ZTST_getredir: read redir for '>':$(functions)ZTST_test: examining line:
Running test: Equivalence of functions and typeset -fZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:ZTST_cleanup () { cd $ZTST_testdir rm -rf $ZTST_testdir/dummy.tmp $ZTST_testdir/*.tmp(N) ${TMPPREFIX}.ztst*$$(N)}ZTST_diff () { emulate -L zsh setopt extendedglob local diff_out integer diff_pat diff_ret case $1 in (p) diff_pat=1 ;; (d) ;; (*) print "Bad ZTST_diff code: d for diff, p for pattern match" ;; esac shift if (( diff_pat )) then local -a diff_lines1 diff_lines2 integer failed i diff_lines1=("${(f)$(<$argv[-2])}") diff_lines2=("${(f)$(<$argv[-1])}") if (( ${#diff_lines1} != ${#diff_lines2} )) then failed=1 else for ((i = 1; i <= ${#diff_lines1}; i++ )) do if [[ ${diff_lines2[i]} != ${~diff_lines1[i]} ]] then failed=1 break fi done fi if (( failed )) then print -rl "Pattern match failed:" \<${^diff_lines1} \>${^diff_lines2} diff_ret=1 fi else diff_out=$(diff "$@") diff_ret="$?" if [[ "$diff_ret" != "0" ]] then print -r "$diff_out" fi fi return "$diff_ret"}ZTST_execchunk () { setopt localloops options=($ZTST_testopts) () { unsetopt localloops eval "$ZTST_code" } ZTST_status=$? ZTST_testopts=(${(kv)options[*]}) options=(${ZTST_mainopts[*]}) ZTST_verbose 2 "ZTST_execchunk: status $ZTST_status" return $ZTST_status}ZTST_getchunk () { ZTST_code='' while [[ $ZTST_curline = [[:blank:]]# ]] do ZTST_getline || break done while [[ $ZTST_curline = [[:blank:]]##[^[:blank:]]* ]] do ZTST_code="${ZTST_code:+${ZTST_code}}${ZTST_curline}" ZTST_getline || break done ZTST_verbose 2 "ZTST_getchunk: read code chunk:$ZTST_code" [[ -n $ZTST_code ]]}ZTST_getline () { local IFS= while true do read -u $ZTST_input -r ZTST_curline || return 1 [[ $ZTST_curline = \#* ]] || return 0 done}ZTST_getredir () { local char=${ZTST_curline[1]} fn ZTST_redir=${ZTST_curline[2,-1]} while ZTST_getline do [[ $ZTST_curline[1] = $char ]] || break ZTST_redir="${ZTST_redir}${ZTST_curline[2,-1]}" done ZTST_verbose 2 "ZTST_getredir: read redir for '$char':$ZTST_redir" case $char in ('<') fn=$ZTST_in ;; ('>') fn=$ZTST_out ;; ('?') fn=$ZTST_err ;; (*) ZTST_testfailed "bad redir operator: $char" return 1 ;; esac if [[ $ZTST_flags = *q* && $char = '<' ]] then print -r -- "${(e)ZTST_redir}" >> $fn else print -r -- "$ZTST_redir" >> $fn fi return 0}ZTST_getsect () { local match mbegin mend while [[ $ZTST_curline != '%'(#b)([[:alnum:]]##)* ]] do ZTST_getline || return 1 [[ $ZTST_curline = [[:blank:]]# ]] && continue if [[ $# -eq 0 && $ZTST_curline != '%'[[:alnum:]]##* ]] then ZTST_testfailed "bad line found before or after section:$ZTST_curline" exit 1 fi done ZTST_getline ZTST_cursect=${match[1]} ZTST_verbose 2 "ZTST_getsect: read section name: $ZTST_cursect" return 0}ZTST_hashmark () { if [[ ZTST_verbose -le 0 && -t $ZTST_fd ]] then print -n -u$ZTST_fd -- ${(pl:SECONDS::\#::\#\r:)} fi (( SECONDS > COLUMNS+1 && (SECONDS -= COLUMNS) ))}ZTST_prepclean () { while ZTST_getchunk do ZTST_execchunk > /dev/null || [[ -n $1 ]] || { [[ -n "$ZTST_unimplemented" ]] || ZTST_testfailed "non-zero status from preparation code:$ZTST_code" && return 0 } done}ZTST_test () { local last match mbegin mend found substlines local diff_out diff_err local ZTST_skip while true do rm -f $ZTST_in $ZTST_out $ZTST_err touch $ZTST_in $ZTST_out $ZTST_err ZTST_message='' ZTST_failmsg='' found=0 diff_out=d diff_err=d ZTST_verbose 2 "ZTST_test: looking for new test" while true do ZTST_verbose 2 "ZTST_test: examining line:$ZTST_curline" case $ZTST_curline in (%*) if [[ $found = 0 ]] then break 2 else last=1 break fi ;; ([[:space:]]#) if [[ $found = 0 ]] then ZTST_getline || break 2 continue else break fi ;; ([[:space:]]##[^[:space:]]*) ZTST_getchunk if [[ $ZTST_curline = (#b)([-0-9]##)([[:alpha:]]#)(:*)# ]] then ZTST_xstatus=$match[1] ZTST_flags=$match[2] ZTST_message=${match[3]:+${match[3][2,-1]}} else ZTST_testfailed "expecting test status at:$ZTST_curline" return 1 fi ZTST_getline found=1 ;; ('<'*) ZTST_getredir || return 1 found=1 ;; ('*>'*) ZTST_curline=${ZTST_curline[2,-1]} diff_out=p ;& ('>'*) ZTST_getredir || return 1 found=1 ;; ('*?'*) ZTST_curline=${ZTST_curline[2,-1]} diff_err=p ;& ('?'*) ZTST_getredir || return 1 found=1 ;; ('F:'*) ZTST_failmsg="${ZTST_failmsg:+${ZTST_failmsg}} ${ZTST_curline[3,-1]}" ZTST_getline found=1 ;; (*) ZTST_testfailed "bad line in test block:$ZTST_curline" return 1 ;; esac done if [[ -n $ZTST_code ]] then ZTST_hashmark ZTST_verbose 1 "Running test: $ZTST_message" ZTST_verbose 2 "ZTST_test: expecting status: $ZTST_xstatus" ZTST_verbose 2 "Input: $ZTST_in, output: $ZTST_out, error: $ZTST_terr" ZTST_execchunk < $ZTST_in > $ZTST_tout 2> $ZTST_terr if [[ -n $ZTST_skip ]] then ZTST_verbose 0 "Test case skipped: $ZTST_skip" ZTST_skip= if [[ -n $last ]] then break else continue fi fi if [[ $ZTST_xstatus != - && $ZTST_xstatus != $ZTST_status ]] then ZTST_testfailed "bad status $ZTST_status, expected $ZTST_xstatus from:$ZTST_code${$(<$ZTST_terr):+Error output:$(<$ZTST_terr)}" return 1 fi ZTST_verbose 2 "ZTST_test: test produced standard output:$(<$ZTST_tout)ZTST_test: and standard error:$(<$ZTST_terr)" if [[ $ZTST_flags = *q* && -s $ZTST_out ]] then substlines="$(<$ZTST_out)" rm -rf $ZTST_out print -r -- "${(e)substlines}" > $ZTST_out fi if [[ $ZTST_flags != *d* ]] && ! ZTST_diff $diff_out -c $ZTST_out $ZTST_tout then ZTST_testfailed "output differs from expected as shown above for:$ZTST_code${$(<$ZTST_terr):+Error output:$(<$ZTST_terr)}" return 1 fi if [[ $ZTST_flags = *q* && -s $ZTST_err ]] then substlines="$(<$ZTST_err)" rm -rf $ZTST_err print -r -- "${(e)substlines}" > $ZTST_err fi if [[ $ZTST_flags != *D* ]] && ! ZTST_diff $diff_err -c $ZTST_err $ZTST_terr then ZTST_testfailed "error output differs from expected as shown above for:$ZTST_code" return 1 fi fi ZTST_verbose 1 "Test successful." [[ -n $last ]] && break done ZTST_verbose 2 "ZTST_test: all tests successful" ZTST_message='' }ZTST_testfailed () { print -r "Test $ZTST_testname failed: $1" if [[ -n $ZTST_message ]] then print -r "Was testing: $ZTST_message" fi print -r "$ZTST_testname: test failed." if [[ -n $ZTST_failmsg ]] then print -r "The following may (or may not) help identifying the cause:$ZTST_failmsg" fi ZTST_testfailed=1 return 1}ZTST_verbose () { local lev=$1 shift if [[ -n $ZTST_verbose && $ZTST_verbose -ge $lev ]] then print -r -u $ZTST_fd -- $* fi}scope00 () { typeset scalar scalar=local typeset -a array array=(l o c a l) print $scalar $array}scope01 () { local scalar scalar=local local -a array array=(l o c a l) print $scalar $array}scope02 () { declare scalar scalar=local declare -a array array=(l o c a l) print $scalar $array}scope10 () { export outer=outer /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $outer'}scope11 () { typeset -x outer=outer /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $outer'}scope12 () { local -x outer=inner /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $outer'}scope13 () { local -xT OUTER outer outer=(i n n e r) /gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/sh -fc 'echo $OUTER'}stress00 () { typeset -h +g -m [[:alpha:]_]* unset -m [[:alpha:]_]* typeset +m [[:alpha:]_]*}tail () { emulate -L zsh if [[ -z $TAIL_SUPPORTS_MINUS_N ]] then local test test=$(echo "foo\nbar" | command tail -n 1 2>/dev/null) if [[ $test = bar ]] then TAIL_SUPPORTS_MINUS_N=1 else TAIL_SUPPORTS_MINUS_N=0 fi fi integer argi=${argv[(i)-<->]} if [[ $argi -le $# && $TAIL_SUPPORTS_MINUS_N = 1 ]] then argv[$argi]=(-n ${argv[$argi][2,-1]}) fi command tail "$argv[@]"}ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: readonly r=successZTST_getchunk: read code chunk: readonly r=success print $r r=failureZTST_test: examining line:
Toggle quote (1 lines)>success
ZTST_getredir: read redir for '>':successZTST_test: examining line:?(eval):3: read-only variable: rZTST_getredir: read redir for '?':(eval):3: read-only variable: rZTST_test: examining line:
Running test: Readonly declarationZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:successZTST_test: and standard error:(eval):3: read-only variable: rTest successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset r=successZTST_getchunk: read code chunk: typeset r=success readonly r print $r r=failureZTST_test: examining line:
Toggle quote (1 lines)>success
ZTST_getredir: read redir for '>':successZTST_test: examining line:?(eval):4: read-only variable: rZTST_getredir: read redir for '?':(eval):4: read-only variable: rZTST_test: examining line:
Running test: Convert to readonlyZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:successZTST_test: and standard error:(eval):4: read-only variable: rTest successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -gU arrayZTST_getchunk: read code chunk: typeset -gU array print $arrayZTST_test: examining line:
Toggle quote (1 lines)>a r y
ZTST_getredir: read redir for '>':a r yZTST_test: examining line:
Running test: Uniquified arrays and non-local scopeZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:a r yZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -T SCALAR=l:o:c:a:l arrayZTST_getchunk: read code chunk: typeset -T SCALAR=l:o:c:a:l array print $array typeset -U SCALAR print $SCALAR $arrayZTST_test: examining line:
Toggle quote (1 lines)>l o c a l
ZTST_getredir: read redir for '>':l o c a ll:o:c:a l o c aZTST_test: examining line:
Running test: Tied parameters and uniquified colon-arraysZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:l o c a ll:o:c:a l o c aZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: (setopt NO_multibyte cbasesZTST_getchunk: read code chunk: (setopt NO_multibyte cbases LC_ALL=C 2>/dev/null typeset -T SCALAR=$'l\x83o\x83c\x83a\x83l' array $'\x83' print $array typeset -U SCALAR for (( i = 1; i <= ${#SCALAR}; i++ )); do char=$SCALAR[i] print $(( [#16] #char )) done print $array)ZTST_test: examining line:
Toggle quote (1 lines)>l o c a l
ZTST_getredir: read redir for '>':l o c a l0x6C0x830x6F0x830x630x830x61l o c aZTST_test: examining line:
Running test: Tied parameters and uniquified arrays with meta-character as separatorZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:l o c a l0x6C0x830x6F0x830x630x830x61l o c aZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -T SCALAR=$'l\000o\000c\000a\000l' array $'\000'ZTST_getchunk: read code chunk: typeset -T SCALAR=$'l\000o\000c\000a\000l' array $'\000' typeset -U SCALAR print $array [[ $SCALAR == $'l\000o\000c\000a' ]]ZTST_test: examining line:
Toggle quote (1 lines)>l o c a
ZTST_getredir: read redir for '>':l o c aZTST_test: examining line:
Running test: Tied parameters and uniquified arrays with NUL-character as separatorZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:l o c aZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -T SCALAR arrayZTST_getchunk: read code chunk: typeset -T SCALAR array typeset +T SCALARZTST_test: examining line:?(eval):typeset:2: use unset to remove tied variablesZTST_getredir: read redir for '?':(eval):typeset:2: use unset to remove tied variablesZTST_test: examining line:
Running test: Untying is prohibitedZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:
ZTST_test: and standard error:(eval):typeset:2: use unset to remove tied variablesTest successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: OUTER=outerZTST_getchunk: read code chunk: OUTER=outer scope13 print $OUTERZTST_test: examining line:
Toggle quote (1 lines)>i:n:n:e:r
ZTST_getredir: read redir for '>':i:n:n:e:routerZTST_test: examining line:
Running test: Export of tied parametersZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:i:n:n:e:routerZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -TU MORESTUFF=here-we-go-go-again morestuff '-'ZTST_getchunk: read code chunk: typeset -TU MORESTUFF=here-we-go-go-again morestuff '-' print -l $morestuffZTST_test: examining line:
Toggle quote (1 lines)>here
ZTST_getredir: read redir for '>':herewegoagainZTST_test: examining line:
Running test: Tied arrays with separator specifiedZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:herewegoagainZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -T THIS will not workZTST_getchunk: read code chunk: typeset -T THIS will not workZTST_test: examining line:?(eval):typeset:1: too many arguments for -TZTST_getredir: read redir for '?':(eval):typeset:1: too many arguments for -TZTST_test: examining line:
Running test: Tied array syntaxZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:
ZTST_test: and standard error:(eval):typeset:1: too many arguments for -TTest successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local array[2]=xZTST_getchunk: read code chunk: local array[2]=xZTST_test: examining line:?(eval):local:1: array[2]: can't create local array elementsZTST_getredir: read redir for '?':(eval):local:1: array[2]: can't create local array elementsZTST_test: examining line:
Running test: Illegal local array element assignmentZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:
ZTST_test: and standard error:(eval):local:1: array[2]: can't create local array elementsTest successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local -a arrayZTST_getchunk: read code chunk: local -a array typeset array[1]=a array[2]=b array[3]=c print $arrayZTST_test: examining line:
Toggle quote (1 lines)>a b c
ZTST_getredir: read redir for '>':a b cZTST_test: examining line:
Running test: Legal local array element assignmentZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:a b cZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local -A assocZTST_getchunk: read code chunk: local -A assoc local b=1 ;: to stomp assoc[1] if assoc[b] is broken typeset assoc[1]=a assoc[b]=2 assoc[3]=c print $assoc[1] $assoc[b] $assoc[3]ZTST_test: examining line:
Toggle quote (1 lines)>a 2 c
ZTST_getredir: read redir for '>':a 2 cZTST_test: examining line:
Running test: Legal local associative array element assignmentZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:a 2 cZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local scalar scalar[1]=a scalar[2]=b scalar[3]=cZTST_getchunk: read code chunk: local scalar scalar[1]=a scalar[2]=b scalar[3]=c print $scalarZTST_test: examining line:
Toggle quote (1 lines)>abc
ZTST_getredir: read redir for '>':abcZTST_test: examining line:
Running test: Local scalar subscript assignmentZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:abcZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -L 10 foolsZTST_getchunk: read code chunk: typeset -L 10 fools for fools in " once" "twice" " thrice" " oops too long here"; do print "'$fools'" doneZTST_test: examining line:
Toggle quote (1 lines)>'once '
ZTST_getredir: read redir for '>':'once ''twice ''thrice ''oops too l'ZTST_test: examining line:
Running test: Left justification of scalarsZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'once ''twice ''thrice ''oops too l'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -L 10 -F 3 foolfZTST_getchunk: read code chunk: typeset -L 10 -F 3 foolf for foolf in 1.3 4.6 -2.987 -4.91031; do print "'$foolf'" doneZTST_test: examining line:
Toggle quote (1 lines)>'1.300 '
ZTST_getredir: read redir for '>':'1.300 ''4.600 ''-2.987 ''-4.910 'ZTST_test: examining line:
Running test: Left justification of floating pointZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'1.300 ''4.600 ''-2.987 ''-4.910 'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -L 10 -Z foolzsZTST_getchunk: read code chunk: typeset -L 10 -Z foolzs for foolzs in 001.3 04.6 -2.987 -04.91231; do print "'$foolzs'" doneZTST_test: examining line:
Toggle quote (1 lines)>'1.3 '
ZTST_getredir: read redir for '>':'1.3 ''4.6 ''-2.987 ''-04.91231 'ZTST_test: examining line:
Running test: Left justification of scalars with zero suppressionZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'1.3 ''4.6 ''-2.987 ''-04.91231 'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -R 10 foorsZTST_getchunk: read code chunk: typeset -R 10 foors for foors in short longer even-longer; do print "'$foors'" doneZTST_test: examining line:
Toggle quote (1 lines)>' short'
ZTST_getredir: read redir for '>':' short'' longer''ven-longer'ZTST_test: examining line:
Running test: Right justification of scalarsZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:' short'' longer''ven-longer'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -Z 10 foozsZTST_getchunk: read code chunk: typeset -Z 10 foozs for foozs in 42 -42 " 43" " -43"; do print "'$foozs'" doneZTST_test: examining line:
Toggle quote (1 lines)>'0000000042'
ZTST_getredir: read redir for '>':'0000000042'' -42'' 000000043'' -43'ZTST_test: examining line:
Running test: Right justification of scalars with zeroesZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'0000000042'' -42'' 000000043'' -43'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: integer -Z 10 fooziZTST_getchunk: read code chunk: integer -Z 10 foozi for foozi in 42 -42 " 43" " -43"; do print "'$foozi'" doneZTST_test: examining line:
Toggle quote (1 lines)>'0000000042'
ZTST_getredir: read redir for '>':'0000000042''-000000042''0000000043''-000000043'ZTST_test: examining line:
Running test: Right justification of integers with zero, no initial baseZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'0000000042''-000000042''0000000043''-000000043'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: unsetopt cbasesZTST_getchunk: read code chunk: unsetopt cbases integer -Z 10 -i 16 foozi16 for foozi16 in 42 -42 " 43" " -43"; do print "'$foozi16'" doneZTST_test: examining line:
Toggle quote (1 lines)>'16#000002A'
ZTST_getredir: read redir for '>':'16#000002A''-16#00002A''16#000002B''-16#00002B'ZTST_test: examining line:
Running test: Right justification of integers with zero, base 16, C_BASES offZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'16#000002A''-16#00002A''16#000002B''-16#00002B'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: setopt cbasesZTST_getchunk: read code chunk: setopt cbases integer -Z 10 -i 16 foozi16c for foozi16c in 42 -42 " 43" " -43"; do print "'$foozi16c'" doneZTST_test: examining line:
Toggle quote (1 lines)>'0x0000002A'
ZTST_getredir: read redir for '>':'0x0000002A''-0x000002A''0x0000002B''-0x000002B'ZTST_test: examining line:
Running test: Right justification of integers with zero, base 16, C_BASES onZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'0x0000002A''-0x000002A''0x0000002B''-0x000002B'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: setopt cbasesZTST_getchunk: read code chunk: setopt cbases integer -Z 10 -i 16 foozi16c for foozi16c in 0x1234 -0x1234; do for (( i = 1; i <= 5; i++ )); do print "'${foozi16c[i,11-i]}'" done print "'${foozi16c[-2]}'" doneZTST_test: examining line:
Toggle quote (1 lines)>'0x00001234'
ZTST_getredir: read redir for '>':'0x00001234''x0000123''000012''0001''00''3''-0x0001234''0x000123''x00012''0001''00''3'ZTST_test: examining line:
Running test: Extracting substrings from padded integersZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'0x00001234''x0000123''000012''0001''00''3''-0x0001234''0x000123''x00012''0001''00''3'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -F 3 -Z 10 foozfZTST_getchunk: read code chunk: typeset -F 3 -Z 10 foozf for foozf in 3.14159 -3.14159 4 -4; do print "'$foozf'" doneZTST_test: examining line:
Toggle quote (1 lines)>'000003.142'
ZTST_getredir: read redir for '>':'000003.142''-00003.142''000004.000''-00004.000'ZTST_test: examining line:
Running test: Right justification of fixed point numbers with zeroZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:'000003.142''-00003.142''000004.000''-00004.000'ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: stress00ZTST_getchunk: read code chunk: stress00 print $scalar $arrayZTST_test: examining line:
Toggle quote (1 lines)>scalar a r y
ZTST_getredir: read redir for '>':scalar a r yZTST_test: examining line:
Running test: Stress test: all parameters are local and unset, using -mZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:scalar a r yZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local parentenv=preservedZTST_getchunk: read code chunk: local parentenv=preserved fn() { typeset -h +g -m \* unset -m \* integer i=9 float -H f=9 declare -t scalar declare -H -a array typeset typeset + } fn echo $parentenvZTST_test: examining line:
Toggle quote (1 lines)>array local array
ZTST_getredir: read redir for '>':array local arrayfloat local finteger local i=9local tagged scalar=''array local arrayfloat local finteger local ilocal tagged scalarpreservedZTST_test: examining line:
Running test: Parameter hiding and tagging, printing types and valuesZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:array local arrayfloat local finteger local i=9local tagged scalar=''array local arrayfloat local finteger local ilocal tagged scalarpreservedZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: export ENVFOO=barZTST_getchunk: read code chunk: export ENVFOO=bar print ENVFOO in environment env | grep '^ENVFOO' print Changing ENVFOO ENVFOO="not bar any more" env | grep '^ENVFOO' unset ENVFOO print ENVFOO no longer in environment env | grep '^ENVFOO'ZTST_test: examining line:
Toggle quote (1 lines)>ENVFOO in environment
ZTST_getredir: read redir for '>':ENVFOO in environmentENVFOO=barChanging ENVFOOENVFOO=not bar any moreENVFOO no longer in environmentZTST_test: examining line:
Running test: Adding and removing values to and from the environmentZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:ENVFOO in environmentENVFOO=barChanging ENVFOOENVFOO=not bar any moreENVFOO no longer in environmentZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: (export FOOENV=BARZTST_getchunk: read code chunk: (export FOOENV=BAR env | grep '^FOOENV' print Exec exec $ZTST_testdir/../Src/zsh -fc ' print Unset unset FOOENV env | grep "^FOOENV"')ZTST_test: examining line:
Toggle quote (1 lines)>FOOENV=BAR
ZTST_getredir: read redir for '>':FOOENV=BARExecUnsetZTST_test: examining line:
Running test: Can unset environment variables after execZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:FOOENV=BARExecUnsetZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local case1=upperZTST_getchunk: read code chunk: local case1=upper typeset -u case1 print $case1 upper="VALUE OF \$UPPER" print ${(P)case1}ZTST_test: examining line:
Toggle quote (1 lines)>UPPER
ZTST_getredir: read redir for '>':UPPERVALUE OF $UPPERZTST_test: examining line:
Running test: Upper case conversion, does not apply to values used internallyZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:UPPERVALUE OF $UPPERZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local case2=LOWERZTST_getchunk: read code chunk: local case2=LOWER typeset -l case2 print $case2 LOWER="value of \$lower" print ${(P)case2}ZTST_test: examining line:
Toggle quote (1 lines)>lower
ZTST_getredir: read redir for '>':lowervalue of $lowerZTST_test: examining line:
Running test: Lower case conversion, does not apply to values used internallyZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:lowervalue of $lowerZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -a arrayZTST_getchunk: read code chunk: typeset -a array array=(foo bar) fn() { typeset -p array nonexistent; } fnZTST_test: examining line:
Toggle quote (1 lines)>typeset -a array
ZTST_getredir: read redir for '>':typeset -a arrayarray=( foo bar )ZTST_test: examining line:?fn:typeset: no such variable: nonexistentZTST_getredir: read redir for '?':fn:typeset: no such variable: nonexistentZTST_test: examining line:
Running test: declare -p shouldn't create scoped valuesZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:typeset -a arrayarray=( foo bar )ZTST_test: and standard error:fn:typeset: no such variable: nonexistentTest successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: unsetopt typesetsilentZTST_getchunk: read code chunk: unsetopt typesetsilent silent1(){ typeset -g silence; } silent2(){ local silence; silent1; } silent2ZTST_test: examining line:
Running test: typeset -g should be silent even without TYPESET_SILENTZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:
ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: typeset -T TIED_SCALAR tied_arrayZTST_getchunk: read code chunk: typeset -T TIED_SCALAR tied_array TIED_SCALAR=foo:bar print $tied_array typeset -T TIED_SCALAR=goo:car tied_array print $tied_array typeset -T TIED_SCALAR tied_array=(poo par) print $TIED_SCALARZTST_test: examining line:
Toggle quote (1 lines)>foo bar
ZTST_getredir: read redir for '>':foo bargoo carpoo:parZTST_test: examining line:
Running test: retying arrays to same array worksZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:foo bargoo carpoo:parZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: (ZTST_getchunk: read code chunk: ( setopt POSIXBUILTINS readonly pbro print ${+pbro} >&2 (typeset pbro=3) (pbro=4) readonly -p | grep pbro >&2 # shows up as "readonly" although unset typeset -r pbro # idempotent (no error)... print ${+pbro} >&2 # ...so still readonly... typeset +r pbro # ...can't turn it off )ZTST_test: examining line:?0ZTST_getredir: read redir for '?':0(eval):5: read-only variable: pbro(eval):6: read-only variable: pbrotypeset -r pbro0(eval):10: read-only variable: pbroZTST_test: examining line:
Running test: readonly with POSIX_BUILTINSZTST_test: expecting status: 1Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 1ZTST_test: test produced standard output:
ZTST_test: and standard error:0(eval):5: read-only variable: pbro(eval):6: read-only variable: pbrotypeset -r pbro0(eval):10: read-only variable: pbroTest successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: readonly foo=bar novalueZTST_getchunk: read code chunk: readonly foo=bar novalue readonly -pZTST_test: examining line:
Toggle quote (1 lines)>typeset -r foo=bar
ZTST_getredir: read redir for '>':typeset -r foo=bartypeset -r novalue=''ZTST_test: examining line:
Running test: readonly -p output (no readonly specials)ZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:typeset -r foo=bartypeset -r novalue=''ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: local -a a1 a2ZTST_getchunk: read code chunk: local -a a1 a2 local -r r1=yes r2=no a1=(one two) a2=(three four) readonly a1 typeset -pm 'a[12]' typeset -pm 'r[12]'ZTST_test: examining line:
Toggle quote (1 lines)>typeset -a a1
ZTST_getredir: read redir for '>':typeset -a a1a1=( one two )typeset -ar a1typeset -a a2a2=( three four )typeset -r r1=yestypeset -r r2=noZTST_test: examining line:
Running test: readonly -p outputZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:typeset -a a1a1=( one two )typeset -ar a1typeset -a a2a2=( three four )typeset -r r1=yestypeset -r r2=noZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: one=hidden two=hidden three=hidden four=hidden five=hiddenZTST_getchunk: read code chunk: one=hidden two=hidden three=hidden four=hidden five=hidden fn() { local bleugh="four=vier" typeset -R10 one=eins two=(zwei dio) three $bleugh five=(cinq cinque) three=drei print -l $one $two $three $four $five } fn print -l $one $two $three $four $fiveZTST_test: examining line:
Toggle quote (1 lines)> eins
ZTST_getredir: read redir for '>': einszweidio drei viercinqcinquehiddenhiddenhiddenhiddenhiddenZTST_test: examining line:
Running test: typeset reserved word interface: basicZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output: einszweidio drei viercinqcinquehiddenhiddenhiddenhiddenhiddenZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: (ZTST_getchunk: read code chunk: ( setopt glob mkdir -p arrayglob touch arrayglob/{one,two,three,four,five,six,seven} fn() { typeset array=(arrayglob/[tf]*) print -l ${array:t} # typeset {first,second,third}=the_same_value array=( extends over multiple lines ) print -l $first $second $third "$array" # integer i=$(echo 1 + 2 + 3 + 4) print $i # # only noted by accident this was broken.. # we need to turn off special recognition # of assignments within assignments... typeset careful=( i=1 j=2 k=3 ) print -l $careful } fn )ZTST_test: examining line:
Toggle quote (1 lines)>five
ZTST_getredir: read redir for '>':fivefourthreetwothe_same_valuethe_same_valuethe_same_valueextends over multiple lines10i=1j=2k=3ZTST_test: examining line:
Running test: typeset reserved word, more complicated casesZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:fivefourthreetwothe_same_valuethe_same_valuethe_same_valueextends over multiple lines10i=1j=2k=3ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: (ZTST_getchunk: read code chunk: ( # reserved word is recognised at parsing. # yes, this is documented. # anyway, that means we need to # re-eval the function... fn=' fn() { typeset foo=`echo one word=two` print $foo print $word } ' print reserved eval $fn; fn print builtin disable -r typeset eval $fn; fn enable -r typeset disable typeset print reserved eval $fn; fn )ZTST_test: examining line:
Toggle quote (1 lines)>reserved
ZTST_getredir: read redir for '>':reservedone word=two
builtinonetworeservedone word=two
ZTST_test: examining line:
Running test: reserved word and builtin interfacesZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:reservedone word=two
builtinonetworeservedone word=twoZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: fn() {ZTST_getchunk: read code chunk: fn() { emulate -L zsh setopt typeset_silent local k typeset -A hash=(k1 v1 k2 v2) typeset foo=word array=(more than one word) for k in ${(ko)hash}; do print $k $hash[$k] done print -l $foo $array typeset -A hash typeset foo array for k in ${(ko)hash}; do print $k $hash[$k] done print -l $foo $array typeset hash=(k3 v3 k4 v4) array=(odd number here) for k in ${(ko)hash}; do print $k $hash[$k] done print -l $array } fnZTST_test: examining line:
Toggle quote (1 lines)>k1 v1
ZTST_getredir: read redir for '>':k1 v1k2 v2wordmorethanonewordk1 v1k2 v2wordmorethanonewordk3 v3k4 v4oddnumberhereZTST_test: examining line:
Running test: typeset preserves existing variable typesZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:k1 v1k2 v2wordmorethanonewordk1 v1k2 v2wordmorethanonewordk3 v3k4 v4oddnumberhereZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: fn() { typeset foo bar thing=this stuff=(that other) more=woevva; }ZTST_getchunk: read code chunk: fn() { typeset foo bar thing=this stuff=(that other) more=woevva; } which -x2 fn fn2() { typeset assignfirst=(why not); } which -x2 fn2ZTST_test: examining line:
Toggle quote (1 lines)>fn () {
ZTST_getredir: read redir for '>':fn () { typeset foo bar thing=this stuff=(that other) more=woevva }fn2 () { typeset assignfirst=(why not) }ZTST_test: examining line:
Running test: text output from typesetZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:fn () { typeset foo bar thing=this stuff=(that other) more=woevva }fn2 () { typeset assignfirst=(why not) }ZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: fn() {ZTST_getchunk: read code chunk: fn() { typeset array=() print ${(t)array} ${#array} typeset gnothergarray=() gnothergarray[1]=yes gnothergarray[2]=no print -l ${(t)gnothergarray} $gnothergarray } fnZTST_test: examining line:
Toggle quote (1 lines)>array-local 0
ZTST_getredir: read redir for '>':array-local 0array-localyesnoZTST_test: examining line:
Running test: can set empty arrayZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:array-local 0array-localyesnoZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: array=(nothing to see here)ZTST_getchunk: read code chunk: array=(nothing to see here) fn() { typeset array=(one two three four five) typeset array[2,4]=(umm er) print ${#array} $array typeset array[2,3]=() print ${#array} $array } fn print ${#array} $arrayZTST_test: examining line:
Toggle quote (1 lines)>4 one umm er five
ZTST_getredir: read redir for '>':4 one umm er five2 one five4 nothing to see hereZTST_test: examining line:
Running test: can update array slices in typesetZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:4 one umm er five2 one five4 nothing to see hereZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: examining line: array=(no really nothing here)ZTST_getchunk: read code chunk: array=(no really nothing here) fn() { typeset array=() array[2]=two array[4]=four typeset -p array typeset array=() array[3]=three array[1]=one typeset -p array } fn print $arrayZTST_test: examining line:
Toggle quote (1 lines)>typeset -a array
ZTST_getredir: read redir for '>':typeset -a arrayarray=( '' two '' four )typeset -a arrayarray=( one '' three )no really nothing hereZTST_test: examining line:
Running test: setting empty array in typesetZTST_test: expecting status: 0Input: /tmp/zsh.ztst.in.18963, output: /tmp/zsh.ztst.out.18963, error: /tmp/zsh.ztst.terr.18963ZTST_execchunk: status 0ZTST_test: test produced standard output:typeset -a arrayarray=( '' two '' four )typeset -a arrayarray=( one '' three )no really nothing hereZTST_test: and standard error:
Test successful.ZTST_test: looking for new testZTST_test: examining line:
ZTST_test: all tests successful./ztst.zsh:540: parse error near `*'./B03print.ztst: starting.
L
L
Ludovic Courtès wrote on 21 Jan 2016 22:02
(name . Leo Famulari)(address . leo@famulari.name)(address . 22420@debbugs.gnu.org)
87oacewsqq.fsf@gnu.org
Leo Famulari <leo@famulari.name> skribis:
Toggle quote (11 lines)> Zsh fails to build due to a test failure on my system (x86_64).>> The test suite does not report where the failure occurs but I believe it> is in section 'Test/B02typeset.ztst' as a result of patch-shebang> failing to find a binary interpreter for 'Test/ztst.zsh':>> patch-shebang: ./Test/ztst.zsh: warning: no binary for interpreter `zsh' found in $PATH>> I wonder if this means that the file is being interpreted by Bash, or> maybe the 'sh' mode of Bash.
It means that the ztst.zsh contains #!/usr/bin/zsh or similar, and whenthe ‘patch-shebangs’ phase runs, there’s no ‘zsh’ binary in $PATH, sothe file is left unpatched with its bogus shebang.
That means that attempts to exec ztst.zsh systematically fail.
However, I see that Zsh appears to build fine on x86_64-linux as ofv0.9.0-1121-gaca738f. What Guix commit are you using?
Thanks,Ludo’.
L
L
Leo Famulari wrote on 21 Jan 2016 23:20
Zsh test failure
(address . 22420@debbugs.gnu.org)
20160121222018.GA5534@jasmine
I patched the shebangs in "Test/ztst.zsh" and "Test/runtests.zsh" to usethe 'zsh' produced by the build phase, but it doesn't seem to have madeany difference.
L
L
Leo Famulari wrote on 22 Jan 2016 00:05
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 22420@debbugs.gnu.org)
20160121230523.GA17695@jasmine
On Thu, Jan 21, 2016 at 10:02:53PM +0100, Ludovic Courtès wrote:
Toggle quote (22 lines)> Leo Famulari <leo@famulari.name> skribis:> > > Zsh fails to build due to a test failure on my system (x86_64).> >> > The test suite does not report where the failure occurs but I believe it> > is in section 'Test/B02typeset.ztst' as a result of patch-shebang> > failing to find a binary interpreter for 'Test/ztst.zsh':> >> > patch-shebang: ./Test/ztst.zsh: warning: no binary for interpreter `zsh' found in $PATH> >> > I wonder if this means that the file is being interpreted by Bash, or> > maybe the 'sh' mode of Bash.> > It means that the ztst.zsh contains #!/usr/bin/zsh or similar, and when> the ‘patch-shebangs’ phase runs, there’s no ‘zsh’ binary in $PATH, so> the file is left unpatched with its bogus shebang.> > That means that attempts to exec ztst.zsh systematically fail.> > However, I see that Zsh appears to build fine on x86_64-linux as of> v0.9.0-1121-gaca738f. What Guix commit are you using?
Currently, feb767b23c7c. I noticed it was failing on core-updates anddecided to investigate; this commit is on master, not core-updates.
I have confirmed the failure is in 'Test/B02typeset.ztst'.
Toggle quote (3 lines)> > Thanks,> Ludo’.
L
L
Leo Famulari wrote on 22 Jan 2016 00:14
(address . 22420@debbugs.gnu.org)
20160121231452.GA10109@jasmine
On Thu, Jan 21, 2016 at 05:20:18PM -0500, Leo Famulari wrote:
Toggle quote (4 lines)> I patched the shebangs in "Test/ztst.zsh" and "Test/runtests.zsh" to use> the 'zsh' produced by the build phase, but it doesn't seem to have made> any difference.
I realized that the test suite sets 'ZTST_exe=../Src/zsh' and generallytakes care to execute Zsh scripts using that interpreter.
Toggle quote (3 lines)> > >
L
L
Ludovic Courtès wrote on 22 Jan 2016 16:04
(name . Leo Famulari)(address . leo@famulari.name)(address . 22420@debbugs.gnu.org)
878u3h7j0c.fsf@gnu.org
Leo Famulari <leo@famulari.name> skribis:
Toggle quote (26 lines)> On Thu, Jan 21, 2016 at 10:02:53PM +0100, Ludovic Courtès wrote:>> Leo Famulari <leo@famulari.name> skribis:>> >> > Zsh fails to build due to a test failure on my system (x86_64).>> >>> > The test suite does not report where the failure occurs but I believe it>> > is in section 'Test/B02typeset.ztst' as a result of patch-shebang>> > failing to find a binary interpreter for 'Test/ztst.zsh':>> >>> > patch-shebang: ./Test/ztst.zsh: warning: no binary for interpreter `zsh' found in $PATH>> >>> > I wonder if this means that the file is being interpreted by Bash, or>> > maybe the 'sh' mode of Bash.>> >> It means that the ztst.zsh contains #!/usr/bin/zsh or similar, and when>> the ‘patch-shebangs’ phase runs, there’s no ‘zsh’ binary in $PATH, so>> the file is left unpatched with its bogus shebang.>> >> That means that attempts to exec ztst.zsh systematically fail.>> >> However, I see that Zsh appears to build fine on x86_64-linux as of>> v0.9.0-1121-gaca738f. What Guix commit are you using?>> Currently, feb767b23c7c. I noticed it was failing on core-updates and> decided to investigate; this commit is on master, not core-updates.
On my x86_64 machine, commit, I’ve just run:
Toggle snippet (10 lines)$ ./pre-inst-env guix build zsh --rounds=3 -K --no-substitutes[...]@ build-succeeded /gnu/store/0g7d2ccznwrw010mlfjzzgvycc28vfyx-zsh-5.1.1.drv -/gnu/store/1wv2flclz8nnkiq1j1s2aphqp9lk68i6-zsh-5.1.1$ guix hash -r /gnu/store/1wv2flclz8nnkiq1j1s2aphqp9lk68i6-zsh-5.1.10s634s0z2b53fj3yd16bydh0qqh1xqjsjnwr59lbkqpd7yprpqma$ git describe v0.9.0-1135-gedfa91a
What system are you using?
Toggle quote (2 lines)> I have confirmed the failure is in 'Test/B02typeset.ztst'.
Could you post the relevant part of the build log?
TIA,Ludo’.
L
L
Leo Famulari wrote on 22 Jan 2016 17:30
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 22420@debbugs.gnu.org)
20160122163012.GA13174@jasmine
On Fri, Jan 22, 2016 at 04:04:35PM +0100, Ludovic Court�s wrote:
Toggle quote (11 lines)> Leo Famulari <leo@famulari.name> skribis:> > > On Thu, Jan 21, 2016 at 10:02:53PM +0100, Ludovic Court�s wrote:> >> Leo Famulari <leo@famulari.name> skribis:> >> > >> > Zsh fails to build due to a test failure on my system (x86_64).> >> >> [...]> > What system are you using?
It's an up-to-date Debian testing with this uname:Linux host 4.3.0-1-amd64 #1 SMP Debian 4.3.3-5 (2016-01-04) x86_64 GNU/Linux
I have a machine with different hardware but the same arch, same OSversion (but different setup) and same kernel config, and it built finethere. I can also build it in an up-to-date QEMU x86_64 image of GuixSD.
Toggle quote (5 lines)> > > I have confirmed the failure is in 'Test/B02typeset.ztst'.> > Could you post the relevant part of the build log?
Here is the verbose output of only the B02 test:http://paste.debian.net/367077/
And the non-verbose output of the entire test suite (the full verboselog is ~40000 lines):
phase `build' succeeded after 45.8 secondsstarting phase `check'cd Test ; make checkmake[1]: Entering directory '/tmp/guix-build-zsh-5.1.1.drv-0/zsh-5.1.1/Test'if test -n "gcc"; then \ cd .. && DESTDIR= \ make MODDIR=`pwd`/Test/Modules install.modules > /dev/null; \fiif ZTST_testlist="`for f in ./*.ztst; \ do echo $f; done`" \ ZTST_srcdir="." \ ZTST_exe=../Src/zsh \ ../Src/zsh +Z -f ./runtests.zsh; then \ stat=0; \else \ stat=1; \fi; \sleep 1; \rm -rf Modules .zcompdump; \exit $stat./A01grammar.ztst: starting.This test hangs the shell when it fails..../A01grammar.ztst: all tests successful../A02alias.ztst: starting.This test hangs the shell when it fails..../A02alias.ztst: all tests successful../A03quoting.ztst: starting../A03quoting.ztst: all tests successful../A04redirect.ztst: starting../A04redirect.ztst: all tests successful../A05execution.ztst: starting.Unable to change MONITOR optionThis test takes 5 seconds to fail...Skipping pipe leak test, requires MONITOR optionThis test takes 3 seconds and hangs the shell when it fails..../A05execution.ztst: all tests successful../A06assign.ztst: starting../A06assign.ztst: all tests successful../A07control.ztst: starting../A07control.ztst: all tests successful../B01cd.ztst: starting../B01cd.ztst: all tests successful../B02typeset.ztst: starting../ztst.zsh:540: parse error near `*'./B03print.ztst: starting../B03print.ztst: all tests successful../B04read.ztst: starting../B04read.ztst: all tests successful../B05eval.ztst: starting../B05eval.ztst: all tests successful../B06fc.ztst: starting../B06fc.ztst: all tests successful../B07emulate.ztst: starting../B07emulate.ztst: all tests successful../B08shift.ztst: starting../B08shift.ztst: all tests successful../C01arith.ztst: starting../C01arith.ztst: all tests successful../C02cond.ztst: starting.Warning: Not testing [[ -b blockdevice ]] (no devices found)Warning: Not testing [[ -f blockdevice ]] (no devices found)This test takes two seconds..../C02cond.ztst: all tests successful../C03traps.ztst: starting.This test takes at least three seconds...This test, too, takes at least three seconds...Another test that takes three seconds./C03traps.ztst: all tests successful../C04funcdef.ztst: starting../C04funcdef.ztst: all tests successful../C05debug.ztst: starting../C05debug.ztst: all tests successful../D01prompt.ztst: starting../D01prompt.ztst: all tests successful../D02glob.ztst: starting../D02glob.ztst: all tests successful../D03procsubst.ztst: starting../D03procsubst.ztst: all tests successful../D04parameter.ztst: starting../D04parameter.ztst: all tests successful../D05array.ztst: starting../D05array.ztst: all tests successful../D06subscript.ztst: starting../D06subscript.ztst: all tests successful../D07multibyte.ztst: starting.Testing multibyte with locale en_US.UTF-8./D07multibyte.ztst: all tests successful../D08cmdsubst.ztst: starting../D08cmdsubst.ztst: all tests successful../D09brace.ztst: starting../D09brace.ztst: all tests successful../E01options.ztst: starting.This test hangs the shell when it fails..../E01options.ztst: all tests successful../E02xtrace.ztst: starting../E02xtrace.ztst: all tests successful../V01zmodload.ztst: starting../V01zmodload.ztst: all tests successful../V02zregexparse.ztst: starting../V02zregexparse.ztst: all tests successful../V03mathfunc.ztst: starting../V03mathfunc.ztst: all tests successful../V04features.ztst: starting../V04features.ztst: all tests successful../V05styles.ztst: starting../V05styles.ztst: all tests successful../V06parameter.ztst: starting../V06parameter.ztst: all tests successful../V07pcre.ztst: starting.Testing PCRE multibyte with locale en_US.UTF-8./V07pcre.ztst: all tests successful../V08zpty.ztst: starting../V08zpty.ztst: all tests successful../V09datetime.ztst: starting.Test case skipped: Japanese UTF-8 locale not supported./V09datetime.ztst: all tests successful../W01history.ztst: starting../W01history.ztst: all tests successful../X02zlevi.ztst: starting../X02zlevi.ztst: all tests successful../Y01completion.ztst: starting../Y01completion.ztst: all tests successful../Y02compmatch.ztst: starting../Y02compmatch.ztst: all tests successful../Y03arguments.ztst: starting../Y03arguments.ztst: all tests successful.**************************************44 successful test scripts, 1 failure, 0 skipped**************************************Makefile:189: recipe for target 'check' failedmake[1]: *** [check] Error 1make[1]: Leaving directory '/tmp/guix-build-zsh-5.1.1.drv-0/zsh-5.1.1/Test'Makefile:265: recipe for target 'check' failedmake: *** [check] Error 2phase `check' failed after 30.2 seconds
L
L
Ludovic Courtès wrote on 22 Jan 2016 18:47
(name . Leo Famulari)(address . leo@famulari.name)(address . 22420@debbugs.gnu.org)
87r3h933ri.fsf@gnu.org
Leo Famulari <leo@famulari.name> skribis:
Toggle quote (7 lines)>> > I have confirmed the failure is in 'Test/B02typeset.ztst'.>> >> Could you post the relevant part of the build log?>> Here is the verbose output of only the B02 test:> http://paste.debian.net/367077/
It finishes with:
Toggle snippet (8 lines)2221 Test successful. 2222 ZTST_test: looking for new test 2223 ZTST_test: examining line: 2224 2225 ZTST_test: all tests successful 2226 ./ztst.zsh:550: unmatched "
Could it be that the unmatched " is the root cause? I don’t see anyclear sign of an error or failure other than that.
Could you check what’s in that file on line 550?
My 2¢.
Ludo’.
L
L
Leo Famulari wrote on 22 Jan 2016 20:33
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 22420@debbugs.gnu.org)
20160122193344.GB20936@jasmine
On Fri, Jan 22, 2016 at 06:47:29PM +0100, Ludovic Courtès wrote:
Toggle quote (25 lines)> Leo Famulari <leo@famulari.name> skribis:> > >> > I have confirmed the failure is in 'Test/B02typeset.ztst'.> >> > >> Could you post the relevant part of the build log?> >> > Here is the verbose output of only the B02 test:> > http://paste.debian.net/367077/> > It finishes with:> > --8<---------------cut here---------------start------------->8---> 2221 Test successful. > 2222 ZTST_test: looking for new test > 2223 ZTST_test: examining line: > 2224 > 2225 ZTST_test: all tests successful > 2226 ./ztst.zsh:550: unmatched " > --8<---------------cut here---------------end--------------->8---> > Could it be that the unmatched " is the root cause? I don’t see any> clear sign of an error or failure other than that.> > Could you check what’s in that file on line 550?
It's only 543 lines long! :o
I guess I'll try tracing the script.
I thought that perhaps it was referring to B02typeset.ztst, but I don'tthink there is anything related in that area of the file:540 (541 setopt glob542 mkdir -p arrayglob543 touch arrayglob/{one,two,three,four,five,six,seven}544 fn() {545 typeset array=(arrayglob/[tf]*)546 print -l ${array:t}547 #548 typeset {first,second,third}=the_same_value array=(549 extends550 over551 multiple552 lines553 )554 print -l $first $second $third "$array"555 #556 integer i=$(echo 1 + 2 + 3 + 4)557 print $i558 #559 # only noted by accident this was broken..560 # we need to turn off special recognition561 # of assignments within assignments...562 typeset careful=( i=1 j=2 k=3 )563 print -l $careful564 }
Toggle quote (4 lines)> > My 2¢.> > Ludo’.
L
L
Ludovic Courtès wrote on 22 Jan 2016 21:34
(name . Leo Famulari)(address . leo@famulari.name)(address . 22420@debbugs.gnu.org)
871t992w0w.fsf@gnu.org
Leo Famulari <leo@famulari.name> skribis:
Toggle quote (9 lines)> I thought that perhaps it was referring to B02typeset.ztst, but I don't> think there is anything related in that area of the file:> 540 (> 541 setopt glob> 542 mkdir -p arrayglob> 543 touch arrayglob/{one,two,three,four,five,six,seven}> 544 fn() {> 545 typeset array=(arrayglob/[tf]*)
Out of curiosity, what file system is this on?
Ludo’.
L
L
Leo Famulari wrote on 22 Jan 2016 21:38
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 22420@debbugs.gnu.org)
20160122203854.GA27797@jasmine
On Fri, Jan 22, 2016 at 09:34:39PM +0100, Ludovic Courtès wrote:
Toggle quote (13 lines)> Leo Famulari <leo@famulari.name> skribis:> > > I thought that perhaps it was referring to B02typeset.ztst, but I don't> > think there is anything related in that area of the file:> > 540 (> > 541 setopt glob> > 542 mkdir -p arrayglob> > 543 touch arrayglob/{one,two,three,four,five,six,seven}> > 544 fn() {> > 545 typeset array=(arrayglob/[tf]*)> > Out of curiosity, what file system is this on?
Both filesystems are btrfs on LVM. The failing system is also usingLUKS.
Toggle quote (2 lines)> > Ludo’.
L
L
Leo Famulari wrote on 22 Jan 2016 21:43
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 22420@debbugs.gnu.org)
20160122204306.GA27866@jasmine
On Fri, Jan 22, 2016 at 03:38:54PM -0500, Leo Famulari wrote:
Toggle quote (17 lines)> On Fri, Jan 22, 2016 at 09:34:39PM +0100, Ludovic Courtès wrote:> > Leo Famulari <leo@famulari.name> skribis:> > > > > I thought that perhaps it was referring to B02typeset.ztst, but I don't> > > think there is anything related in that area of the file:> > > 540 (> > > 541 setopt glob> > > 542 mkdir -p arrayglob> > > 543 touch arrayglob/{one,two,three,four,five,six,seven}> > > 544 fn() {> > > 545 typeset array=(arrayglob/[tf]*)> > > > Out of curiosity, what file system is this on?> > Both filesystems are btrfs on LVM. The failing system is also using> LUKS.
Well, actually, that only describes /home, which is perhaps notrelevant, although I did try and fail to build in a `guix environmentzsh` "by hand" in /home on the failing machine.
Failing system (separate /tmp):/tmp /dev/mapper/bad--vg-tmp on /tmp type ext4 (rw,relatime,stripe=4,data=ordered)
Working system (/tmp on /):/dev/mapper/good--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
Toggle quote (6 lines)> > > > > Ludo’.> > >
L
L
Ludovic Courtès wrote on 23 Jan 2016 11:51
(name . Leo Famulari)(address . leo@famulari.name)(address . 22420@debbugs.gnu.org)
87oacczhzx.fsf@gnu.org
Leo Famulari <leo@famulari.name> skribis:
Toggle quote (18 lines)> On Fri, Jan 22, 2016 at 03:38:54PM -0500, Leo Famulari wrote:>> On Fri, Jan 22, 2016 at 09:34:39PM +0100, Ludovic Courtès wrote:>> > Leo Famulari <leo@famulari.name> skribis:>> > >> > > I thought that perhaps it was referring to B02typeset.ztst, but I don't>> > > think there is anything related in that area of the file:>> > > 540 (>> > > 541 setopt glob>> > > 542 mkdir -p arrayglob>> > > 543 touch arrayglob/{one,two,three,four,five,six,seven}>> > > 544 fn() {>> > > 545 typeset array=(arrayglob/[tf]*)>> > >> > Out of curiosity, what file system is this on?>> >> Both filesystems are btrfs on LVM. The failing system is also using>> LUKS.
OK. Btrfs often behaves differently from ext4, exhibiting issues invarious places.
The above test uses uses readdir(2) and friends to test glob patterns,so this could be an area where Btrfs yields different results.
But anyway, you said /tmp is not on Btrfs.
Toggle quote (10 lines)> Well, actually, that only describes /home, which is perhaps not> relevant, although I did try and fail to build in a `guix environment> zsh` "by hand" in /home on the failing machine.>> Failing system (separate /tmp):> /tmp /dev/mapper/bad--vg-tmp on /tmp type ext4 (rw,relatime,stripe=4,data=ordered)>> Working system (/tmp on /):> /dev/mapper/good--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
I’m not sure what could happen here. Could you try to analyze the testlog and see what exactly is failing? Once you’ve done that, you couldtry to strace the test on both the “good” and the “bad” file system, tospot the difference.
Alternately, you could leave that for upstream to solve. ;-)
Thanks,Ludo’.
L
L
Ludovic Courtès wrote on 10 Feb 2016 22:01
control message for bug #22420
(address . control@debbugs.gnu.org)
87pow4jn59.fsf@gnu.org
tags 22420 moreinfo
L
L
Leo Famulari wrote on 10 Sep 2018 02:10
Re: Zsh test failure
(address . 22420-done@debbugs.gnu.org)
20180910001053.GA19833@jasmine.lan
This issue seems to have resolved itself.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAluVtowACgkQJkb6MLrKfwjKHg//RZ5QA7sjYNUjhEug1S0es0wMqXu97ks4yK+E2qPXSmXYJddbZJyN8ziPo9pQpM0BONbiOwT8c83BE+cmHzyuLexomsQIZoWd0ty3Eb8C4HJbu9g8wYT0BWu8ahv40xxwDX9tm/VBF74mEo6rPBnSz7acbyY2HRd36xJc2mwxUI28Iy2kx2TPayrUwIF4trp2eluJ1jjqDsDqZLtIZ6EFfdjURsv+VFu20DnEyr43X+Q64sahhG7VYwgSupvOCfhpdNpVTUapjReG0Q4W9vOr1c3ehKzpcz+A9sPgodseDmSMpKVrOb9PCu9bo6rzbEn4wL0ud9BjZej8iw3jJbS/tqpIwerL8FbMmmqFEnLxklLfcfCo8YAs8/EuPAmvn75OxXgza8gFIfdo11ALc5Q8MgSkvsmlohJU7Koinx8qkpyarmrkhi85xh07BVGYM3tx/x9x5qI8ncErIxsWWTkrcX/0p8YOBzZXRRKWWnekS0KR4Ij4+Kxzn2/hdVXmY/ZxDUr5HvX1HyyJZG/D/QISym4dzQh17WwDKB/sb//ZEBEAk+WmKxY+oXphQD+uBLDddoItWLuaGPxM5uivOq8oST9YpRjes2js0d+KENlSDZGL/rW7DDRQQ/QFSbDU/NHYCiwBwdrHEqQzfAgdtYqZ6AJNkfSvgZtFyk23U2Loyig==d6JX-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 22420@debbugs.gnu.org