]> pd.if.org Git - zpackage/blobdiff - t/install.t
change add test script to use tmp directory
[zpackage] / t / install.t
index 6631ddfa04a84b681e312b54e20f7451a83698b7..f31ec6774bb994b263421f83a2b96a83f9033f34 100755 (executable)
@@ -6,22 +6,36 @@
 
 . tap.sh
 
-plan 31
+plan 53
 
 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
@@ -39,11 +53,11 @@ PF=$pkgid.zpm
 #require zpm add -f $PF $pkgid /bin/true
 
 #
-# install via pkgfiles
+# install via syncfs
 #
 require zpm pkg -f $PF $pkgid status=installing
-zpm pkgfiles -d $PF -R. $pkgid 2>&1
-okexit ran pkgfiles
+zpm syncfs -d $PF -R. $pkgid 2>&1
+okexit ran syncfs
 
 test -f bin/true
 okexit bin/true installed
@@ -119,6 +133,63 @@ 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 -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
+       }
+}
+
+#
+# package with failing pre-script
+#
+pkgid=fourth-1.0-1
+PF=$pkgid.zpm
+newpkg $pkgid /bin/printf
+skiponfail 3 "can't create $pkgid" || {
+       zpm setscript -f $PF $pkgid pre-install /bin/false
+       okexit "add false pre-install script to $pkgid"
+       skiponfail 1 "can't set $pkgid pre-install script" || {
+               zpm install -R. -d local.db -f $PF $pkgid 2>/dev/null
+               failsok failed to install $pkgid
+       }
+}
+
+tryrun zpm uninstall -R. -d local.db third-1.0-1
+test -f bin/echo
+failsok bin/echo removed
+
 cd .. || bailout
 require rm -rf tmp