1 |
commit: 1feb7c2887f1e257506a1577cd3f3f4d28e12ace |
2 |
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon May 25 10:41:15 2020 +0000 |
4 |
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon May 25 10:41:15 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=1feb7c28 |
7 |
|
8 |
tests: add qmerge tests for different compression schemes in binpkgs |
9 |
|
10 |
While we had support for installing various compressed binpkgs, we never |
11 |
tested this at all. Especially since zstd now became the new standard |
12 |
Portage uses, it is a good idea to ensure we cope well with this. |
13 |
|
14 |
This new blob of tests, checks qtbz2, qlist and qmerge to disassemble, |
15 |
assemble and install binpkgs with all known supported compressors. |
16 |
|
17 |
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> |
18 |
|
19 |
tests/qmerge/dotest | 36 +++++++++++++++++++++++++++++++++++- |
20 |
1 file changed, 35 insertions(+), 1 deletion(-) |
21 |
|
22 |
diff --git a/tests/qmerge/dotest b/tests/qmerge/dotest |
23 |
index 208bc3b..59f249d 100755 |
24 |
--- a/tests/qmerge/dotest |
25 |
+++ b/tests/qmerge/dotest |
26 |
@@ -130,8 +130,42 @@ out=$(yes | qmerge -FU qmerge-test) |
27 |
tend $? "qmerge-test: [M] uninstall" || die "${out}" |
28 |
[[ ! -e ${ROOT}/usr/bin/qmerge-test ]] |
29 |
tend $? "qmerge-test: [M] /usr/bin/qmerge-test removed" || die "$(treedir "${ROOT}")" |
30 |
-set -e |
31 |
+ |
32 |
+# try all compressions we know to see if we handle them properly |
33 |
+pkgver=qmerge-test-1.3 |
34 |
+rev=0 |
35 |
+mkdir -p pkgs/sys-devel |
36 |
+qtbz2 -s ${PKGDIR}/sys-devel/${pkgver}.tbz2 |
37 |
+export PKGDIR=${PWD}/pkgs |
38 |
+bzip2 -dc < ${pkgver}.tar.bz2 > ${pkgver}.tar |
39 |
+for compr in "" brotli gzip bzip2 xz lz4 zstd lzip lzop ; do |
40 |
+ if [[ ${compr} != "" ]] ; then |
41 |
+ cexec=$(type -P ${compr} 2>/dev/null) |
42 |
+ echo "compressor: ${compr} = ${cexec}" |
43 |
+ [[ -x ${cexec} ]] || continue |
44 |
+ f=${pkgver}.tar.${compr} |
45 |
+ ${cexec} -c < ${pkgver}.tar > ${f} |
46 |
+ else |
47 |
+ echo "plain tar" |
48 |
+ f=${pkgver}.tar |
49 |
+ fi |
50 |
+ : $((rev++)) |
51 |
+ qtbz2 -j ${f} ${pkgver}.xpak pkgs/sys-devel/${pkgver}-r${rev}.tbz2 |
52 |
+ ls -l pkgs/sys-devel/${pkgver}-r${rev}.tbz2 |
53 |
+ ROOT=/ qlist -kIv | tee /dev/stderr | wc -l |
54 |
+ |
55 |
+ # see if we can install this package |
56 |
+ out=$(yes | qmerge -Fv qmerge-test) |
57 |
+ tend $? "qmerge-test: [X] install ${pkgver}-r${rev}" || die "${out}" |
58 |
+ qlist -Iv |
59 |
+ out=$(yes | qmerge -FU qmerge-test) |
60 |
+ tend $? "qmerge-test: [X] uninstall ${pkgver}-r${rev}" || die "${out}" |
61 |
+ |
62 |
+ rm pkgs/sys-devel/${pkgver}-r${rev}.tbz2 |
63 |
+done |
64 |
|
65 |
cleantmpdir |
66 |
|
67 |
+set -e |
68 |
+ |
69 |
end |