X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=t%2Finstall.t;h=79308e028c70acace13a92fbd58b5644ad490301;hb=c42956d483a79cb96ac9d9f8d1f173915c045afd;hp=6631ddfa04a84b681e312b54e20f7451a83698b7;hpb=bdaf2b364190e213f7aa67657c85e56a549ece11;p=zpackage diff --git a/t/install.t b/t/install.t index 6631ddf..79308e0 100755 --- a/t/install.t +++ b/t/install.t @@ -6,22 +6,36 @@ . 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 @@ -119,6 +133,44 @@ okstreq "$ns" "installed" "install set $pkgid status" 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