1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
#!/usr/bin/env roundup
describe librefetch
. ./test-common.sh
KEYSERVER=hkp://pool.sks-keyservers.net
GPG="gpg --quiet --batch --no-tty --no-permission-warning --keyserver ${KEYSERVER}"
common_before() {
mkdir -p "$XDG_CONFIG_HOME"/{pacman,libretools} "$tmpdir/srcdest"
cat <<EOF > "$XDG_CONFIG_HOME/pacman/makepkg.conf"
DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
BUILDDIR=""
SRCDEST=$tmpdir/srcdest
. ${_librelib_conf_sh_pkgconfdir}/librefetch-makepkg.conf
EOF
sed -i 's,/usr/bin/librefetch,$(which librefetch),' \
"${_librelib_conf_sh_pkgconfdir}/librefetch-makepkg.conf"
export MAKEPKG_CONF="$XDG_CONFIG_HOME/pacman/makepkg.conf"
printf '%s\n' \
'MIRRORS=("phony://example.com/dir/")' \
'DOWNLOADER=/usr/bin/false' \
> "$XDG_CONFIG_HOME/libretools/librefetch.conf"
printf '%s\n' \
'Key-Type: RSA' \
'Key-Length: 1024' \
'Key-Usage: sign' \
'Name-Real: Temporary LibreTools testsuite key' \
'Name-Email: libretools-test@localhost' \
'Expire-Date: 0' \
'%no-protection' \
'%commit' \
| $GPG --gen-key 2>/dev/null
}
it_displays_help() {
LC_ALL=C librefetch -h >$tmpdir/stdout 2>$tmpdir/stderr
[[ "$(sed 1q $tmpdir/stdout)" =~ Usage:.* ]]
empty $tmpdir/stderr
}
it_fails_with_bad_flags() {
local srcball=testpkg-1.0.tar.gz
cp librefetch.d/* "$tmpdir/"
cd "$tmpdir"
mv PKGBUILD{-mksource,}
librefetch --bogus-flag libre://"$srcball" >$tmpdir/stdout 2>$tmpdir/stderr || stat=$?
[[ $stat != 0 ]]
empty $tmpdir/stdout
not empty $tmpdir/stderr
not test -e $tmpdir/srcdest/$srcball
}
# This test used to be called "it_cleans_src_libre_first", but let's
# be honest: it checks pretty much everything related to normal
# operation.
it_runs_with_mksource() {
local srcball=testpkg-1.0.tar.gz
cp librefetch.d/* "$tmpdir/"
cd "$tmpdir"
mv PKGBUILD{-mksource,}
# Create garbage, to verifiy that it cleans src-libre first
mkdir -p src-libre/foo
touch src-libre/foo/file
# Run librefetch
makepkg -g
# Verify that no temporary files were left around
not test -e librefetch.*
# Verify:
# - The srcball was created...
# - ... and is in the correct directory
# - The srcball does not contain the garbage created earlier
# - The files in the srcball are in the correct order (if the
# order isn't ensured, then this would only sometimes fail,
# unfortunately).
bsdtar tf "$tmpdir/srcdest/$srcball" > list-pkg.txt
diff -u list.txt list-pkg.txt
# Verify that the signature was created and matches
gpg --quiet --verify "$tmpdir/srcdest/$srcball"{.sig,} 2>/dev/null
}
it_runs_with_srcbuild() {
local srcball=testpkg-1.0.tar.gz
cp librefetch.d/* "$tmpdir/"
cd "$tmpdir"
mv PKGBUILD{-srcbuild,}
mv SRCBUILD{-srcbuild,}
# Create garbage, to verifiy that it cleans src-libre first
mkdir -p src-libre/foo
touch src-libre/foo/file
# Run librefetch
makepkg -g
# Verify that no temporary files were left around
not test -e librefetch.*
# Verify:
# - The srcball was created...
# - ... and is in the correct directory
# - The srcball does not contain the garbage created earlier
# - The files in the srcball are in the correct order (if the
# order isn't ensured, then this would only sometimes fail,
# unfortunately).
bsdtar tf "$tmpdir/srcdest/$srcball" > list-pkg.txt
diff -u list.txt list-pkg.txt
# Verify that the signature was created and matches
gpg --quiet --verify "$tmpdir/srcdest/$srcball"{.sig,} 2>/dev/null
}
it_recurses() {
local srcball=testpkg-1.0.tar.gz
cp librefetch.d/* "$tmpdir/"
cd "$tmpdir"
mv PKGBUILD{-recurse,}
makepkg -g
bsdtar tf "$tmpdir/srcdest/$srcball" > list-pkg.txt
diff -u list.txt list-pkg.txt
gpg --quiet --verify "$tmpdir/srcdest/$srcball"{.sig,} 2>/dev/null
}
|