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
|
#!/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
}
# 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
}
|