Index: ossp-pkg/shiela/.cvsignore RCS File: /v/ossp/cvs/ossp-pkg/shiela/.cvsignore,v rcsdiff -q -kk '-r1.4' '-r1.5' -u '/v/ossp/cvs/ossp-pkg/shiela/.cvsignore,v' 2>/dev/null --- .cvsignore 2002/12/21 09:21:47 1.4 +++ .cvsignore 2004/05/07 07:34:42 1.5 @@ -7,3 +7,5 @@ config.h.in configure shtool +shiela-test.d +shiela-test.log Index: ossp-pkg/shiela/ChangeLog RCS File: /v/ossp/cvs/ossp-pkg/shiela/ChangeLog,v rcsdiff -q -kk '-r1.43' '-r1.44' -u '/v/ossp/cvs/ossp-pkg/shiela/ChangeLog,v' 2>/dev/null --- ChangeLog 2004/05/07 06:27:07 1.43 +++ ChangeLog 2004/05/07 07:34:42 1.44 @@ -11,6 +11,10 @@ Changes between 1.0.4 and 1.1.0 (23-Dec-2002 to 07-May-2004): + *) Add "shiela-test.sh" program and "make test" driver + for a minimal local test suite. + [Ralf S. Engelschall] + *) Upgraded to the new CVS 1.12.x info format strings. OSSP shiela now works with CVS >= 1.12.x only. [Ralf S. Engelschall] Index: ossp-pkg/shiela/Makefile.in RCS File: /v/ossp/cvs/ossp-pkg/shiela/Makefile.in,v rcsdiff -q -kk '-r1.7' '-r1.8' -u '/v/ossp/cvs/ossp-pkg/shiela/Makefile.in,v' 2>/dev/null --- Makefile.in 2004/05/05 13:18:47 1.7 +++ Makefile.in 2004/05/07 07:34:42 1.8 @@ -75,6 +75,9 @@ $(POD2MAN) --section=1 --center="Access Control and Logging Facility for CVS" \ --release="$$D" --date="OSSP shiela $$V" shiela-install.pod >shiela-install.1 +test: shiela shiela-install + -@$(SHELL) ./shiela-test.sh $(CVS) $(PERL) $(SHTOOL) ./shiela ./shiela-install ./shiela-test.d ./shiela-test.log + install: all $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir) $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(libdir) @@ -87,6 +90,8 @@ clean: $(RM) shiela shiela.1 $(RM) shiela-install shiela-install.1 + $(RM) shiela-test.log + $(RM) -r shiela-test.d distclean: clean $(RM) config.cache config.status config.log Index: ossp-pkg/shiela/shiela-test.sh RCS File: /v/ossp/cvs/ossp-pkg/shiela/shiela-test.sh,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/shiela/shiela-test.sh,v' | diff -u /dev/null - -L'ossp-pkg/shiela/shiela-test.sh' 2>/dev/null --- ossp-pkg/shiela/shiela-test.sh +++ - 2024-05-14 20:15:16.999088625 +0200 @@ -0,0 +1,218 @@ +#!/bin/sh +## +## OSSP shiela - CVS Access Control and Logging Facility +## Copyright (c) 2000-2004 Ralf S. Engelschall +## Copyright (c) 2000-2004 The OSSP Project +## +## This file is part of OSSP shiela, an access control and logging +## facility for Concurrent Versions System (CVS) repositories +## which can be found at http://www.ossp.org/pkg/tool/shiela/. +## +## This program is 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.0 of the License, or (at your option) any later version. +## +## This program 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 file; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +## USA, or contact Ralf S. Engelschall . +## +## shiela-test.sh: simple test suite (syntax: Bourne-Shell) +## + +# determine absolute path +abspath () { + cwd=`pwd` + echo "$1" |\ + sed -e "s;^\\.\$;$cwd;" \ + -e "s;^\\./;$cwd/;" \ + -e "s;^\\([^/]\\);$cwd/\\1;" +} + +# configuration +if [ ".$1" != . ]; then + path_cvs=`abspath $1` +else + path_cvs=`which cvs` +fi +if [ ! -f $path_cvs ]; then + echo "shiela-test:ERROR: invalid path to CVS program: $path_cvs" + exit 1 +fi +if [ ".$2" != . ]; then + path_perl=`abspath $2` +else + path_perl=`which perl` +fi +if [ ! -f $path_perl ]; then + echo "shiela-test:ERROR: invalid path to Perl program: $path_perl" + exit 1 +fi +if [ ".$3" != . ]; then + path_shtool=`abspath $3` +else + path_shtool=`which shtool` +fi +if [ ! -f $path_shtool ]; then + echo "shiela-test:ERROR: invalid path to Shtool program: $path_shtool" + exit 1 +fi +if [ ".$4" != . ]; then + path_shiela=`abspath $4` +else + path_shiela=`which shiela` +fi +if [ ! -f $path_shiela ]; then + echo "shiela-test:ERROR: invalid path to Shiela program: $path_shiela" + exit 1 +fi +if [ ".$5" != . ]; then + path_shiela_install=`abspath $5` +else + path_shiela_install=`which shiela-install` +fi +if [ ! -f $path_shiela_install ]; then + echo "shiela-test:ERROR: invalid path to Shiela Install program: $path_shiela_install" + exit 1 +fi +if [ ".$6" != . ]; then + cwd=`pwd` + path_test=`echo "$6" | sed -e "s;^\\.\$;$cwd;" -e "s;^\\./;$cwd/;" -e "s;^\\([^/]\\);$cwd/\\1;"` +else + path_test="`pwd`/shiela-test.d" +fi +if [ ".$path_test" = . ]; then + echo "shiela-test:ERROR: empty path to test tree" + exit 1 +fi +if [ ".$7" != . ]; then + cwd=`pwd` + path_log=`echo "$7" | sed -e "s;^\\.\$;$cwd;" -e "s;^\\./;$cwd/;" -e "s;^\\([^/]\\);$cwd/\\1;"` +else + path_log="`pwd`/shiela-test.log" +fi +if [ ".$path_log" = . ]; then + echo "shiela-test:ERROR: empty path to logfile" + exit 1 +fi + +# print header +header () { + msg="$1" + echo "" 1>&2 + echo "#######################################################################" 1>&2 + $path_shtool echo -e "## %B$msg%b" 1>&2 + echo "#######################################################################" 1>&2 + echo "" 1>&2 +} + +# prepare test directory +oldcwd=`pwd` +rm -rf $path_test >/dev/null 2>&1 || true +mkdir $path_test || exit 1 +cd $path_test || exit 1 + +# prepare sendmail emulator for logfile writing +cp /dev/null $path_log +( echo "#!/bin/sh" + echo "cat >>$path_log" + echo "exit 0" +) >sendmail +chmod a+x sendmail +path_sendmail=`abspath sendmail` + +# create new repository +rm -rf cvs +mkdir cvs +cvs -d $path_test/cvs init + +# setup CVSUSER variable +export CVSUSER=jdoe + +# apply shiela to repository +header "Apply Shiela to CVS Repository" +$path_shiela_install \ + batch=yes \ + repos_path=$path_test/cvs \ + tool_shiela=$path_shiela \ + tool_cvs=$path_cvs \ + tool_perl=$path_perl \ + tool_sendmail=$path_sendmail \ + shiela_local=no \ + host_name="cvs" \ + domain_name="example.com" \ + user_name="jdoe" \ + user_realname="John Doe" \ + user_email="john.doe@example.com" + +# activate forthcoming module in shiela +header "Activate Forthcoming Module in Shiela" +rm -rf CVSROOT +cvs -d :fork:$path_test/cvs co CVSROOT +patch -p0 <foo/bar.txt +echo "baz" >foo/baz.txt +(cd foo && cvs -d :fork:$path_test/cvs import -m "initial content" foo X Y) +rm -rf foo + +# checking out module 'foo' +header "Checking Out Module from CVS Repository" +cvs -f -d :fork:$path_test/cvs co foo + +# edit module 'foo' by committing +header "Edit Module in CVS Repository (cvs commit)" +( cd foo || exit 1 + ( echo "bar1" + echo "bar" + echo "bar2" + ) >bar.txt + rm baz.txt + cvs rm baz.txt + echo "quux" >quux.txt + cvs add quux.txt + ( echo "many modifications" + echo "PR:" + ) >log + cvs ci -F log + rm -f log +) + +# tag module files +header "Tagging Module Files in CVS Repository (cvs tag)" +( cd foo || exit 1 + cvs tag BAR_1_0 bar.txt + cvs tag BAR_1_1 bar.txt + cvs tag BAR_1_2 bar.txt +) + +# cleanup +cd $oldpwd +rm -rf $path_test >/dev/null 2>&1 || true +