commit:     fbf7ee544f0efeb6f5a8254f6a994d1daa5a4573
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  3 12:39:02 2020 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Fri Jan  3 12:39:02 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=fbf7ee54

tests/qmerge: add 2-level negation INSTALL_MASK test

Bug: https://bugs.gentoo.org/699376
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 TODO.md                                              |   3 +++
 qmerge.c                                             |   8 ++++----
 tests/qmerge/dotest                                  |  15 ++++++++++++++-
 tests/qmerge/packages/Packages                       |   6 +++---
 tests/qmerge/packages/sys-devel/qmerge-test-1.3.tbz2 | Bin 7264 -> 7289 bytes
 5 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/TODO.md b/TODO.md
index 71a0ce1..e401123 100644
--- a/TODO.md
+++ b/TODO.md
@@ -40,6 +40,7 @@
 - test should work on local vdb (so TRAVIS can test it too)
 - fixup lame misnaming of force\_download (--fetch/--force) actually
   not-forcing things
+- use xpak.h instead of shelling out to qxpak binary
 
 # qdepends
 - -v should lookup whether packages are installed for || cases/colouring
@@ -50,6 +51,8 @@
        - newer installed version available
 - integrate qxpak and qtbz2 with this package (the latter are confusing,
   and qpkg is doing parts of qtbz2's compose
+- share install\_mask code from qmerge to handle negatives from
+  pkg\_install\_mask too
 
 # qgrep
 - make it use standard xarray instead of its own buf\_list

diff --git a/qmerge.c b/qmerge.c
index 588b868..464f45f 100644
--- a/qmerge.c
+++ b/qmerge.c
@@ -573,15 +573,15 @@ install_mask_pwd(int iargc, char **iargv, const struct 
stat * const st, int fd)
        }
 
 #if EBUG
-       printf("applying install masks:\n");
+       fprintf(warnout, "applying install masks:\n");
        for (cnt = 0; cnt < masksc; cnt++) {
                ssize_t plen = (ssize_t)masksv[cnt][0];
-               printf("%3zd  ", plen);
+               fprintf(warnout, "%3zd  ", plen);
                if (plen < 0)
                        plen = -plen;
                for (i = 1; i <= plen; i++)
-                       printf("%s ", masksv[cnt][i]);
-               printf(" %zd\n", (size_t)masksv[cnt][i]);
+                       fprintf(warnout, "%s ", masksv[cnt][i]);
+               fprintf(warnout, " %zd\n", (size_t)masksv[cnt][i]);
        }
 #endif
 

diff --git a/tests/qmerge/dotest b/tests/qmerge/dotest
index 23f3ca7..1bbf5f7 100755
--- a/tests/qmerge/dotest
+++ b/tests/qmerge/dotest
@@ -29,7 +29,7 @@ out=$(yes | qmerge -F qmerge-test)
 tend $? "qmerge-test: [N] basic merge" || die "${out}"
 
 [[ ${out} != *"FAIL"* ]]
-tend $? "qmerge-test: [N] FAIL messages" || die "${out}"
+tend $? "qmerge-test: [N] no FAIL messages" || die "${out}"
 
 order=$(echo "${out}" | awk '$1 == ">>>" && $2 ~ /^pkg_/ { printf "%s ", $NF 
}')
 [[ ${order} == "pkg_pretend pkg_setup pkg_preinst pkg_postinst " ]]
@@ -105,6 +105,19 @@ tend $? "qmerge-test: [M] uninstall" || die "${out}"
 [[ ! -e ${ROOT}/etc ]]
 tend $? "qmerge-test: [M] /etc removed" || die "$(treedir "${ROOT}")"
 
+export INSTALL_MASK="/usr -/usr/bin/dummy"
+out=$(yes | qmerge -F qmerge-test)
+tend $? "qmerge-test: [M] install only /usr/bin/dummy" || die "${out}"
+[[ -e ${ROOT}/usr/bin/dummy ]]
+tend $? "qmerge-test: [M] found /usr/bin/dummy" || die "$(treedir "${ROOT}")"
+[[ ! -e ${ROOT}/usr/bin/qmerge-test ]]
+tend $? "qmerge-test: [M] /usr/bin/qmerge-test absent" || die "$(treedir 
"${ROOT}")"
+
+out=$(yes | qmerge -FU qmerge-test)
+tend $? "qmerge-test: [M] uninstall" || die "${out}"
+[[ ! -e ${ROOT}/usr/bin/dummy ]]
+tend $? "qmerge-test: [M] /usr/bin/dummy removed" || die "$(treedir "${ROOT}")"
+
 set -e
 
 cleantmpdir

diff --git a/tests/qmerge/packages/Packages b/tests/qmerge/packages/Packages
index c03180c..e6fa3a2 100644
--- a/tests/qmerge/packages/Packages
+++ b/tests/qmerge/packages/Packages
@@ -22,9 +22,9 @@ DESC: my desc
 EAPI: 4
 KEYWORDS: ~amd64 ~x86
 LICENSE: GPL-2
-MD5: 07aef33aaacf4aeccd012712aff93f19
+MD5: 6c6633c64b0666f04df62da2f8b30d32
 MTIME: 1367290147
-SHA1: 38d8ababc531e2e12783326ef73f0771371ece93
-SIZE: 7264
+SHA1: 47f731ce30149f5ab15f0c47dc19b46e4b189d60
+SIZE: 7289
 REPO: local
 

diff --git a/tests/qmerge/packages/sys-devel/qmerge-test-1.3.tbz2 
b/tests/qmerge/packages/sys-devel/qmerge-test-1.3.tbz2
index feeff2e..24b6164 100644
Binary files a/tests/qmerge/packages/sys-devel/qmerge-test-1.3.tbz2 and 
b/tests/qmerge/packages/sys-devel/qmerge-test-1.3.tbz2 differ

Reply via email to