6 top="$(WVPASS pwd)" || exit $?
7 tmpdir="$(WVPASS wvmktempdir)" || exit $?
9 export BUP_DIR="$tmpdir/bup"
10 export GIT_DIR="$tmpdir/bup"
12 bup() { "$top/bup" "$@"; }
20 WVPASS touch src/.dotfile src/executable
21 WVPASS mkfifo src/fifo
22 WVPASS "$top"/t/mksock src/socket
23 WVPASS bup random 1k > src/file
24 WVPASS chmod u+x src/executable
25 WVPASS chmod -R u=rwX,g-rwx,o-rwx .
26 WVPASS touch -t 196907202018 src/.dotfile src/*
27 (WVPASS cd src; WVPASS ln -s file symlink) || exit $?
28 WVPASS touch -t 196907202018 src
29 WVPASS touch -t 196907202018 .
31 WVPASS bup save -n src src
36 WVPASSEQ "$(WVPASS bup ls /)" "src"
38 WVPASSEQ "$(WVPASS bup ls -A /)" ".commit
42 WVPASSEQ "$(WVPASS bup ls -AF /)" ".commit/
46 WVPASSEQ "$(WVPASS bup ls -a /)" ".
52 WVPASSEQ "$(WVPASS bup ls -aF /)" "./
58 WVPASSEQ "$(WVPASS bup ls src/latest/"$tmpdir"/src)" "executable
64 WVPASSEQ "$(WVPASS bup ls -A src/latest/"$tmpdir"/src)" ".dotfile
71 WVPASSEQ "$(WVPASS bup ls -a src/latest/"$tmpdir"/src)" ".
80 WVPASSEQ "$(WVPASS bup ls -F src/latest/"$tmpdir"/src)" "executable*
86 WVPASSEQ "$(WVPASS bup ls --file-type src/latest/"$tmpdir"/src)" "executable
92 WVPASSEQ "$(WVPASS bup ls -d src/latest/"$tmpdir"/src)" "src/latest$tmpdir/src"
97 WVPASSEQ "$(WVPASS bup ls -l / | tr -s ' ' ' ')" \
98 "d--------- ?/? 0 1970-01-01 00:00 src"
100 WVPASSEQ "$(WVPASS bup ls -lA / | tr -s ' ' ' ')" \
101 "d--------- ?/? 0 1970-01-01 00:00 .commit
102 d--------- ?/? 0 1970-01-01 00:00 .tag
103 d--------- ?/? 0 1970-01-01 00:00 src"
105 WVPASSEQ "$(WVPASS bup ls -lAF / | tr -s ' ' ' ')" \
106 "d--------- ?/? 0 1970-01-01 00:00 .commit/
107 d--------- ?/? 0 1970-01-01 00:00 .tag/
108 d--------- ?/? 0 1970-01-01 00:00 src/"
110 WVPASSEQ "$(WVPASS bup ls -la / | tr -s ' ' ' ')" \
111 "d--------- ?/? 0 1970-01-01 00:00 .
112 d--------- ?/? 0 1970-01-01 00:00 ..
113 d--------- ?/? 0 1970-01-01 00:00 .commit
114 d--------- ?/? 0 1970-01-01 00:00 .tag
115 d--------- ?/? 0 1970-01-01 00:00 src"
117 WVPASSEQ "$(WVPASS bup ls -laF / | tr -s ' ' ' ')" \
118 "d--------- ?/? 0 1970-01-01 00:00 ./
119 d--------- ?/? 0 1970-01-01 00:00 ../
120 d--------- ?/? 0 1970-01-01 00:00 .commit/
121 d--------- ?/? 0 1970-01-01 00:00 .tag/
122 d--------- ?/? 0 1970-01-01 00:00 src/"
124 symlink_mode="$(WVPASS ls -l src/symlink | cut -b -10)" || exit $?
126 symlink_bup_info="$(WVPASS bup ls -l src/latest"$tmpdir"/src | grep symlink)" \
128 symlink_date="$(WVPASS echo "$symlink_bup_info" \
129 | WVPASS perl -ne 'm/.*? (\d+) (\d\d\d\d-\d\d-\d\d \d\d:\d\d)/ and print $2')" \
132 if test "$(uname -s)" != NetBSD; then
133 symlink_size="$(WVPASS python -c "import os
134 print os.lstat('src/symlink').st_size")" || exit $?
136 # NetBSD appears to return varying sizes, so for now, just ignore it.
137 symlink_size="$(WVPASS echo "$symlink_bup_info" \
138 | WVPASS perl -ne 'm/.*? (\d+) (\d\d\d\d-\d\d-\d\d \d\d:\d\d)/ and print $1')" \
142 uid="$(id -u)" || exit $?
143 gid="$(python -c 'import os; print os.stat("src").st_gid')" || exit $?
144 user="$(id -un)" || exit $?
145 group="$(python -c 'import grp, os;
146 print grp.getgrgid(os.stat("src").st_gid)[0]')" || exit $?
148 WVPASSEQ "$(bup ls -l src/latest"$tmpdir"/src | tr -s ' ' ' ')" \
149 "-rwx------ $user/$group 0 1969-07-20 20:18 executable
150 prw------- $user/$group 0 1969-07-20 20:18 fifo
151 -rw------- $user/$group 1024 1969-07-20 20:18 file
152 srwx------ $user/$group 0 1969-07-20 20:18 socket
153 $symlink_mode $user/$group $symlink_size $symlink_date symlink -> file"
155 WVPASSEQ "$(bup ls -la src/latest"$tmpdir"/src | tr -s ' ' ' ')" \
156 "drwx------ $user/$group 0 1969-07-20 20:18 .
157 drwx------ $user/$group 0 1969-07-20 20:18 ..
158 -rw------- $user/$group 0 1969-07-20 20:18 .dotfile
159 -rwx------ $user/$group 0 1969-07-20 20:18 executable
160 prw------- $user/$group 0 1969-07-20 20:18 fifo
161 -rw------- $user/$group 1024 1969-07-20 20:18 file
162 srwx------ $user/$group 0 1969-07-20 20:18 socket
163 $symlink_mode $user/$group $symlink_size $symlink_date symlink -> file"
165 WVPASSEQ "$(bup ls -lA src/latest"$tmpdir"/src | tr -s ' ' ' ')" \
166 "-rw------- $user/$group 0 1969-07-20 20:18 .dotfile
167 -rwx------ $user/$group 0 1969-07-20 20:18 executable
168 prw------- $user/$group 0 1969-07-20 20:18 fifo
169 -rw------- $user/$group 1024 1969-07-20 20:18 file
170 srwx------ $user/$group 0 1969-07-20 20:18 socket
171 $symlink_mode $user/$group $symlink_size $symlink_date symlink -> file"
173 WVPASSEQ "$(bup ls -lF src/latest"$tmpdir"/src | tr -s ' ' ' ')" \
174 "-rwx------ $user/$group 0 1969-07-20 20:18 executable*
175 prw------- $user/$group 0 1969-07-20 20:18 fifo|
176 -rw------- $user/$group 1024 1969-07-20 20:18 file
177 srwx------ $user/$group 0 1969-07-20 20:18 socket=
178 $symlink_mode $user/$group $symlink_size $symlink_date symlink@ -> file"
180 WVPASSEQ "$(bup ls -l --file-type src/latest"$tmpdir"/src | tr -s ' ' ' ')" \
181 "-rwx------ $user/$group 0 1969-07-20 20:18 executable
182 prw------- $user/$group 0 1969-07-20 20:18 fifo|
183 -rw------- $user/$group 1024 1969-07-20 20:18 file
184 srwx------ $user/$group 0 1969-07-20 20:18 socket=
185 $symlink_mode $user/$group $symlink_size $symlink_date symlink@ -> file"
187 WVPASSEQ "$(bup ls -ln src/latest"$tmpdir"/src | tr -s ' ' ' ')" \
188 "-rwx------ $uid/$gid 0 1969-07-20 20:18 executable
189 prw------- $uid/$gid 0 1969-07-20 20:18 fifo
190 -rw------- $uid/$gid 1024 1969-07-20 20:18 file
191 srwx------ $uid/$gid 0 1969-07-20 20:18 socket
192 $symlink_mode $uid/$gid $symlink_size $symlink_date symlink -> file"
194 WVPASSEQ "$(bup ls -ld "src/latest$tmpdir/src" | tr -s ' ' ' ')" \
195 "drwx------ $user/$group 0 1969-07-20 20:18 src/latest$tmpdir/src"
198 WVSTART "ls (backup set - long)"
199 WVPASSEQ "$(bup ls -l src | cut -d' ' -f 1-2)" \
204 WVSTART "ls (dates TZ != UTC)"
205 export TZ=America/Chicago
206 symlink_date_central="$(bup ls -l src/latest"$tmpdir"/src | grep symlink)"
207 symlink_date_central="$(echo "$symlink_date_central" \
208 | perl -ne 'm/.*? (\d+) (\d\d\d\d-\d\d-\d\d \d\d:\d\d)/ and print $2')"
209 WVPASSEQ "$(bup ls -ln src/latest"$tmpdir"/src | tr -s ' ' ' ')" \
210 "-rwx------ $uid/$gid 0 1969-07-20 15:18 executable
211 prw------- $uid/$gid 0 1969-07-20 15:18 fifo
212 -rw------- $uid/$gid 1024 1969-07-20 15:18 file
213 srwx------ $uid/$gid 0 1969-07-20 15:18 socket
214 $symlink_mode $uid/$gid $symlink_size $symlink_date_central symlink -> file"
218 WVPASS rm -rf "$tmpdir"