]> pd.if.org Git - zpackage/commitdiff
add tests for more package installs
authorNathan Wagner <nw@hydaspes.if.org>
Mon, 24 Sep 2018 12:49:59 +0000 (12:49 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Mon, 24 Sep 2018 12:49:59 +0000 (12:49 +0000)
t/install.t
t/tap.sh
zpm-add
zpm-install
zpm-runscript.c

index 6631ddfa04a84b681e312b54e20f7451a83698b7..79308e028c70acace13a92fbd58b5644ad490301 100755 (executable)
@@ -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
 
index 0d03831bcf03cbb41d63ba198d8ab1f0a96f61a5..00530027795577e8cd9d51c46b297e34461f5b4c 100755 (executable)
--- 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 2621b596cedf08bc7e391427932b7ce16c2374f6..2b4dda692f822361ccc032aef314d7156404a724 100755 (executable)
--- 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
index 994ed195d14bc5c24ed7a68d4b0e24eaaa9bba1a..cf0df5f2e89f49ca567188cb27df629ef9728ada 100755 (executable)
@@ -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
index db337beef3d9d154fa090be93c36daa43f645d4a..b0b0e29d276b99fbed8015222de863397f754fa0 100644 (file)
@@ -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) {