. tap.sh
-plan 31
+plan 46
newpkg() {
pkgid=$1
tryrun zpm init $pkgid.zpm
- tryrun zpm newpackage -f $pkgid.zpm $pkgid
if [ $? -eq 0 ]; then
- shift
- tryrun zpm add -f $pkgid.zpm $pkgid "$@"
- else
- skip 1 not adding files init failed
- return 1
+ tryrun zpm newpackage -f $pkgid.zpm $pkgid
+ if [ $? -eq 0 ]; then
+ shift
+ tryrun zpm add -f $pkgid.zpm $pkgid "$@"
+ return $?
+ else
+ skip 1 not adding files init failed
+ return 1
+ fi
+ else
+ skip 2 "unable to init $pkgid.zpm"
fi
return 0
}
+oktest() {
+ test $1 $2
+ okexit test $1 $2
+}
+
+oknottest() {
+ test $1 $2
+ failsok test $1 $2 fails
+}
require rm -rf tmp
require mkdir tmp
test -f bin/false
failsok removed bin/false
+#
+# install second package
+#
+require ln bin/true bin/sh
+pkgid=second-1.0-1
+newpkg $pkgid bin/sh
+okexit setup package $pkgid
+require rm bin/sh
+PF=$pkgid.zpm
+zpm install -v -R. -d local.db -f $PF $pkgid | diagstdin
+okexit installed $pkgid
+oktest -f bin/sh
+
+skiponfail() {
+ rv=$?
+ if [ $rv -ne 0 ]; then
+ skip "$1" "$2"
+ return 0
+ fi
+ return 1
+}
+
+#
+# package with passing pre-script
+#
+pkgid=third-1.0-1
+PF=$pkgid.zpm
+newpkg $pkgid /bin/echo
+skiponfail 3 "can't create $pkgid" || {
+ zpm setscript -f $PF $pkgid pre-install /bin/true
+ okexit "add true pre-install script to $pkgid"
+ skiponfail 2 "can't set $pkgid pre-install script" || {
+ tryrun zpm install -v -R. -d local.db -f $PF $pkgid
+ okexit installed $pkgid
+ oktest -f bin/echo
+ }
+}
+
cd .. || bailout
require rm -rf tmp
program=$1
shift
$program "$@" > test.out 2>&1
- rv=$?
- if [ $rv -ne 0 ]; then
+ tap_return_value=$?
+ if [ $tap_return_value -ne 0 ]; then
printf 'not ';
fi
tn=$((tn + 1))
printf 'ok %d - %s %s\n' $tn $program "$*"
- if [ $rv -ne 0 ]; then
+ if [ $tap_return_value -ne 0 ]; then
cat test.out | diagstdin
fi
- return $rv
+ return $tap_return_value
}
require() {
tn=$((tn + 1))
printf 'ok %d - %s\n' $tn "$*"
shownote
+ return $rv
}
okstreq() {
EOS
#printf "%s %s%s\n" $path $rpath ${target:+" -> $target"}
-printf "%s\n" $path
+if [ $verbose -gt 0 ]; then
+ printf "%s\n" $path
+fi
+
done
eval $(zpm parse -E $pkgid)
+ #zpm list -v
current=$(zpm list -s installed "$package")
if [ $runscripts -gt 0 ]; then
fi
fi
+ #zpm shell $ZPMDB 'select * from install_status' 1>&2
if [ $dryrun -gt 0 ]; then
#zpm list -v
#zpm shell $ZPMDB 'select * from install_status'
zpm pkg $pkgid status=installed
fi
+ # TODO skip configure if not on a terminal, regardless of settings
+ # TODO will need force option
if [ $runconfigure -gt 0 ]; then
zpm runscript -f $pkgfile -p configure $pkgid $current
fi
*/
fprintf(stderr, "support for chroot equivalent not supported on this OS\n");
} else {
- fprintf(stderr, "unable to chroot as non root use\n");
+ fprintf(stderr, "unable to chroot as non root user\n");
}
} else {
if (chdir("/") == -1) {