Index: ossp-pkg/shtool/test.sh RCS File: /v/ossp/cvs/ossp-pkg/shtool/test.sh,v co -q -kk -p'1.6' '/v/ossp/cvs/ossp-pkg/shtool/test.sh,v' | diff -u /dev/null - -L'ossp-pkg/shtool/test.sh' 2>/dev/null --- ossp-pkg/shtool/test.sh +++ - 2024-05-16 05:37:52.480604693 +0200 @@ -0,0 +1,75 @@ +#!/bin/sh +## +## test.sh -- GNU shtool test suite driver +## Copyright (c) 1999-2000 Ralf S. Engelschall +## +## This file is part of shtool and free software; you can redistribute +## it and/or modify it under the terms of the GNU General Public +## License as published by the Free Software Foundation; either version +## 2 of the License, or (at your option) any later version. +## +## This file is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +## USA, or contact Ralf S. Engelschall . +## + +shtool=../shtool +testdb=../test.db + +# move to a subdirectory +rm -rf test.sd >/dev/null 2>&1 +mkdir test.sd || exit 1 +cd test.sd || exit 1 + +# make sure the tool and database exists +test -f $shtool || exit 1 +test -f $testdb || exit 1 + +# iterate over all tool tests +TOOLS=`grep '^@begin' $testdb | sed -e 's/^@begin{//' -e 's/}.*$//'` +failed=0 +passed=0 +ran=0 +for tool in $TOOLS; do + rm -rf ./* >/dev/null 2>&1 + echo "${tool}..............." | awk '{ printf("%s", substr($0, 0, 15)); }' + sed -e "/^@begin{$tool}/,/^@end{$tool}/p" -e '1,$d' $testdb |\ + sed -e '/^@begin/d' -e '/^@end/d' \ + -e 's/\([^\\]\)[ ]*$/\1 || exit 1/g' \ + -e "s;shtool;$shtool;g" >run.sh + echo "exit 0" >>run.sh + sh -x run.sh >run.log 2>&1 + if [ $? -ne 0 ]; then + # generate report + echo "FAILED" + echo "+---Test------------------------------" + cat run.sh | sed -e 's/^/| /g' + echo "+---Trace-----------------------------" + cat run.log | sed -e 's/^/| /g' + failed=`expr $failed + 1` + echo "+-------------------------------------" + else + passed=`expr $passed + 1` + echo "ok" + fi + ran=`expr $ran + 1` +done + +# cleanup +cd .. +rm -rf test.sd >/dev/null 2>&1 + +# result +if [ $failed -gt 0 ]; then + echo "FAILED: passed: $passed/$ran, failed: $failed/$ran" +else + echo "OK: passed: $passed/$ran" +fi +exit 0 +