]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Remove "which" declaration from env vars in EL8+ tests
authorTom Krizek <tkrizek@isc.org>
Wed, 12 Apr 2023 15:29:26 +0000 (17:29 +0200)
committerTom Krizek <tkrizek@isc.org>
Mon, 22 May 2023 12:11:41 +0000 (14:11 +0200)
EL8+ systems declare "which" function using environment variables in the
/etc/profile.d/which2.sh file. Because of our suboptimal environment
variable detection, which is required in order to support the legacy
runner, these variables are picked up by the pytest runner.

If subprocesses are spawned with these environment variables set, it
will cause the following issue when they spawn yet another subprocess:

/bin/sh: which: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `which'

bin/tests/system/conftest.py

index 9bef5a1a4a351288edc8cfd8bbeef4728a26d6e8..83a01305116ed818262bf592ffc45ac55a81850e 100644 (file)
@@ -143,6 +143,10 @@ else:
         for line in env_bytes.splitlines():
             match = ENV_RE.match(line)
             if match:
+                # EL8+ workaround for https://access.redhat.com/solutions/6994985
+                # FUTURE: can be removed when we no longer need to parse env vars
+                if match.groups()[0] in [b"which_declare", b"BASH_FUNC_which%%"]:
+                    continue
                 out[match.groups()[0]] = match.groups()[1]
         return out