Gentoo Archives: gentoo-commits

From: Fabian Groffen <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage-utils:master commit in: tests/qmerge/, tests/profile/, /
Date: Wed, 27 Nov 2019 12:34:52
Message-Id: 1574857932.042a38c90aa010f05ecf7222f9be929f109c581e.grobian@gentoo
1 commit: 042a38c90aa010f05ecf7222f9be929f109c581e
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Wed Nov 27 12:32:12 2019 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Wed Nov 27 12:32:12 2019 +0000
6 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=042a38c9
7
8 set_portage_env_var: don't include built-in value for incremental vars
9
10 discard the built-in value when any other value is found from the
11 profiles
12
13 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
14
15 main.c | 17 +++++++++++------
16 tests/profile/dotest | 16 +++-------------
17 tests/qmerge/dotest | 2 ++
18 3 files changed, 16 insertions(+), 19 deletions(-)
19
20 diff --git a/main.c b/main.c
21 index 5ffe0ba..056e09c 100644
22 --- a/main.c
23 +++ b/main.c
24 @@ -51,6 +51,8 @@ static char *portedb;
25 static char *eprefix;
26 static char *accept_license;
27
28 +#define STR_DEFAULT "built-in default"
29 +
30 /* helper functions for showing errors */
31 const char *argv0;
32
33 @@ -333,15 +335,18 @@ set_portage_env_var(env_vars *var, const char *value, const char *src)
34 var->src = xstrdup(src);
35 break;
36 case _Q_ISTR:
37 - if (*var->value.s == NULL) {
38 - free(var->src);
39 - var->src = xstrdup(src);
40 - } else {
41 + if (strcmp(var->src, STR_DEFAULT) != 0) {
42 size_t l = strlen(var->src) + 2 + strlen(src) + 1;
43 char *p = xmalloc(sizeof(char) * l);
44 snprintf(p, l, "%s, %s", var->src, src);
45 free(var->src);
46 var->src = p;
47 + } else {
48 + free(*var->value.s);
49 + *var->value.s = NULL;
50 + var->value_len = 0;
51 + free(var->src);
52 + var->src = xstrdup(src);
53 }
54 strincr_var(var->name, value, var->value.s, &var->value_len);
55 break;
56 @@ -718,7 +723,7 @@ initialize_portage_env(void)
57 var = &vars_to_read[i];
58 if (var->type != _Q_BOOL)
59 *var->value.s = xstrdup(var->default_value);
60 - var->src = xstrdup("built-in default");
61 + var->src = xstrdup(STR_DEFAULT);
62 }
63
64 /* figure out where to find our config files */
65 @@ -740,7 +745,7 @@ initialize_portage_env(void)
66 if (array_cnt(overlays) == 0) {
67 xarraypush_ptr(overlays, main_overlay);
68 xarraypush_str(overlay_names, "<PORTDIR>");
69 - xarraypush_str(overlay_src, "built-in default");
70 + xarraypush_str(overlay_src, STR_DEFAULT);
71 } else if (orig_main_overlay == main_overlay) {
72 /* if no explicit overlay was flagged as main, take the first one */
73 main_overlay = array_get_elem(overlays, 0);
74
75 diff --git a/tests/profile/dotest b/tests/profile/dotest
76 index 2b77ee9..02c9fc4 100755
77 --- a/tests/profile/dotest
78 +++ b/tests/profile/dotest
79 @@ -2,32 +2,22 @@
80
81 . ../init.sh || exit 1
82
83 -qenv() {
84 - # get q to dump its processed env so we can check
85 - DEBUG= q -V 2>&1 >/dev/null
86 -}
87 -
88 # Usage: <profile dir suffix> <variable> <value>
89 tenv() {
90 local profile=$1 var=$2 exp=$3
91
92 export PORTAGE_CONFIGROOT=${as}/profile${profile}
93 - local e=$(qenv)
94 -
95 - res=$(echo "${e}" | sed -n "/^${var} = /{s:^${var} = ::;p}")
96 + res=$(q -e "${var}")
97
98 [[ ${res} == "${exp}" ]]
99 if ! tend $? "(${profile}) ${var} = ${exp}" ; then
100 echo "we got: {${res}}"
101 - echo "full env:"
102 - echo "${e}" | while read line ; do
103 - printf '\t{%s}\n' "${line}"
104 - done
105 + echo "full env: $(q -ev "${var}")"
106 fi
107 }
108
109 # clear out env vars that would affect our tests
110 -unset $(qenv | awk '{print $1}')
111 +unset $(q -e | cut -d= -f1)
112
113 # test vars that should default to known values.
114 # cannot test too many more as portage's default
115
116 diff --git a/tests/qmerge/dotest b/tests/qmerge/dotest
117 index 83cb991..86c6147 100755
118 --- a/tests/qmerge/dotest
119 +++ b/tests/qmerge/dotest
120 @@ -4,6 +4,8 @@
121
122 set -e
123
124 +unset CONFIG_PROTECT CONFIG_PROTECT_MASK EPREFIX
125 +
126 export QMERGE=1
127 export PKGDIR=${as}/packages
128 export FEATURES='config-protect-if-modified'