From: Nathan Wagner Date: Mon, 24 Sep 2018 12:49:59 +0000 (+0000) Subject: add tests for more package installs X-Git-Tag: v0.1.7~30 X-Git-Url: https://pd.if.org/git/?p=zpackage;a=commitdiff_plain;h=c42956d483a79cb96ac9d9f8d1f173915c045afd add tests for more package installs --- 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 diff --git a/t/tap.sh b/t/tap.sh index 0d03831..0053002 100755 --- a/t/tap.sh +++ b/t/tap.sh @@ -8,16 +8,16 @@ tryrun() { 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() { @@ -88,6 +88,7 @@ exitwith() { tn=$((tn + 1)) printf 'ok %d - %s\n' $tn "$*" shownote + return $rv } okstreq() { diff --git a/zpm-add b/zpm-add index 2621b59..2b4dda6 100755 --- a/zpm-add +++ b/zpm-add @@ -176,5 +176,8 @@ commit; 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 diff --git a/zpm-install b/zpm-install index 994ed19..cf0df5f 100755 --- a/zpm-install +++ b/zpm-install @@ -119,6 +119,7 @@ for pkgstr in "$@"; do eval $(zpm parse -E $pkgid) + #zpm list -v current=$(zpm list -s installed "$package") if [ $runscripts -gt 0 ]; then @@ -138,6 +139,7 @@ for pkgstr in "$@"; do 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' @@ -162,6 +164,8 @@ for pkgstr in "$@"; do 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 diff --git a/zpm-runscript.c b/zpm-runscript.c index db337be..b0b0e29 100644 --- a/zpm-runscript.c +++ b/zpm-runscript.c @@ -171,7 +171,7 @@ int main(int ac, char **av){ */ 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) {