]> pd.if.org Git - zpackage/blob - t/install.t
add test file for install
[zpackage] / t / install.t
1 #!/bin/sh
2
3 # vim: syn=sh
4
5 # test addfile
6
7 . tap.sh
8
9 plan 31
10
11 newpkg() {
12         pkgid=$1
13         tryrun zpm init $pkgid.zpm
14         tryrun zpm newpackage -f $pkgid.zpm $pkgid
15         if [ $? -eq 0 ]; then
16                 shift
17                 tryrun zpm add -f $pkgid.zpm $pkgid "$@"
18         else 
19                 skip 1 not adding files init failed
20                 return 1
21         fi
22         return 0
23 }
24
25
26 require rm -rf tmp
27 require mkdir tmp
28 cd tmp || bailout
29
30 # set up a new package
31
32 pkgid=itest-1.0-1
33 newpkg $pkgid /bin/true
34 okexit setup package $pkgid
35 PF=$pkgid.zpm
36
37 #require zpm init $PF
38 #require zpm newpackage -f $PF $pkgid
39 #require zpm add -f $PF $pkgid /bin/true
40
41 #
42 # install via pkgfiles
43 #
44 require zpm pkg -f $PF $pkgid status=installing
45 zpm pkgfiles -d $PF -R. $pkgid 2>&1
46 okexit ran pkgfiles
47
48 test -f bin/true
49 okexit bin/true installed
50
51 require zpm pkg -f $PF $pkgid status=packaged
52 ns=$(zpm pkg -f $PF $pkgid status)
53 okstreq "$ns" "packaged" set package status
54
55 require rm -rf bin
56
57 #
58 # install via install
59 #
60
61 # TODO should probably have merge set the status to merged by default
62
63 require zpm init local.db
64 zpm install -R. -d local.db -f $PF $pkgid
65 #zpm list -f local.db -v | diagstdin
66 okexit installed
67 ns=$(zpm pkg -f local.db $pkgid status)
68 okstreq "$ns" "installed" "install set package status"
69
70 test -f bin/true
71 okexit bin/true installed via zpm-install
72
73 #
74 # upgrade package
75 #
76
77 # update the package version
78 require zpm pkg -f $PF $pkgid version=2.0
79 newver=$(zpm pkg -f $PF itest version)
80 okstreq "$newver" "2.0" "have updated version"
81
82 rm -f test.out
83 tryrun zpm add -v -f $PF itest /bin/false
84 if [ $? -ne 0 ]; then
85         diag h2
86         cat test.out | diagstdin
87         zpm list -f $PF | diagstdin
88         bailout add failed
89 fi
90
91 zpm install -R. -d local.db -f $PF itest-2.0-1
92 okexit installed
93 if [ $? -ne 0 ]; then
94         cat test.out | diagstdin
95         zpm list -f $PF | diagstdin
96         bailout add failed
97 fi
98 test -f bin/false
99 okexit bin/false installed via zpm-install
100
101 ns=$(zpm pkg -f local.db $pkgid status)
102 okstreq "$ns" "updated" "install set $pkgid status"
103 ns=$(zpm pkg -f local.db itest-2.0-1 status)
104 okstreq "$ns" "installed" "install set itest-2.0-1 status"
105
106 #
107 # upgrade package removing a file
108 #
109 pkgid=itest-3.0-1
110 newpkg $pkgid /bin/true
111 okexit setup package $pkgid
112 PF=$pkgid.zpm
113 zpm install -R. -d local.db -f $PF $pkgid | diagstdin
114 okexit upgraded to $pkgid
115
116 ns=$(zpm pkg -f local.db $pkgid status)
117 okstreq "$ns" "installed" "install set $pkgid status"
118
119 test -f bin/false
120 failsok removed bin/false
121
122 cd .. || bailout
123 require rm -rf tmp
124
125 finish