Forráskód Böngészése

Unit test: OpenSSL version dependency when using client certificates

bel2125 4 éve
szülő
commit
5c98af1a0a
2 módosított fájl, 15 hozzáadás és 5 törlés
  1. 5 1
      .travis.yml
  2. 10 4
      unittest/public_server.c

+ 5 - 1
.travis.yml

@@ -63,7 +63,7 @@ before_script:
   # Generate the build scripts with CMake
   - mkdir output
   - openssl version
-  - gcc --version 
+  - gcc --version
   - cmake --version
   - gcc unittest/cgi_test.c -o output/cgi_test.cgi
   - cd output
@@ -807,6 +807,10 @@ matrix:
     os: linux
     compiler: gcc
     dist: focal
+    addons:
+      apt:
+        packages:
+          - lsb-core
     env:
       idx=23
       N=GCCLinuxDefault_focal

+ 10 - 4
unittest/public_server.c

@@ -790,11 +790,17 @@ START_TEST(test_mg_server_and_client_tls)
 	client_conn =
 	    mg_connect_client("127.0.0.1", 8443, 1, client_err, sizeof(client_err));
 
-	/* cannot connect without client certificate */
-#if defined(__MACH__)
-	/* except for Apple (maybe this is specific to the MacOS container on
-	 * TravisCI?) */
+	/* We tried to connect without client certificate:
+	 * Depending on ???, either mg_conn_client failed entirely, returning NULL.
+	 * or we do get a connection but get an error when we try to use it.
+	 *
+	 * MacOS (Version ?), Ubuntu Bionic and Ububtu Eoan allow to connect,
+	 * while Ubuntu Xenial, Ubuntu Trusty and Windows test containers at
+	 * Travis CI do not. Maybe it is OpenSSL version specific.
+	 */
+#if defined(OPENSSL_API_1_1)
 	if (client_conn) {
+		/* Connect succeeds, but the connection is unusable. */
 		mg_printf(client_conn, "GET / HTTP/1.0\r\n\r\n");
 		client_res =
 		    mg_get_response(client_conn, client_err, sizeof(client_err), 10000);