mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
Fix github test run (re: 064baa37
); clean up more build sys cruft
The change in .github/workflows/ci.yml (use 'bin/package test' to run the iffe regression tests as well) caused the GitHub workflow to fail immediately with a syntax error. This is because iffe.tst is a ksh93 script, but the runner does not have a ksh93 installed as a system package. As ofe08ca80d
, package prefers a known-good system shell over the newly compiled shell to stop builds from failing when I break ksh, making it convenient to fix it. But that change should not apply to the regression tests; they should use the newly compiled shell. src/cmd/INIT/package.sh, bin/package: - Set KEEP_SHELL to 2 when given a SHELL=* argument. - Before running the regression tests, override the known-good shell with the compiled one if $KEEP_SHELL < 2, ensuring that all tests, including the iffe ones, are run with the compiled shell. This allows 'bin/package test' to run if the known-good shell is not a ksh93, while testing that the compiled shell successfully runs iffe. (re:e08ca80d
) - Standardise 'test' command use: -a and -o are deprecated. - Remove some more unused cruft. (re:6137b99a
) src/cmd/ksh93/Mamfile: - Do not override SHELL when running shtests; this is now set correctly in 'bin/package test'. src/cmd/INIT/rt.sh: - Removed. This regression test output filter was only used with nmake, which we deleted. (re:2940b3f5
,6cc2f6a0
,aa601a39
)
This commit is contained in:
parent
ad229fd5ee
commit
b991987642
5 changed files with 85 additions and 651 deletions
102
bin/package
102
bin/package
|
@ -109,7 +109,7 @@ command=${0##*/}
|
||||||
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
0123) USAGE=$'
|
0123) USAGE=$'
|
||||||
[-?
|
[-?
|
||||||
@(#)$Id: '$command$' (ksh 93u+m) 2022-06-12 $
|
@(#)$Id: '$command$' (ksh 93u+m) 2022-07-22 $
|
||||||
]
|
]
|
||||||
[-author?Glenn Fowler <gsf@research.att.com>]
|
[-author?Glenn Fowler <gsf@research.att.com>]
|
||||||
[-author?Contributors to https://github.com/ksh93/ksh]
|
[-author?Contributors to https://github.com/ksh93/ksh]
|
||||||
|
@ -608,7 +608,7 @@ case $_PACKAGE_HOSTTYPE_ in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
KEEP_PACKAGEROOT=0
|
KEEP_PACKAGEROOT=0
|
||||||
KEEP_SHELL=0
|
KEEP_SHELL=0 # set to 1 if SHELL is a known-good system shell, 2 if SHELL supplied by user
|
||||||
USER_VPATH=
|
USER_VPATH=
|
||||||
args=
|
args=
|
||||||
assign=
|
assign=
|
||||||
|
@ -646,7 +646,7 @@ do case $i in
|
||||||
;;
|
;;
|
||||||
SHELL=*)eval $n='$'v
|
SHELL=*)eval $n='$'v
|
||||||
case $SHELL in
|
case $SHELL in
|
||||||
?*) KEEP_SHELL=1 ;;
|
?*) KEEP_SHELL=2 ;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
VPATH=*)eval USER_$n='$'v
|
VPATH=*)eval USER_$n='$'v
|
||||||
|
@ -721,7 +721,7 @@ use) case $1 in
|
||||||
$exec export VPATH=$A:$P
|
$exec export VPATH=$A:$P
|
||||||
$exec export nativepp=/usr/lib
|
$exec export nativepp=/usr/lib
|
||||||
|
|
||||||
if test '' != "$INSTALLROOT" -a -d $INSTALLROOT/include/ast
|
if test -n "$INSTALLROOT" && test -d "$INSTALLROOT/include/ast"
|
||||||
then $exec export PACKAGE_ast=$INSTALLROOT
|
then $exec export PACKAGE_ast=$INSTALLROOT
|
||||||
elif test -d ${PWD%/*}/ast/arch/$HOSTTYPE
|
elif test -d ${PWD%/*}/ast/arch/$HOSTTYPE
|
||||||
then $exec export PACKAGE_ast=${PWD%/*}/ast/arch/$HOSTTYPE
|
then $exec export PACKAGE_ast=${PWD%/*}/ast/arch/$HOSTTYPE
|
||||||
|
@ -750,7 +750,7 @@ esac
|
||||||
|
|
||||||
packageroot() # dir
|
packageroot() # dir
|
||||||
{
|
{
|
||||||
test -d $1/lib/$command -o -x $1/bin/$command
|
test -d "$1/lib/$command" || test -x "$1/bin/$command"
|
||||||
}
|
}
|
||||||
|
|
||||||
# true if arg is executable
|
# true if arg is executable
|
||||||
|
@ -758,8 +758,8 @@ packageroot() # dir
|
||||||
executable() # [!] command
|
executable() # [!] command
|
||||||
{
|
{
|
||||||
case $1 in
|
case $1 in
|
||||||
'!') test ! -x "$2" -a ! -x "$2.exe"; return ;;
|
'!') test ! -x "$2" && test ! -x "$2.exe" ;;
|
||||||
*) test -x "$1" -o -x "$1.exe"; return ;;
|
*) test -x "$1" || test -x "$1.exe" ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1460,7 +1460,7 @@ int main()
|
||||||
type=unixware
|
type=unixware
|
||||||
;;
|
;;
|
||||||
UTS*|uts*)
|
UTS*|uts*)
|
||||||
if test -x /bin/u370 -o -x /bin/u390
|
if test -x /bin/u370 || test -x /bin/u390
|
||||||
then type=uts.390
|
then type=uts.390
|
||||||
else case $arch in
|
else case $arch in
|
||||||
'') arch=$mach ;;
|
'') arch=$mach ;;
|
||||||
|
@ -1846,12 +1846,6 @@ esac
|
||||||
run=-
|
run=-
|
||||||
case $x in
|
case $x in
|
||||||
1) : accept the current package use environment
|
1) : accept the current package use environment
|
||||||
|
|
||||||
OK=ok
|
|
||||||
KSH=$EXECROOT/bin/ksh
|
|
||||||
MAKE=mamake
|
|
||||||
SUM=$EXECROOT/bin/sum
|
|
||||||
TEE=$EXECROOT/bin/tee
|
|
||||||
INITROOT=$PACKAGEROOT/src/cmd/INIT
|
INITROOT=$PACKAGEROOT/src/cmd/INIT
|
||||||
checkcc
|
checkcc
|
||||||
;;
|
;;
|
||||||
|
@ -2261,17 +2255,8 @@ cat $INITROOT/$i.sh
|
||||||
$show export EXECROOT
|
$show export EXECROOT
|
||||||
export EXECROOT
|
export EXECROOT
|
||||||
|
|
||||||
# use these if possible
|
|
||||||
|
|
||||||
OK=ok
|
|
||||||
KSH=$EXECROOT/bin/ksh
|
|
||||||
MAKE=mamake
|
|
||||||
SUM=$EXECROOT/bin/sum
|
|
||||||
TEE=$EXECROOT/bin/tee
|
|
||||||
|
|
||||||
# grab a decent default shell
|
# grab a decent default shell
|
||||||
|
|
||||||
checksh "$SHELL" || KEEP_SHELL=0
|
|
||||||
case $KEEP_SHELL in
|
case $KEEP_SHELL in
|
||||||
0) save_PATH=$PATH
|
0) save_PATH=$PATH
|
||||||
if PATH=$(getconf PATH 2>/dev/null)
|
if PATH=$(getconf PATH 2>/dev/null)
|
||||||
|
@ -2506,7 +2491,7 @@ checkaout() # cmd ...
|
||||||
'') _PACKAGE_cc=0
|
'') _PACKAGE_cc=0
|
||||||
;;
|
;;
|
||||||
*) _PACKAGE_cc=1
|
*) _PACKAGE_cc=1
|
||||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
test -f "$INITROOT/hello.c" && test -f "$INITROOT/p.c" || {
|
||||||
note "$INITROOT: INIT package source not found"
|
note "$INITROOT: INIT package source not found"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
@ -2656,7 +2641,7 @@ capture() # file command ...
|
||||||
cmd='case $error_status in 0) r=done;; *) r=failed;; esac;'
|
cmd='case $error_status in 0) r=done;; *) r=failed;; esac;'
|
||||||
cmd=$cmd' echo "$command: $action $r at $(date) in $INSTALLROOT"'
|
cmd=$cmd' echo "$command: $action $r at $(date) in $INSTALLROOT"'
|
||||||
case $quiet in
|
case $quiet in
|
||||||
0) cmd="$cmd 2>&1 | \$TEE -a $o" ;;
|
0) cmd="$cmd 2>&1 | tee -a $o" ;;
|
||||||
*) cmd="$cmd >> $o" ;;
|
*) cmd="$cmd >> $o" ;;
|
||||||
esac
|
esac
|
||||||
trap "$cmd" 0
|
trap "$cmd" 0
|
||||||
|
@ -2665,10 +2650,7 @@ capture() # file command ...
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case $quiet in
|
case $quiet in
|
||||||
0) if executable ! $TEE
|
0) # Connect 'tee' to a FIFO instead of a pipe, so that we can obtain
|
||||||
then TEE=tee
|
|
||||||
fi
|
|
||||||
# Connect 'tee' to a FIFO instead of a pipe, so that we can obtain
|
|
||||||
# the build's exit status and use it for $error_status
|
# the build's exit status and use it for $error_status
|
||||||
rm -f $o.fifo
|
rm -f $o.fifo
|
||||||
mkfifo -m 600 $o.fifo || exit
|
mkfifo -m 600 $o.fifo || exit
|
||||||
|
@ -2677,7 +2659,7 @@ capture() # file command ...
|
||||||
# unlink early
|
# unlink early
|
||||||
exec rm $o.fifo
|
exec rm $o.fifo
|
||||||
) &
|
) &
|
||||||
$TEE -a $o < $o.fifo &
|
tee -a $o < $o.fifo &
|
||||||
tee_pid=$!
|
tee_pid=$!
|
||||||
o=$o.fifo
|
o=$o.fifo
|
||||||
;;
|
;;
|
||||||
|
@ -2852,7 +2834,7 @@ make|view)
|
||||||
for i in arch arch/$HOSTTYPE
|
for i in arch arch/$HOSTTYPE
|
||||||
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || exit
|
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || exit
|
||||||
done
|
done
|
||||||
for i in bin bin/$OK bin/$OK/lib fun include lib lib/package lib/package/gen src man man/man1 man/man3 man/man8
|
for i in bin bin/ok bin/ok/lib fun include lib lib/package lib/package/gen src man man/man1 man/man3 man/man8
|
||||||
do test -d $INSTALLROOT/$i || $exec mkdir $INSTALLROOT/$i || exit
|
do test -d $INSTALLROOT/$i || $exec mkdir $INSTALLROOT/$i || exit
|
||||||
done
|
done
|
||||||
make_recurse src
|
make_recurse src
|
||||||
|
@ -3054,7 +3036,7 @@ make|view)
|
||||||
k=$INITROOT/make.probe
|
k=$INITROOT/make.probe
|
||||||
case $(ls -t $i $j $k 2>/dev/null) in
|
case $(ls -t $i $j $k 2>/dev/null) in
|
||||||
$i*) ;;
|
$i*) ;;
|
||||||
*) if test -f $j -a -f $k
|
*) if test -f "$j" && test -f "$k"
|
||||||
then note "update $i"
|
then note "update $i"
|
||||||
shellmagic
|
shellmagic
|
||||||
case $exec in
|
case $exec in
|
||||||
|
@ -3087,19 +3069,19 @@ cat $j $k
|
||||||
then execrate=execrate
|
then execrate=execrate
|
||||||
$make cd $INSTALLROOT/bin
|
$make cd $INSTALLROOT/bin
|
||||||
for i in chmod chgrp cmp cp ln mv rm
|
for i in chmod chgrp cmp cp ln mv rm
|
||||||
do if test ! -x $OK/$i -a -x /bin/$i.exe
|
do if test ! -x "ok/$i" && test -x "/bin/$i.exe"
|
||||||
then shellmagic
|
then shellmagic
|
||||||
case $exec in
|
case $exec in
|
||||||
'') echo "$SHELLMAGIC"'execrate /bin/'$i' "$@"' > $OK/$i
|
'') echo "$SHELLMAGIC"'execrate /bin/'$i' "$@"' > ok/$i
|
||||||
chmod +x $OK/$i
|
chmod +x ok/$i
|
||||||
;;
|
;;
|
||||||
*) $exec echo \'"$SHELLMAGIC"'execrate /bin/'$i' "$@"'\'' >' $OK/$i
|
*) $exec echo \'"$SHELLMAGIC"'execrate /bin/'$i' "$@"'\'' >' ok/$i
|
||||||
$exec chmod +x $OK/$i
|
$exec chmod +x ok/$i
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
PATH=$INSTALLROOT/bin/$OK:$PATH
|
PATH=$INSTALLROOT/bin/ok:$PATH
|
||||||
export PATH
|
export PATH
|
||||||
else execrate=
|
else execrate=
|
||||||
fi
|
fi
|
||||||
|
@ -3172,7 +3154,7 @@ cat $j $k
|
||||||
# mamprobe data should have been generated by this point
|
# mamprobe data should have been generated by this point
|
||||||
|
|
||||||
case $exec in
|
case $exec in
|
||||||
'') if test ! -f $INSTALLROOT/bin/.paths -o -w $INSTALLROOT/bin/.paths
|
'') if test ! -f "$INSTALLROOT/bin/.paths" || test -w "$INSTALLROOT/bin/.paths"
|
||||||
then N='
|
then N='
|
||||||
'
|
'
|
||||||
b= f= h= n= p= u= B= L=
|
b= f= h= n= p= u= B= L=
|
||||||
|
@ -3264,32 +3246,29 @@ cat $j $k
|
||||||
ksh tee cp ln mv rm \
|
ksh tee cp ln mv rm \
|
||||||
*ast*.dll *cmd*.dll *dll*.dll *shell*.dll
|
*ast*.dll *cmd*.dll *dll*.dll *shell*.dll
|
||||||
do executable $i && {
|
do executable $i && {
|
||||||
cmp -s $i $OK/$i 2>/dev/null || {
|
cmp -s $i ok/$i 2>/dev/null || {
|
||||||
test -f $OK/$i &&
|
test -f ok/$i &&
|
||||||
$exec $execrate $rm $OK/$i </dev/null
|
$exec $execrate $rm ok/$i </dev/null
|
||||||
test -f $OK/$i &&
|
test -f ok/$i &&
|
||||||
$exec $execrate $mv $OK/$i $OK/$i.old </dev/null
|
$exec $execrate $mv ok/$i ok/$i.old </dev/null
|
||||||
test -f $OK/$i &&
|
test -f ok/$i &&
|
||||||
case $exec:$i in
|
case $exec:$i in
|
||||||
:ksh)
|
:ksh)
|
||||||
err_out "$OK/$i: cannot update [may be in use by a running process] remove manually and try again"
|
err_out "ok/$i: cannot update [may be in use by a running process] remove manually and try again"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
$exec $execrate $cp $i $OK/$i
|
$exec $execrate $cp $i ok/$i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
done
|
done
|
||||||
if executable $OK/tee
|
if test "$KEEP_SHELL" -eq 0 && executable ok/ksh
|
||||||
then TEE=$INSTALLROOT/bin/$OK/tee
|
then SHELL=$INSTALLROOT/bin/ok/ksh
|
||||||
fi
|
|
||||||
if test "$KEEP_SHELL" != 1 && executable $OK/ksh
|
|
||||||
then SHELL=$INSTALLROOT/bin/$OK/ksh
|
|
||||||
export SHELL
|
export SHELL
|
||||||
fi
|
fi
|
||||||
case :$PATH: in
|
case :$PATH: in
|
||||||
*:$INSTALLROOT/bin/$OK:*)
|
*:$INSTALLROOT/bin/ok:*)
|
||||||
;;
|
;;
|
||||||
*) PATH=$INSTALLROOT/bin/$OK:$PATH
|
*) PATH=$INSTALLROOT/bin/ok:$PATH
|
||||||
export PATH
|
export PATH
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3371,10 +3350,6 @@ results)set '' $target
|
||||||
;;
|
;;
|
||||||
make|test|view)
|
make|test|view)
|
||||||
def=$1
|
def=$1
|
||||||
case $filter:$1:$SHELL in
|
|
||||||
errors:*:*) ;;
|
|
||||||
*:test:*/ksh*) filter=rt ;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
old) suf=old
|
old) suf=old
|
||||||
;;
|
;;
|
||||||
|
@ -3391,7 +3366,6 @@ results)set '' $target
|
||||||
path) path=1
|
path) path=1
|
||||||
;;
|
;;
|
||||||
test) def=test
|
test) def=test
|
||||||
filter=rt
|
|
||||||
;;
|
;;
|
||||||
*) break
|
*) break
|
||||||
;;
|
;;
|
||||||
|
@ -3444,8 +3418,6 @@ results)set '' $target
|
||||||
;;
|
;;
|
||||||
errors) $exec egrep -i '\*\*\*|FAIL[ES]|^TEST.* [123456789][0123456789]* error|core.*dump' $j | sed -e '/^TEST.\//s,/[^ ]*/,,'
|
errors) $exec egrep -i '\*\*\*|FAIL[ES]|^TEST.* [123456789][0123456789]* error|core.*dump' $j | sed -e '/^TEST.\//s,/[^ ]*/,,'
|
||||||
;;
|
;;
|
||||||
rt) $exec $KSH rt - $j
|
|
||||||
;;
|
|
||||||
*) $exec egrep -i '^TEST|FAIL' $j
|
*) $exec egrep -i '^TEST|FAIL' $j
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3489,8 +3461,14 @@ results)set '' $target
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|
||||||
test) # run all available default regression tests
|
test) # run all available default regression tests, using our newly compiled shell unless overridden
|
||||||
|
|
||||||
cd "$INSTALLROOT" || err_out "run '$0 make' first"
|
cd "$INSTALLROOT" || err_out "run '$0 make' first"
|
||||||
|
if test "$KEEP_SHELL" -lt 2
|
||||||
|
then executable bin/ksh || err_out "build ksh first, or supply a SHELL=/path/to/ksh argument"
|
||||||
|
SHELL=$INSTALLROOT/bin/ksh
|
||||||
|
fi
|
||||||
|
export SHELL
|
||||||
set -f
|
set -f
|
||||||
set -- ${args:-src}
|
set -- ${args:-src}
|
||||||
cd "$1" || exit
|
cd "$1" || exit
|
||||||
|
|
|
@ -159,42 +159,6 @@ make install
|
||||||
exec - esac
|
exec - esac
|
||||||
exec - test -w regress -a -x regress || chmod u+w,+x regress
|
exec - test -w regress -a -x regress || chmod u+w,+x regress
|
||||||
done regress generated
|
done regress generated
|
||||||
make rt
|
|
||||||
make rt.sh
|
|
||||||
done rt.sh
|
|
||||||
prev rt.sh
|
|
||||||
exec - case static,port:$OPTIND:$RANDOM in
|
|
||||||
exec - ?*:*:*|*::*|*:*:$RANDOM)
|
|
||||||
exec - ;;
|
|
||||||
exec - *) if ENV= LC_ALL=C x= $SHELL -nc '[[ a || b ]] && : ${list[level]} !(pattern)' 2>/dev/null
|
|
||||||
exec - then if grep '### .*archaic.* ###' >/dev/null
|
|
||||||
exec - then : rt contains archaic constructs :
|
|
||||||
exec - else ENV= LC_ALL=C $SHELL -n rt.sh
|
|
||||||
exec - fi
|
|
||||||
exec - fi
|
|
||||||
exec - ;;
|
|
||||||
exec - esac
|
|
||||||
exec - case '${mam_cc_SHELLMAGIC}' in
|
|
||||||
exec - "") case 184 in
|
|
||||||
exec - 0) cp rt.sh rt
|
|
||||||
exec - ;;
|
|
||||||
exec - *) {
|
|
||||||
exec - i=`(read x; echo $x) < rt.sh`
|
|
||||||
exec - case $i in
|
|
||||||
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
|
|
||||||
exec - esac
|
|
||||||
exec - cat rt.sh
|
|
||||||
exec - } > rt
|
|
||||||
exec - ;;
|
|
||||||
exec - esac
|
|
||||||
exec - ;;
|
|
||||||
exec - *) cat - rt.sh > rt <<'!'
|
|
||||||
exec - ${mam_cc_SHELLMAGIC}
|
|
||||||
exec - !
|
|
||||||
exec - ;;
|
|
||||||
exec - esac
|
|
||||||
exec - test -w rt -a -x rt || chmod u+w,+x rt
|
|
||||||
done rt generated
|
|
||||||
make crossexec
|
make crossexec
|
||||||
make crossexec.sh
|
make crossexec.sh
|
||||||
done crossexec.sh
|
done crossexec.sh
|
||||||
|
@ -498,10 +462,6 @@ make install
|
||||||
prev regress
|
prev regress
|
||||||
exec - test '' = 'regress' || ${STDCMP} 2>/dev/null -s regress ${INSTALLROOT}/bin/regress || { ${STDMV} ${INSTALLROOT}/bin/regress ${INSTALLROOT}/bin/regress.old 2>/dev/null || true; ${STDCP} regress ${INSTALLROOT}/bin/regress ;}
|
exec - test '' = 'regress' || ${STDCMP} 2>/dev/null -s regress ${INSTALLROOT}/bin/regress || { ${STDMV} ${INSTALLROOT}/bin/regress ${INSTALLROOT}/bin/regress.old 2>/dev/null || true; ${STDCP} regress ${INSTALLROOT}/bin/regress ;}
|
||||||
done ${INSTALLROOT}/bin/regress generated
|
done ${INSTALLROOT}/bin/regress generated
|
||||||
make ${INSTALLROOT}/bin/rt
|
|
||||||
prev rt
|
|
||||||
exec - test '' = 'rt' || ${STDCMP} 2>/dev/null -s rt ${INSTALLROOT}/bin/rt || { ${STDMV} ${INSTALLROOT}/bin/rt ${INSTALLROOT}/bin/rt.old 2>/dev/null || true; ${STDCP} rt ${INSTALLROOT}/bin/rt ;}
|
|
||||||
done ${INSTALLROOT}/bin/rt generated
|
|
||||||
make ${PACKAGEROOT}/bin
|
make ${PACKAGEROOT}/bin
|
||||||
exec - if test ! -d ${PACKAGEROOT}/bin
|
exec - if test ! -d ${PACKAGEROOT}/bin
|
||||||
exec - then mkdir -p ${PACKAGEROOT}/bin
|
exec - then mkdir -p ${PACKAGEROOT}/bin
|
||||||
|
@ -1095,16 +1055,16 @@ make test
|
||||||
make test.iffe
|
make test.iffe
|
||||||
make iffe.tst
|
make iffe.tst
|
||||||
done iffe.tst
|
done iffe.tst
|
||||||
exec - regress iffe.tst iffe
|
exec - exec "$SHELL" "$INSTALLROOT/bin/regress" iffe.tst iffe
|
||||||
done test.iffe virtual
|
done test.iffe virtual
|
||||||
make test.mamake
|
make test.mamake
|
||||||
make mamake.tst
|
make mamake.tst
|
||||||
make mamake.rt
|
make mamake.rt
|
||||||
done mamake.rt
|
done mamake.rt
|
||||||
exec - if [[ "1" || "mamake.rt" -nt "mamake.tst" ]]
|
exec - if test mamake.rt -nt mamake.tst
|
||||||
exec - then mktest --style=regress mamake.rt > mamake.tst
|
exec - then "$SHELL" "$INSTALLROOT/bin/mktest" --style=regress mamake.rt > mamake.tst
|
||||||
exec - fi
|
exec - fi
|
||||||
done mamake.tst generated
|
done mamake.tst generated
|
||||||
exec - regress mamake.tst mamake
|
exec - exec "$SHELL" "$INSTALLROOT/bin/regress" mamake.tst mamake
|
||||||
done test.mamake virtual
|
done test.mamake virtual
|
||||||
done test dontcare virtual
|
done test dontcare virtual
|
||||||
|
|
|
@ -109,7 +109,7 @@ command=${0##*/}
|
||||||
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
0123) USAGE=$'
|
0123) USAGE=$'
|
||||||
[-?
|
[-?
|
||||||
@(#)$Id: '$command$' (ksh 93u+m) 2022-06-12 $
|
@(#)$Id: '$command$' (ksh 93u+m) 2022-07-22 $
|
||||||
]
|
]
|
||||||
[-author?Glenn Fowler <gsf@research.att.com>]
|
[-author?Glenn Fowler <gsf@research.att.com>]
|
||||||
[-author?Contributors to https://github.com/ksh93/ksh]
|
[-author?Contributors to https://github.com/ksh93/ksh]
|
||||||
|
@ -608,7 +608,7 @@ case $_PACKAGE_HOSTTYPE_ in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
KEEP_PACKAGEROOT=0
|
KEEP_PACKAGEROOT=0
|
||||||
KEEP_SHELL=0
|
KEEP_SHELL=0 # set to 1 if SHELL is a known-good system shell, 2 if SHELL supplied by user
|
||||||
USER_VPATH=
|
USER_VPATH=
|
||||||
args=
|
args=
|
||||||
assign=
|
assign=
|
||||||
|
@ -646,7 +646,7 @@ do case $i in
|
||||||
;;
|
;;
|
||||||
SHELL=*)eval $n='$'v
|
SHELL=*)eval $n='$'v
|
||||||
case $SHELL in
|
case $SHELL in
|
||||||
?*) KEEP_SHELL=1 ;;
|
?*) KEEP_SHELL=2 ;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
VPATH=*)eval USER_$n='$'v
|
VPATH=*)eval USER_$n='$'v
|
||||||
|
@ -721,7 +721,7 @@ use) case $1 in
|
||||||
$exec export VPATH=$A:$P
|
$exec export VPATH=$A:$P
|
||||||
$exec export nativepp=/usr/lib
|
$exec export nativepp=/usr/lib
|
||||||
|
|
||||||
if test '' != "$INSTALLROOT" -a -d $INSTALLROOT/include/ast
|
if test -n "$INSTALLROOT" && test -d "$INSTALLROOT/include/ast"
|
||||||
then $exec export PACKAGE_ast=$INSTALLROOT
|
then $exec export PACKAGE_ast=$INSTALLROOT
|
||||||
elif test -d ${PWD%/*}/ast/arch/$HOSTTYPE
|
elif test -d ${PWD%/*}/ast/arch/$HOSTTYPE
|
||||||
then $exec export PACKAGE_ast=${PWD%/*}/ast/arch/$HOSTTYPE
|
then $exec export PACKAGE_ast=${PWD%/*}/ast/arch/$HOSTTYPE
|
||||||
|
@ -750,7 +750,7 @@ esac
|
||||||
|
|
||||||
packageroot() # dir
|
packageroot() # dir
|
||||||
{
|
{
|
||||||
test -d $1/lib/$command -o -x $1/bin/$command
|
test -d "$1/lib/$command" || test -x "$1/bin/$command"
|
||||||
}
|
}
|
||||||
|
|
||||||
# true if arg is executable
|
# true if arg is executable
|
||||||
|
@ -758,8 +758,8 @@ packageroot() # dir
|
||||||
executable() # [!] command
|
executable() # [!] command
|
||||||
{
|
{
|
||||||
case $1 in
|
case $1 in
|
||||||
'!') test ! -x "$2" -a ! -x "$2.exe"; return ;;
|
'!') test ! -x "$2" && test ! -x "$2.exe" ;;
|
||||||
*) test -x "$1" -o -x "$1.exe"; return ;;
|
*) test -x "$1" || test -x "$1.exe" ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1460,7 +1460,7 @@ int main()
|
||||||
type=unixware
|
type=unixware
|
||||||
;;
|
;;
|
||||||
UTS*|uts*)
|
UTS*|uts*)
|
||||||
if test -x /bin/u370 -o -x /bin/u390
|
if test -x /bin/u370 || test -x /bin/u390
|
||||||
then type=uts.390
|
then type=uts.390
|
||||||
else case $arch in
|
else case $arch in
|
||||||
'') arch=$mach ;;
|
'') arch=$mach ;;
|
||||||
|
@ -1846,12 +1846,6 @@ esac
|
||||||
run=-
|
run=-
|
||||||
case $x in
|
case $x in
|
||||||
1) : accept the current package use environment
|
1) : accept the current package use environment
|
||||||
|
|
||||||
OK=ok
|
|
||||||
KSH=$EXECROOT/bin/ksh
|
|
||||||
MAKE=mamake
|
|
||||||
SUM=$EXECROOT/bin/sum
|
|
||||||
TEE=$EXECROOT/bin/tee
|
|
||||||
INITROOT=$PACKAGEROOT/src/cmd/INIT
|
INITROOT=$PACKAGEROOT/src/cmd/INIT
|
||||||
checkcc
|
checkcc
|
||||||
;;
|
;;
|
||||||
|
@ -2261,17 +2255,8 @@ cat $INITROOT/$i.sh
|
||||||
$show export EXECROOT
|
$show export EXECROOT
|
||||||
export EXECROOT
|
export EXECROOT
|
||||||
|
|
||||||
# use these if possible
|
|
||||||
|
|
||||||
OK=ok
|
|
||||||
KSH=$EXECROOT/bin/ksh
|
|
||||||
MAKE=mamake
|
|
||||||
SUM=$EXECROOT/bin/sum
|
|
||||||
TEE=$EXECROOT/bin/tee
|
|
||||||
|
|
||||||
# grab a decent default shell
|
# grab a decent default shell
|
||||||
|
|
||||||
checksh "$SHELL" || KEEP_SHELL=0
|
|
||||||
case $KEEP_SHELL in
|
case $KEEP_SHELL in
|
||||||
0) save_PATH=$PATH
|
0) save_PATH=$PATH
|
||||||
if PATH=$(getconf PATH 2>/dev/null)
|
if PATH=$(getconf PATH 2>/dev/null)
|
||||||
|
@ -2506,7 +2491,7 @@ checkaout() # cmd ...
|
||||||
'') _PACKAGE_cc=0
|
'') _PACKAGE_cc=0
|
||||||
;;
|
;;
|
||||||
*) _PACKAGE_cc=1
|
*) _PACKAGE_cc=1
|
||||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
test -f "$INITROOT/hello.c" && test -f "$INITROOT/p.c" || {
|
||||||
note "$INITROOT: INIT package source not found"
|
note "$INITROOT: INIT package source not found"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
@ -2656,7 +2641,7 @@ capture() # file command ...
|
||||||
cmd='case $error_status in 0) r=done;; *) r=failed;; esac;'
|
cmd='case $error_status in 0) r=done;; *) r=failed;; esac;'
|
||||||
cmd=$cmd' echo "$command: $action $r at $(date) in $INSTALLROOT"'
|
cmd=$cmd' echo "$command: $action $r at $(date) in $INSTALLROOT"'
|
||||||
case $quiet in
|
case $quiet in
|
||||||
0) cmd="$cmd 2>&1 | \$TEE -a $o" ;;
|
0) cmd="$cmd 2>&1 | tee -a $o" ;;
|
||||||
*) cmd="$cmd >> $o" ;;
|
*) cmd="$cmd >> $o" ;;
|
||||||
esac
|
esac
|
||||||
trap "$cmd" 0
|
trap "$cmd" 0
|
||||||
|
@ -2665,10 +2650,7 @@ capture() # file command ...
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case $quiet in
|
case $quiet in
|
||||||
0) if executable ! $TEE
|
0) # Connect 'tee' to a FIFO instead of a pipe, so that we can obtain
|
||||||
then TEE=tee
|
|
||||||
fi
|
|
||||||
# Connect 'tee' to a FIFO instead of a pipe, so that we can obtain
|
|
||||||
# the build's exit status and use it for $error_status
|
# the build's exit status and use it for $error_status
|
||||||
rm -f $o.fifo
|
rm -f $o.fifo
|
||||||
mkfifo -m 600 $o.fifo || exit
|
mkfifo -m 600 $o.fifo || exit
|
||||||
|
@ -2677,7 +2659,7 @@ capture() # file command ...
|
||||||
# unlink early
|
# unlink early
|
||||||
exec rm $o.fifo
|
exec rm $o.fifo
|
||||||
) &
|
) &
|
||||||
$TEE -a $o < $o.fifo &
|
tee -a $o < $o.fifo &
|
||||||
tee_pid=$!
|
tee_pid=$!
|
||||||
o=$o.fifo
|
o=$o.fifo
|
||||||
;;
|
;;
|
||||||
|
@ -2852,7 +2834,7 @@ make|view)
|
||||||
for i in arch arch/$HOSTTYPE
|
for i in arch arch/$HOSTTYPE
|
||||||
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || exit
|
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || exit
|
||||||
done
|
done
|
||||||
for i in bin bin/$OK bin/$OK/lib fun include lib lib/package lib/package/gen src man man/man1 man/man3 man/man8
|
for i in bin bin/ok bin/ok/lib fun include lib lib/package lib/package/gen src man man/man1 man/man3 man/man8
|
||||||
do test -d $INSTALLROOT/$i || $exec mkdir $INSTALLROOT/$i || exit
|
do test -d $INSTALLROOT/$i || $exec mkdir $INSTALLROOT/$i || exit
|
||||||
done
|
done
|
||||||
make_recurse src
|
make_recurse src
|
||||||
|
@ -3054,7 +3036,7 @@ make|view)
|
||||||
k=$INITROOT/make.probe
|
k=$INITROOT/make.probe
|
||||||
case $(ls -t $i $j $k 2>/dev/null) in
|
case $(ls -t $i $j $k 2>/dev/null) in
|
||||||
$i*) ;;
|
$i*) ;;
|
||||||
*) if test -f $j -a -f $k
|
*) if test -f "$j" && test -f "$k"
|
||||||
then note "update $i"
|
then note "update $i"
|
||||||
shellmagic
|
shellmagic
|
||||||
case $exec in
|
case $exec in
|
||||||
|
@ -3087,19 +3069,19 @@ cat $j $k
|
||||||
then execrate=execrate
|
then execrate=execrate
|
||||||
$make cd $INSTALLROOT/bin
|
$make cd $INSTALLROOT/bin
|
||||||
for i in chmod chgrp cmp cp ln mv rm
|
for i in chmod chgrp cmp cp ln mv rm
|
||||||
do if test ! -x $OK/$i -a -x /bin/$i.exe
|
do if test ! -x "ok/$i" && test -x "/bin/$i.exe"
|
||||||
then shellmagic
|
then shellmagic
|
||||||
case $exec in
|
case $exec in
|
||||||
'') echo "$SHELLMAGIC"'execrate /bin/'$i' "$@"' > $OK/$i
|
'') echo "$SHELLMAGIC"'execrate /bin/'$i' "$@"' > ok/$i
|
||||||
chmod +x $OK/$i
|
chmod +x ok/$i
|
||||||
;;
|
;;
|
||||||
*) $exec echo \'"$SHELLMAGIC"'execrate /bin/'$i' "$@"'\'' >' $OK/$i
|
*) $exec echo \'"$SHELLMAGIC"'execrate /bin/'$i' "$@"'\'' >' ok/$i
|
||||||
$exec chmod +x $OK/$i
|
$exec chmod +x ok/$i
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
PATH=$INSTALLROOT/bin/$OK:$PATH
|
PATH=$INSTALLROOT/bin/ok:$PATH
|
||||||
export PATH
|
export PATH
|
||||||
else execrate=
|
else execrate=
|
||||||
fi
|
fi
|
||||||
|
@ -3172,7 +3154,7 @@ cat $j $k
|
||||||
# mamprobe data should have been generated by this point
|
# mamprobe data should have been generated by this point
|
||||||
|
|
||||||
case $exec in
|
case $exec in
|
||||||
'') if test ! -f $INSTALLROOT/bin/.paths -o -w $INSTALLROOT/bin/.paths
|
'') if test ! -f "$INSTALLROOT/bin/.paths" || test -w "$INSTALLROOT/bin/.paths"
|
||||||
then N='
|
then N='
|
||||||
'
|
'
|
||||||
b= f= h= n= p= u= B= L=
|
b= f= h= n= p= u= B= L=
|
||||||
|
@ -3264,32 +3246,29 @@ cat $j $k
|
||||||
ksh tee cp ln mv rm \
|
ksh tee cp ln mv rm \
|
||||||
*ast*.dll *cmd*.dll *dll*.dll *shell*.dll
|
*ast*.dll *cmd*.dll *dll*.dll *shell*.dll
|
||||||
do executable $i && {
|
do executable $i && {
|
||||||
cmp -s $i $OK/$i 2>/dev/null || {
|
cmp -s $i ok/$i 2>/dev/null || {
|
||||||
test -f $OK/$i &&
|
test -f ok/$i &&
|
||||||
$exec $execrate $rm $OK/$i </dev/null
|
$exec $execrate $rm ok/$i </dev/null
|
||||||
test -f $OK/$i &&
|
test -f ok/$i &&
|
||||||
$exec $execrate $mv $OK/$i $OK/$i.old </dev/null
|
$exec $execrate $mv ok/$i ok/$i.old </dev/null
|
||||||
test -f $OK/$i &&
|
test -f ok/$i &&
|
||||||
case $exec:$i in
|
case $exec:$i in
|
||||||
:ksh)
|
:ksh)
|
||||||
err_out "$OK/$i: cannot update [may be in use by a running process] remove manually and try again"
|
err_out "ok/$i: cannot update [may be in use by a running process] remove manually and try again"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
$exec $execrate $cp $i $OK/$i
|
$exec $execrate $cp $i ok/$i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
done
|
done
|
||||||
if executable $OK/tee
|
if test "$KEEP_SHELL" -eq 0 && executable ok/ksh
|
||||||
then TEE=$INSTALLROOT/bin/$OK/tee
|
then SHELL=$INSTALLROOT/bin/ok/ksh
|
||||||
fi
|
|
||||||
if test "$KEEP_SHELL" != 1 && executable $OK/ksh
|
|
||||||
then SHELL=$INSTALLROOT/bin/$OK/ksh
|
|
||||||
export SHELL
|
export SHELL
|
||||||
fi
|
fi
|
||||||
case :$PATH: in
|
case :$PATH: in
|
||||||
*:$INSTALLROOT/bin/$OK:*)
|
*:$INSTALLROOT/bin/ok:*)
|
||||||
;;
|
;;
|
||||||
*) PATH=$INSTALLROOT/bin/$OK:$PATH
|
*) PATH=$INSTALLROOT/bin/ok:$PATH
|
||||||
export PATH
|
export PATH
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3371,10 +3350,6 @@ results)set '' $target
|
||||||
;;
|
;;
|
||||||
make|test|view)
|
make|test|view)
|
||||||
def=$1
|
def=$1
|
||||||
case $filter:$1:$SHELL in
|
|
||||||
errors:*:*) ;;
|
|
||||||
*:test:*/ksh*) filter=rt ;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
old) suf=old
|
old) suf=old
|
||||||
;;
|
;;
|
||||||
|
@ -3391,7 +3366,6 @@ results)set '' $target
|
||||||
path) path=1
|
path) path=1
|
||||||
;;
|
;;
|
||||||
test) def=test
|
test) def=test
|
||||||
filter=rt
|
|
||||||
;;
|
;;
|
||||||
*) break
|
*) break
|
||||||
;;
|
;;
|
||||||
|
@ -3444,8 +3418,6 @@ results)set '' $target
|
||||||
;;
|
;;
|
||||||
errors) $exec egrep -i '\*\*\*|FAIL[ES]|^TEST.* [123456789][0123456789]* error|core.*dump' $j | sed -e '/^TEST.\//s,/[^ ]*/,,'
|
errors) $exec egrep -i '\*\*\*|FAIL[ES]|^TEST.* [123456789][0123456789]* error|core.*dump' $j | sed -e '/^TEST.\//s,/[^ ]*/,,'
|
||||||
;;
|
;;
|
||||||
rt) $exec $KSH rt - $j
|
|
||||||
;;
|
|
||||||
*) $exec egrep -i '^TEST|FAIL' $j
|
*) $exec egrep -i '^TEST|FAIL' $j
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3489,8 +3461,14 @@ results)set '' $target
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
|
|
||||||
test) # run all available default regression tests
|
test) # run all available default regression tests, using our newly compiled shell unless overridden
|
||||||
|
|
||||||
cd "$INSTALLROOT" || err_out "run '$0 make' first"
|
cd "$INSTALLROOT" || err_out "run '$0 make' first"
|
||||||
|
if test "$KEEP_SHELL" -lt 2
|
||||||
|
then executable bin/ksh || err_out "build ksh first, or supply a SHELL=/path/to/ksh argument"
|
||||||
|
SHELL=$INSTALLROOT/bin/ksh
|
||||||
|
fi
|
||||||
|
export SHELL
|
||||||
set -f
|
set -f
|
||||||
set -- ${args:-src}
|
set -- ${args:-src}
|
||||||
cd "$1" || exit
|
cd "$1" || exit
|
||||||
|
|
|
@ -1,482 +0,0 @@
|
||||||
########################################################################
|
|
||||||
# #
|
|
||||||
# This software is part of the ast package #
|
|
||||||
# Copyright (c) 1994-2011 AT&T Intellectual Property #
|
|
||||||
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
|
|
||||||
# and is licensed under the #
|
|
||||||
# Eclipse Public License, Version 1.0 #
|
|
||||||
# by AT&T Intellectual Property #
|
|
||||||
# #
|
|
||||||
# A copy of the License is available at #
|
|
||||||
# http://www.eclipse.org/org/documents/epl-v10.html #
|
|
||||||
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
|
|
||||||
# #
|
|
||||||
# Information and Software Systems Research #
|
|
||||||
# AT&T Research #
|
|
||||||
# Florham Park NJ #
|
|
||||||
# #
|
|
||||||
# Glenn Fowler <gsf@research.att.com> #
|
|
||||||
# #
|
|
||||||
########################################################################
|
|
||||||
: rt - nmake test output filter
|
|
||||||
|
|
||||||
command=rt
|
|
||||||
flags='--silent --keepgoing'
|
|
||||||
failed=0
|
|
||||||
heading=1
|
|
||||||
verbose=0
|
|
||||||
|
|
||||||
case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|
||||||
0123) ARGV0="-a $command"
|
|
||||||
USAGE=$'
|
|
||||||
[-?
|
|
||||||
@(#)$Id: rt (AT&T Research) 2010-07-27 $
|
|
||||||
]
|
|
||||||
[-author?Glenn Fowler <gsf@research.att.com>]
|
|
||||||
[-copyright?Copyright (c) 2005-2012 AT&T Intellectual Property]
|
|
||||||
[-license?http://www.eclipse.org/org/documents/epl-v10.html]
|
|
||||||
[+NAME?rt - run "nmake test" and filter output]
|
|
||||||
[+DESCRIPTION?\brt\b runs \bnmake test\b and filters the regression
|
|
||||||
test output to contain only test summary lines. If no \atest\a
|
|
||||||
operands are specified then \btest\b is assumed. If \b-\b is
|
|
||||||
specified then the \afile\a operands, or the standard input
|
|
||||||
if no \afile\a operands are specified, are filtered instead
|
|
||||||
of the output from \bnmake\b.]
|
|
||||||
[f:failed?Only list failed test results.]
|
|
||||||
[h!:heading?Enable per-file heading when more than one \afile\a operand
|
|
||||||
follows \b-\b.]
|
|
||||||
[v:verbose?Run with \bREGRESSFLAGS=-v\b.]
|
|
||||||
|
|
||||||
[ test ... | - [ file ... ] ]
|
|
||||||
|
|
||||||
[+SEE ALSO?\bnmake\b(1), \bregress\b(1)]
|
|
||||||
[+CAVEATS?\brt\b guesses the regression test output style. Garbled
|
|
||||||
output indicates a bad guess.]
|
|
||||||
'
|
|
||||||
;;
|
|
||||||
*) ARGV0=""
|
|
||||||
USAGE="fhv"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
function usage
|
|
||||||
{
|
|
||||||
OPTIND=0
|
|
||||||
getopts $ARGV0 "$USAGE" OPT '-?'
|
|
||||||
exit 2
|
|
||||||
}
|
|
||||||
|
|
||||||
while getopts $ARGV0 "$USAGE" OPT
|
|
||||||
do case $OPT in
|
|
||||||
f) failed=1 ;;
|
|
||||||
h) heading=0 ;;
|
|
||||||
v) (( verbose=$OPTARG )) && flags="$flags REGRESSFLAGS=-v" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift `expr $OPTIND - 1`
|
|
||||||
|
|
||||||
ifs=${IFS:-$' \t\n'}
|
|
||||||
set -o noglob
|
|
||||||
component=
|
|
||||||
dots='............................................'
|
|
||||||
bad=' ***'
|
|
||||||
style=unknown
|
|
||||||
integer tests errors signals lineno=0 skip=0
|
|
||||||
typeset -l lower
|
|
||||||
|
|
||||||
function results # tests errors signals
|
|
||||||
{
|
|
||||||
integer t=$1 e=$2 s=$3
|
|
||||||
typeset label note
|
|
||||||
if [[ $style != unknown ]] && (( errors >= 0 ))
|
|
||||||
then style=unknown
|
|
||||||
if (( !failed || errors ))
|
|
||||||
then if (( failed ))
|
|
||||||
then print -r -n -- "$unit"
|
|
||||||
fi
|
|
||||||
if (( t >= 0 ))
|
|
||||||
then if (( t == 1))
|
|
||||||
then label="test "
|
|
||||||
else label=tests
|
|
||||||
fi
|
|
||||||
printf $'%s%5d %s' "$prefix" "$t" "$label"
|
|
||||||
prefix=
|
|
||||||
else prefix="$prefix..........."
|
|
||||||
fi
|
|
||||||
if (( s ))
|
|
||||||
then label=signal
|
|
||||||
(( e=s ))
|
|
||||||
else label=error
|
|
||||||
fi
|
|
||||||
if (( e != 1))
|
|
||||||
then label=${label}s
|
|
||||||
fi
|
|
||||||
if (( e == 1 ))
|
|
||||||
then note=" $bad"
|
|
||||||
elif (( e > 1 ))
|
|
||||||
then note=$bad
|
|
||||||
fi
|
|
||||||
printf $'%s%5d %s%s\n' "$prefix" "$e" "$label" "$note"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function unit
|
|
||||||
{
|
|
||||||
typeset x
|
|
||||||
if [[ $component ]]
|
|
||||||
then x=${component##*/}
|
|
||||||
if [[ " $x " != *' '$unit' '* && " $unit " != *' '$x' '* ]]
|
|
||||||
then if [[ $component == cmd/?*lib/* ]]
|
|
||||||
then unit="$unit $x"
|
|
||||||
else unit="$x $unit"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
unit="$unit ${dots:1:${#dots}-${#unit}}"
|
|
||||||
if [[ $1 ]]
|
|
||||||
then unit="$unit..........."
|
|
||||||
fi
|
|
||||||
if (( ! failed ))
|
|
||||||
then print -r -n -- "$unit"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $1 == - ]]
|
|
||||||
then shift
|
|
||||||
if (( $# <= 1 ))
|
|
||||||
then heading=0
|
|
||||||
fi
|
|
||||||
if (( heading ))
|
|
||||||
then for i
|
|
||||||
do print test heading $i
|
|
||||||
cat -- "$i"
|
|
||||||
done
|
|
||||||
else cat "$@"
|
|
||||||
fi
|
|
||||||
else if [[ $1 == *=* ]]
|
|
||||||
then set test "$@"
|
|
||||||
elif (( ! $# ))
|
|
||||||
then set test
|
|
||||||
fi
|
|
||||||
nmake "$@" $flags 2>&1
|
|
||||||
fi |
|
|
||||||
while read -r line
|
|
||||||
do set '' $line
|
|
||||||
shift
|
|
||||||
case $line in
|
|
||||||
TEST[' ']*', '*' error'*)
|
|
||||||
IFS=${IFS}","
|
|
||||||
set '' $line
|
|
||||||
IFS=$ifs
|
|
||||||
set '' $*
|
|
||||||
while :
|
|
||||||
do case $2 in
|
|
||||||
'') break
|
|
||||||
;;
|
|
||||||
error|errors)
|
|
||||||
errors=$1
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
test|tests)
|
|
||||||
tests=$1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
results $tests $errors
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
TEST[' ']*)
|
|
||||||
results $tests $errors
|
|
||||||
IFS=${IFS}","
|
|
||||||
set '' $line
|
|
||||||
IFS=$ifs
|
|
||||||
set '' $*
|
|
||||||
unit=${3##*/}
|
|
||||||
case $4 in
|
|
||||||
[a-zA-Z]*) unit="$unit $4" ;;
|
|
||||||
esac
|
|
||||||
unit
|
|
||||||
prefix=
|
|
||||||
errors=0
|
|
||||||
signals=0
|
|
||||||
style=regress
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
'pathname and options of item under test')
|
|
||||||
read -r line || break
|
|
||||||
results $tests $errors $signals
|
|
||||||
set '' $line
|
|
||||||
unit=${2##*/}
|
|
||||||
unit
|
|
||||||
tests=0
|
|
||||||
errors=0
|
|
||||||
signals=0
|
|
||||||
style=script
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
'test heading '*)
|
|
||||||
if (( heading ))
|
|
||||||
then if (( heading > 1 ))
|
|
||||||
then print
|
|
||||||
else heading=2
|
|
||||||
fi
|
|
||||||
set '' $line
|
|
||||||
shift 3
|
|
||||||
print -r -- "==> $* <=="
|
|
||||||
fi
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
'test '*' begins at '????-??-??+??:??:??|'test '*' begins at '*' '*' '*' '*' '*)
|
|
||||||
results $tests $errors $signals
|
|
||||||
unit=${2##*/}
|
|
||||||
unit=${unit%.sh}
|
|
||||||
unit
|
|
||||||
prefix=
|
|
||||||
tests=-1
|
|
||||||
errors=0
|
|
||||||
signals=0
|
|
||||||
style=shell
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
'test '*' at '????-??-??+??:??:??' [ '*' ]'|'test '*' at '*' '*' '*' '*' '*)
|
|
||||||
case $line in
|
|
||||||
*' [ '*test*error*' ]')
|
|
||||||
while :
|
|
||||||
do case $1 in
|
|
||||||
'[') tests=$2
|
|
||||||
errors=$4
|
|
||||||
if (( errors > 256 ))
|
|
||||||
then (( signals++ ))
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
*' [ '*test*signal*' ]')
|
|
||||||
while :
|
|
||||||
do case $1 in
|
|
||||||
'[') tests=$2
|
|
||||||
signals=$4
|
|
||||||
if (( signals ))
|
|
||||||
then (( errors++ ))
|
|
||||||
fi
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
*) if [[ $3 != passed ]]
|
|
||||||
then (( errors )) || (( errors++ ))
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
results $tests $errors $signals
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
'## ---'*(-)'--- ##')
|
|
||||||
(( ++lineno > skip )) || continue
|
|
||||||
read -r line || break
|
|
||||||
lower=$line
|
|
||||||
set '' $lower
|
|
||||||
case $lower in
|
|
||||||
'##'*'test suite:'*'##')
|
|
||||||
results $tests $errors $signals
|
|
||||||
set -- ${lower//*suite:}
|
|
||||||
set -- ${*//[.#]/}
|
|
||||||
unit=$*
|
|
||||||
if [[ $unit == *' tests' ]]
|
|
||||||
then unit=${unit/' tests'/}
|
|
||||||
fi
|
|
||||||
main=$unit
|
|
||||||
prefix=
|
|
||||||
tests=0
|
|
||||||
errors=0
|
|
||||||
signals=0
|
|
||||||
category=
|
|
||||||
style=autotest
|
|
||||||
(( skip = lineno + 1 ))
|
|
||||||
unit
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
+(-)) case $style in
|
|
||||||
regress) continue ;;
|
|
||||||
esac
|
|
||||||
(( ++lineno > skip )) || continue
|
|
||||||
read -r line || break
|
|
||||||
set '' $line
|
|
||||||
case $line in
|
|
||||||
'Running tests for '*)
|
|
||||||
results $tests $errors $signals
|
|
||||||
shift 4
|
|
||||||
unit=
|
|
||||||
while (( $# ))
|
|
||||||
do if [[ $1 == on ]]
|
|
||||||
then break
|
|
||||||
fi
|
|
||||||
if [[ $unit ]]
|
|
||||||
then unit="$unit "
|
|
||||||
fi
|
|
||||||
unit=$unit${1##*/}
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
main=$unit
|
|
||||||
prefix=
|
|
||||||
tests=-1
|
|
||||||
errors=-1
|
|
||||||
category=
|
|
||||||
style=perl
|
|
||||||
(( skip = lineno + 1 ))
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
*' : '*)results $tests $errors $signals
|
|
||||||
unit=${2##*/}
|
|
||||||
unit=${unit%.sh}
|
|
||||||
unit
|
|
||||||
prefix=
|
|
||||||
tests=0
|
|
||||||
errors=0
|
|
||||||
signals=0
|
|
||||||
style=timing
|
|
||||||
(( skip = lineno + 1 ))
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
+([0-9])*([a-zA-Z0-9])' '*)
|
|
||||||
case $style in
|
|
||||||
script) case $line in
|
|
||||||
*FAILED*|*failed*)
|
|
||||||
(( errors++ ))
|
|
||||||
;;
|
|
||||||
*) (( tests++ ))
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
make:*|'make ['*']:'*)
|
|
||||||
case $line in
|
|
||||||
*': warning:'*|*'making test'*|*'action'?(s)' failed'*|*': *** '*)
|
|
||||||
;;
|
|
||||||
*) results $tests $errors $signals
|
|
||||||
print -r -u2 -- "$line"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
+([/a-zA-Z_0-9]):)
|
|
||||||
component=${line%:}
|
|
||||||
;;
|
|
||||||
'') continue
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
case $style in
|
|
||||||
autotest)
|
|
||||||
case $line in
|
|
||||||
+([0-9]):*ok)
|
|
||||||
(( tests++ ))
|
|
||||||
;;
|
|
||||||
+([0-9]):*FAILED*)
|
|
||||||
(( tests++ ))
|
|
||||||
(( errors++ ))
|
|
||||||
if (( $verbose ))
|
|
||||||
then if [[ ! $prefix ]]
|
|
||||||
then prefix=$unit
|
|
||||||
print
|
|
||||||
fi
|
|
||||||
print -r -- " ${line//*'FAILED '/}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
perl) case $line in
|
|
||||||
*'........ '*)
|
|
||||||
if [[ $1 == */* ]]
|
|
||||||
then cat=${1%%/*}
|
|
||||||
if [[ $cat != $category ]]
|
|
||||||
then results $tests $errors $signals
|
|
||||||
category=$cat
|
|
||||||
unit="$main $category"
|
|
||||||
unit
|
|
||||||
prefix=
|
|
||||||
tests=0
|
|
||||||
errors=0
|
|
||||||
signals=0
|
|
||||||
fi
|
|
||||||
(( tests++ ))
|
|
||||||
case $line in
|
|
||||||
*' ok') ;;
|
|
||||||
*) (( errors++ ))
|
|
||||||
if (( $verbose ))
|
|
||||||
then if [[ ! $prefix ]]
|
|
||||||
then prefix=$unit
|
|
||||||
print
|
|
||||||
fi
|
|
||||||
print -r -- "$line"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else results $tests $errors $signals
|
|
||||||
case $line in
|
|
||||||
*' ok') errors=0 ;;
|
|
||||||
*) errors=1 ;;
|
|
||||||
esac
|
|
||||||
unit="$main $1"
|
|
||||||
unit
|
|
||||||
if (( $verbose && errors ))
|
|
||||||
then prefix=$unit
|
|
||||||
print
|
|
||||||
shift 2
|
|
||||||
print -r -- "$@"
|
|
||||||
else prefix=
|
|
||||||
fi
|
|
||||||
results $tests $errors $signals
|
|
||||||
tests=-1
|
|
||||||
errors=-1
|
|
||||||
category=
|
|
||||||
fi
|
|
||||||
style=perl
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
case $line in
|
|
||||||
*FAILED*|*failed*)
|
|
||||||
(( errors++ ))
|
|
||||||
;;
|
|
||||||
*) case $style in
|
|
||||||
regress)case $line in
|
|
||||||
['<>']*);;
|
|
||||||
*) continue ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
script) continue
|
|
||||||
;;
|
|
||||||
shell) ((errors++ ))
|
|
||||||
;;
|
|
||||||
timing) (( tests++ ))
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
unknown)continue
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if (( $verbose ))
|
|
||||||
then if [[ ! $prefix ]]
|
|
||||||
then prefix=$unit
|
|
||||||
print
|
|
||||||
fi
|
|
||||||
print -r -- "$line"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
results $tests $errors $signals
|
|
|
@ -1467,6 +1467,6 @@ make test
|
||||||
make tests/shtests
|
make tests/shtests
|
||||||
done tests/shtests
|
done tests/shtests
|
||||||
exec - cd "$PACKAGEROOT/src/cmd/ksh93/tests"
|
exec - cd "$PACKAGEROOT/src/cmd/ksh93/tests"
|
||||||
exec - SHELL=$INSTALLROOT/bin/ksh "$INSTALLROOT/bin/ksh" ./shtests
|
exec - exec "$SHELL" shtests
|
||||||
done test.ksh virtual
|
done test.ksh virtual
|
||||||
done test dontcare virtual
|
done test dontcare virtual
|
||||||
|
|
Loading…
Reference in a new issue