]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
*) test: check for recent curl version in proxy tests
authorStefan Eissing <icing@apache.org>
Tue, 2 May 2023 09:03:32 +0000 (09:03 +0000)
committerStefan Eissing <icing@apache.org>
Tue, 2 May 2023 09:03:32 +0000 (09:03 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1909560 13f79535-47bb-0310-9956-ffa450edef68

test/modules/proxy/test_01_http.py
test/modules/proxy/test_02_unix.py
test/pyhttpd/env.py

index 776356524205708fa22bca368dee1b97e3642527..ef71b16e47fcadbd109b35619b49b1e9dd9ae14d 100644 (file)
@@ -59,6 +59,8 @@ class TestProxyHttp:
         # check that we see the document we expect there (host matching worked)
         # we need to explicitly provide a Host: header since mod_proxy cannot
         # resolve the name via DNS.
+        if not env.curl_is_at_least('8.0.0'):
+            pytest.skip(f'need at least curl v8.0.0 for this')
         domain = f"{via}.{env.http_tld}"
         r = env.curl_get(f"http://127.0.0.1:{env.http_port}/alive.json", 5, options=[
             '-H', f"Host: {domain}",
index a66cdf7462d70e85b3327259634712c1d4eb9c10..7f3d4d55b2b34ce8c098d1b905321aff9be81eea 100644 (file)
@@ -110,6 +110,8 @@ class TestProxyUds:
         # check that we see the document we expect there (host matching worked)
         # we need to explicitly provide a Host: header since mod_proxy cannot
         # resolve the name via DNS.
+        if not env.curl_is_at_least('8.0.0'):
+            pytest.skip(f'need at least curl v8.0.0 for this')
         domain = f"{via}.{env.http_tld}"
         r = env.curl_get(f"http://127.0.0.1:{env.http_port}/alive.json", 5, options=[
             '-H', f"Host: {domain}",
index 0f21e73b7a0abe50aa1aee5bef36996b19c95ba9..818f18a5c495ee1e9421c268f98f1269911da53e 100644 (file)
@@ -287,6 +287,7 @@ class HttpdTestEnv:
 
         self._verify_certs = False
         self._curl_headerfiles_n = 0
+        self._curl_version = None
         self._h2load_version = None
         self._current_test = None
 
@@ -472,6 +473,20 @@ class HttpdTestEnv:
             return self._h2load_version >= self._versiontuple(minv)
         return False
 
+    def curl_is_at_least(self, minv):
+        if self._curl_version is None:
+            p = subprocess.run([self._curl, '-V'], capture_output=True, text=True)
+            if p.returncode != 0:
+                return False
+            for l in p.stdout.splitlines():
+                m = re.match(r'curl ([0-9.]+)[- ].*', l)
+                if m:
+                    self._curl_version = self._versiontuple(m.group(1))
+                    break
+        if self._curl_version is not None:
+            return self._curl_version >= self._versiontuple(minv)
+        return False
+
     def has_nghttp(self):
         return self._nghttp != ""