]> pd.if.org Git - zpackage/blob - t/update.t
d97f0bea07dc3640b1d72d6cb38d4b4b04b08897
[zpackage] / t / update.t
1 #!/bin/sh
2
3 # vim: syn=sh
4
5 # test addfile
6
7 . tap.sh
8
9 plan 33
10
11 owner=$(id -un)
12 group=$(id -gn)
13
14 newpkg() {
15         pkgid=$1
16         tryrun zpm init $pkgid.zpm
17         if [ $? -eq 0 ]; then
18                 tryrun zpm newpackage -f $pkgid.zpm $pkgid
19                 if [ $? -eq 0 ]; then
20                         shift
21                         tryrun zpm add -u $owner -g $group -f $pkgid.zpm $pkgid "$@"
22                         return $?
23                 else
24                         skip 1 not adding files init failed
25                         return 1
26                 fi
27         else
28                 skip 2 "unable to init $pkgid.zpm"
29         fi
30         return 0
31 }
32
33 oktest() {
34         test $1 $2
35         okexit test $1 $2
36 }
37
38 oknottest() {
39         test $1 $2
40         failsok test $1 $2 fails
41 }
42
43 require rm -rf tmp
44 require mkdir tmp
45 cd tmp || bailout
46
47 # set up a new package
48
49 pkgid=itest-1.0-1
50 newpkg $pkgid /bin/true
51 okexit setup package $pkgid
52 PF=$pkgid.zpm
53 require mkdir etc
54 echo foo > etc/conf
55 zpm add -f $PF -C -c $pkgid etc/conf
56 okexit added foo conf
57 isconf=$(zpm pkgfile -f $PF $pkgid /etc/conf configuration)
58 okstreq $isconf 1 etc/conf 1.0 is config file
59
60 pkgid=itest-2.0-1
61 newpkg $pkgid /bin/true
62 okexit setup package $pkgid
63 PF=$pkgid.zpm
64 echo bar > etc/conf
65 zpm add -f $PF -C -c $pkgid etc/conf
66 okexit added bar conf
67 isconf=$(zpm pkgfile -f $PF $pkgid /etc/conf configuration)
68 okstreq $isconf 1 etc/conf 2.0 is config file
69
70 pkgid=itest-3.0-1
71 newpkg $pkgid /bin/true
72 okexit setup package $pkgid
73 PF=$pkgid.zpm
74 echo baz > etc/conf
75 zpm add -f $PF -C -c $pkgid etc/conf
76 okexit added baz conf
77 isconf=$(zpm pkgfile -f $PF $pkgid /etc/conf configuration)
78 okstreq $isconf 1 etc/conf 3.0 is config file
79
80 require rm etc/conf
81
82 require mkdir var
83 require mkdir var/lib
84 require mkdir var/lib/zpm
85
86 require zpm install -R. -f itest-1.0-1.zpm itest-1.0-1
87
88 test -f etc/conf
89 okexit etc/conf installed via zpm-install
90 conf=$(cat etc/conf)
91 okstreq "$conf" foo conf is foo
92
93 # update unchanged config file
94 require zpm install -R. -f itest-2.0-1.zpm itest-2.0-1
95 conf=$(cat etc/conf)
96 okstreq "$conf" bar new conf is bar
97
98 zpm note -f var/lib/zpm/local.db -l | diagstdin
99
100 echo quux > etc/conf
101 qhash=$(printf '%.8s' $(zpm hash etc/conf))
102
103 require zpm install -R. -f itest-3.0-1.zpm itest-3.0-1
104 conf=$(cat etc/conf)
105 okstreq "$conf" quux kept conf $qhash as quux
106
107 zpm note -f var/lib/zpm/local.db -l | diagstdin
108
109 ZPMDB=$PWD/var/lib/zpm/local.db
110 export ZPMDB
111
112 require zpm uninstall -R. itest
113 zpm note -f var/lib/zpm/local.db -l | diagstdin
114
115 cd ..
116 rm -r tmp