summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2022-09-14 11:58:35 +0200
committerWerner Koch <wk@gnupg.org>2022-09-14 12:05:21 +0200
commit50d12860ef21e8480474fd94a0b4465d0339086d (patch)
treeee546cc1b1b5eac3875a590f6c4df4bea4db38d8
parentcommon: Fix for GPG_ERR_SOURCE_DEFAULT check. (diff)
downloadgnupg2-50d12860ef21e8480474fd94a0b4465d0339086d.tar.xz
gnupg2-50d12860ef21e8480474fd94a0b4465d0339086d.zip
tests: Restrict the use of gpgconf.ctl to make check.
* common/homedir.c (unix_rootdir): Add ".enable" statement to gpgconf.ctl * tests/gpgconf.ctl.in: Use this statement. * tests/cms/Makefile.am (OLD_TESTS_ENVIRONMENT): Enable .enable. (TESTS_ENVIRONMENT): Ditto. * tests/gpgme/Makefile.am (TESTS_ENVIRONMENT): Ditto. * tests/migrations/Makefile.am (TESTS_ENVIRONMENT): Ditto. * tests/openpgp/Makefile.am (TESTS_ENVIRONMENT): Ditto. * tests/pkits/Makefile.am (TESTS_ENVIRONMENT): Ditto. * tests/tpm2dtests/Makefile.am (TESTS_ENVIRONMENT): Ditto. -- Without that it was required to delete the gpgconf.ctl to run manual tests. What a hack.
-rw-r--r--common/homedir.c30
-rw-r--r--tests/cms/Makefile.am2
-rw-r--r--tests/gpgconf.ctl.in3
-rw-r--r--tests/gpgme/Makefile.am1
-rw-r--r--tests/migrations/Makefile.am1
-rw-r--r--tests/openpgp/Makefile.am1
-rw-r--r--tests/pkits/Makefile.am1
-rw-r--r--tests/tpm2dtests/Makefile.am1
8 files changed, 39 insertions, 1 deletions
diff --git a/common/homedir.c b/common/homedir.c
index dd4963c32..67bbde8f1 100644
--- a/common/homedir.c
+++ b/common/homedir.c
@@ -473,6 +473,7 @@ unix_rootdir (int want_sysconfdir)
char *rootdir;
char *sysconfdir;
const char *name;
+ int ignoreall = 0;
for (;;)
{
@@ -590,6 +591,16 @@ unix_rootdir (int want_sysconfdir)
name = "sysconfdir";
p = line + 12;
}
+ else if (!strncmp (line, ".enable=", 8))
+ {
+ name = ".enable";
+ p = line + 8;
+ }
+ else if (!strncmp (line, ".enable =", 9))
+ {
+ name = ".enable";
+ p = line + 9;
+ }
else
continue;
trim_spaces (p);
@@ -600,6 +611,17 @@ unix_rootdir (int want_sysconfdir)
log_info ("error getting %s from gpgconf.ctl: %s\n",
name, gpg_strerror (err));
}
+ else if (!strcmp (name, ".enable"))
+ {
+ if (atoi (p)
+ || !ascii_strcasecmp (p, "yes")
+ || !ascii_strcasecmp (p, "true")
+ || !ascii_strcasecmp (p, "fact"))
+ ; /* Yes, this file shall be used. */
+ else
+ ignoreall = 1; /* No, this file shall be ignored. */
+ xfree (p);
+ }
else if (!strcmp (name, "sysconfdir"))
{
xfree (sysconfdir);
@@ -627,7 +649,13 @@ unix_rootdir (int want_sysconfdir)
xfree (buffer);
xfree (line);
- if (!rootdir || !*rootdir || *rootdir != '/')
+ if (ignoreall)
+ {
+ xfree (rootdir);
+ xfree (sysconfdir);
+ sdir = dir = NULL;
+ }
+ else if (!rootdir || !*rootdir || *rootdir != '/')
{
log_info ("invalid rootdir '%s' specified in gpgconf.ctl\n", rootdir);
xfree (rootdir);
diff --git a/tests/cms/Makefile.am b/tests/cms/Makefile.am
index 24ce985a5..999bd4fb8 100644
--- a/tests/cms/Makefile.am
+++ b/tests/cms/Makefile.am
@@ -33,6 +33,7 @@ AM_CFLAGS =
# pwd which handles symlinks differently.
OLD_TESTS_ENVIRONMENT = GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C \
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
+ GNUPG_IN_TEST_SUITE=fact \
GPGSM="$(GPGSM)" "$(srcdir)/runtest"
TESTS_ENVIRONMENT = LC_ALL=C \
@@ -41,6 +42,7 @@ TESTS_ENVIRONMENT = LC_ALL=C \
abs_top_srcdir="$(abs_top_srcdir)" \
objdir="$(abs_top_builddir)" \
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
+ GNUPG_IN_TEST_SUITE=fact \
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
XTESTS = \
diff --git a/tests/gpgconf.ctl.in b/tests/gpgconf.ctl.in
index fa3e988ac..95cb0e528 100644
--- a/tests/gpgconf.ctl.in
+++ b/tests/gpgconf.ctl.in
@@ -11,5 +11,8 @@
# variables are substituted in standard shell manner, the final value
# must start with a slash, trailing slashes are stripped.
+# This file is only considered if the given envvar evaluates to true.
+.enable = $GNUPG_IN_TEST_SUITE
+
sysconfdir = $GNUPG_BUILD_ROOT/etc
rootdir = $GNUPG_BUILD_ROOT/
diff --git a/tests/gpgme/Makefile.am b/tests/gpgme/Makefile.am
index 489ecea09..fe3d58007 100644
--- a/tests/gpgme/Makefile.am
+++ b/tests/gpgme/Makefile.am
@@ -34,6 +34,7 @@ TESTS_ENVIRONMENT = LC_ALL=C \
abs_top_srcdir=$(abs_top_srcdir) \
objdir=$(abs_top_builddir) \
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
+ GNUPG_IN_TEST_SUITE=fact \
GPGSCM_PATH=$(abs_top_srcdir)/tests/gpgscm
# XXX: Currently, one cannot override automake's 'check' target. As a
diff --git a/tests/migrations/Makefile.am b/tests/migrations/Makefile.am
index 90aab3a51..c4085fa90 100644
--- a/tests/migrations/Makefile.am
+++ b/tests/migrations/Makefile.am
@@ -34,6 +34,7 @@ TESTS_ENVIRONMENT = GPG_AGENT_INFO= LC_ALL=C \
abs_top_srcdir="$(abs_top_srcdir)" \
objdir="$(abs_top_builddir)" \
GNUPG_BUILD_ROOT="$(abs_top_builddir)/tests" \
+ GNUPG_IN_TEST_SUITE=fact \
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
XTESTS = from-classic.scm \
diff --git a/tests/openpgp/Makefile.am b/tests/openpgp/Makefile.am
index 5c99a045c..58e1c2a7d 100644
--- a/tests/openpgp/Makefile.am
+++ b/tests/openpgp/Makefile.am
@@ -39,6 +39,7 @@ TESTS_ENVIRONMENT = LC_ALL=C \
abs_top_srcdir="$(abs_top_srcdir)" \
objdir="$(abs_top_builddir)" \
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
+ GNUPG_IN_TEST_SUITE=fact \
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
XTESTS = \
diff --git a/tests/pkits/Makefile.am b/tests/pkits/Makefile.am
index 65db8bb1e..0b90f86ba 100644
--- a/tests/pkits/Makefile.am
+++ b/tests/pkits/Makefile.am
@@ -22,6 +22,7 @@ GPGSM = ../../sm/gpgsm
TESTS_ENVIRONMENT = GNUPGHOME=`/bin/pwd` GPG_AGENT_INFO= LC_ALL=C \
GNUPG_BUILD_ROOT="$(abs_top_builddir)" \
+ GNUPG_IN_TEST_SUITE=fact \
GPGSM=$(GPGSM) silent=yes
diff --git a/tests/tpm2dtests/Makefile.am b/tests/tpm2dtests/Makefile.am
index 36d1685ba..72ad11d9b 100644
--- a/tests/tpm2dtests/Makefile.am
+++ b/tests/tpm2dtests/Makefile.am
@@ -38,6 +38,7 @@ TESTS_ENVIRONMENT = LC_ALL=C \
SWTPM="$(SWTPM)" \
SWTPM_IOCTL="$(SWTPM_IOCTL)" \
GNUPG_BUILD_ROOT="$(abs_top_builddir)/tests" \
+ GNUPG_IN_TEST_SUITE=fact \
GPGSCM_PATH="$(abs_top_srcdir)/tests/gpgscm"
XTESTS = \