civetweb / civetweb

Embedded C/C++ web server
Other
2.81k stars 953 forks source link

1.16: test suite is failing #1197

Open kloczek opened 1 year ago

kloczek commented 1 year ago

cmake settings:

[tkloczko@pers-jacek x86_64-redhat-linux-gnu]$ cmake -L
CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.

CMake Error: The source directory "/home/tkloczko/rpmbuild/BUILD/civetweb-1.16/x86_64-redhat-linux-gnu" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
-- Cache values
BUILD_TESTING:BOOL=ON
CIVETWEB_ALLOW_WARNINGS:BOOL=ON
CIVETWEB_ARCH:BOOL=OFF
CIVETWEB_BUILD_TESTING:BOOL=ON
CIVETWEB_CXX_ENABLE_LTO:BOOL=ON
CIVETWEB_CXX_STANDARD:STRING=auto
CIVETWEB_C_STANDARD:STRING=auto
CIVETWEB_DISABLE_CACHING:BOOL=OFF
CIVETWEB_DISABLE_CGI:BOOL=OFF
CIVETWEB_ENABLE_ASAN:BOOL=ON
CIVETWEB_ENABLE_CXX:BOOL=ON
CIVETWEB_ENABLE_DEBUG_TOOLS:BOOL=ON
CIVETWEB_ENABLE_DUKTAPE:BOOL=OFF
CIVETWEB_ENABLE_IPV6:BOOL=ON
CIVETWEB_ENABLE_LTO:BOOL=OFF
CIVETWEB_ENABLE_LUA:BOOL=OFF
CIVETWEB_ENABLE_MEMORY_DEBUGGING:BOOL=OFF
CIVETWEB_ENABLE_SERVER_EXECUTABLE:BOOL=ON
CIVETWEB_ENABLE_SERVER_STATS:BOOL=OFF
CIVETWEB_ENABLE_SSL:BOOL=ON
CIVETWEB_ENABLE_SSL_DYNAMIC_LOADING:BOOL=ON
CIVETWEB_ENABLE_THIRD_PARTY_OUTPUT:BOOL=OFF
CIVETWEB_ENABLE_WEBSOCKETS:BOOL=OFF
CIVETWEB_ENABLE_ZLIB:BOOL=OFF
CIVETWEB_SERVE_NO_FILES:BOOL=OFF
CIVETWEB_SSL_CRYPTO_LIB:STRING=libcrypto.so
CIVETWEB_SSL_OPENSSL_API_1_0:BOOL=OFF
CIVETWEB_SSL_OPENSSL_API_1_1:BOOL=ON
CIVETWEB_SSL_OPENSSL_API_3_0:BOOL=OFF
CIVETWEB_SSL_SSL_LIB:STRING=libssl.so
CIVETWEB_THIRD_PARTY_DIR:STRING=/home/tkloczko/rpmbuild/BUILD/civetweb-1.16/x86_64-redhat-linux-gnu/third_party
CIVETWEB_THREAD_STACK_SIZE:STRING=102400
CIVETWEB_VERSION:STRING=1.15.0
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr
GCC_AR:FILEPATH=/usr/bin/gcc-ar
GCC_RANLIB:FILEPATH=/usr/bin/gcc-ranlib

and ctest is failing in 12 units:

```console + cd civetweb-1.16 + /usr/bin/ctest --test-dir x86_64-redhat-linux-gnu --output-on-failure --force-new-ctest-process -j48 Internal ctest changing into directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/x86_64-redhat-linux-gnu Test project /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/x86_64-redhat-linux-gnu Start 1: test-private-http-message Start 2: test-private-http-keep-alive Start 3: test-private-url-parsing-1 Start 4: test-private-url-parsing-2 Start 5: test-private-url-parsing-3 Start 6: test-private-internal-parsing-1 Start 7: test-private-internal-parsing-2 Start 8: test-private-internal-parsing-3 Start 9: test-private-internal-parsing-4 Start 10: test-private-internal-parsing-5 Start 11: test-private-internal-parsing-6 Start 12: test-private-internal-parsing-7 Start 13: test-private-encode-decode Start 14: test-private-mask-data Start 15: test-private-date-parsing Start 16: test-private-sha1 Start 17: test-private-config-options Start 18: test-publicfunc-version Start 19: test-publicfunc-options Start 20: test-publicfunc-mime-types Start 21: test-publicfunc-strcasecmp Start 22: test-publicfunc-url-encoding-decoding Start 23: test-publicfunc-base64-encoding-decoding Start 24: test-publicfunc-cookies-and-variables Start 25: test-publicfunc-md5 Start 26: test-publicfunc-aux-functions Start 27: test-publicserver-check-test-environment Start 28: test-publicserver-init-library Start 29: test-publicserver-start-threads Start 30: test-publicserver-minimal-http-server Start 31: test-publicserver-minimal-https-server Start 32: test-publicserver-minimal-http-client Start 33: test-publicserver-minimal-https-client Start 34: test-publicserver-start-stop-http-server Start 35: test-publicserver-start-stop-http-server-ipv6 Start 36: test-publicserver-start-stop-https-server Start 37: test-publicserver-tls-server-client Start 38: test-publicserver-server-requests Start 39: test-publicserver-store-body Start 40: test-publicserver-handle-form Start 41: test-publicserver-http-authentication Start 42: test-publicserver-http-keep-alive Start 43: test-publicserver-error-handling Start 44: test-publicserver-error-logging Start 45: test-publicserver-limit-speed Start 46: test-publicserver-large-file Start 47: test-timer-timer-single-shot Start 48: test-timer-timer-periodic 1/50 Test #1: test-private-http-message ....................... Passed 0.07 sec Start 49: test-timer-timer-mixed 2/50 Test #2: test-private-http-keep-alive .................... Passed 0.07 sec Start 50: test-exe-helper-funcs 3/50 Test #3: test-private-url-parsing-1 ...................... Passed 0.07 sec 4/50 Test #4: test-private-url-parsing-2 ...................... Passed 0.07 sec 5/50 Test #5: test-private-url-parsing-3 ...................... Passed 0.07 sec 6/50 Test #6: test-private-internal-parsing-1 ................. Passed 0.07 sec 7/50 Test #7: test-private-internal-parsing-2 ................. Passed 0.07 sec 8/50 Test #8: test-private-internal-parsing-3 ................. Passed 0.07 sec 9/50 Test #9: test-private-internal-parsing-4 ................. Passed 0.07 sec 10/50 Test #10: test-private-internal-parsing-5 ................. Passed 0.06 sec 11/50 Test #11: test-private-internal-parsing-6 ................. Passed 0.06 sec 12/50 Test #12: test-private-internal-parsing-7 ................. Passed 0.06 sec 13/50 Test #13: test-private-encode-decode ...................... Passed 0.06 sec 14/50 Test #14: test-private-mask-data .......................... Passed 0.06 sec 15/50 Test #15: test-private-date-parsing ....................... Passed 0.06 sec 16/50 Test #16: test-private-sha1 ............................... Passed 0.06 sec 17/50 Test #17: test-private-config-options ..................... Passed 0.05 sec 18/50 Test #18: test-publicfunc-version ......................... Passed 0.05 sec 19/50 Test #19: test-publicfunc-options ......................... Passed 0.05 sec 20/50 Test #20: test-publicfunc-mime-types ...................... Passed 0.05 sec 21/50 Test #21: test-publicfunc-strcasecmp ...................... Passed 0.05 sec 22/50 Test #22: test-publicfunc-url-encoding-decoding ........... Passed 0.05 sec 23/50 Test #23: test-publicfunc-base64-encoding-decoding ........ Passed 0.05 sec 24/50 Test #24: test-publicfunc-cookies-and-variables ........... Passed 0.04 sec 25/50 Test #25: test-publicfunc-md5 ............................. Passed 0.04 sec 26/50 Test #26: test-publicfunc-aux-functions ................... Passed 0.04 sec 27/50 Test #27: test-publicserver-check-test-environment ........ Passed 0.04 sec 28/50 Test #28: test-publicserver-init-library ..................***Failed 0.04 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:4285:F:Init library:test_init_library:0: Assertion 'f_ret == f_avail' failed: f_ret == 141, f_avail == 143 29/50 Test #33: test-publicserver-minimal-https-client .......... Passed 0.03 sec 30/50 Test #50: test-exe-helper-funcs ........................... Passed 0.01 sec 31/50 Test #32: test-publicserver-minimal-http-client ........... Passed 0.04 sec 32/50 Test #29: test-publicserver-start-threads ................. Passed 1.00 sec 33/50 Test #31: test-publicserver-minimal-https-server ..........***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Minimal HTTPS Server:test_minimal_https_server_callback:0: mg_start failed in line 4972 error 3: Error initializing SSL context last message Error initializing SSL context 34/50 Test #34: test-publicserver-start-stop-http-server ........***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Start Stop HTTP Server:test_mg_start_stop_http_server:0: mg_start failed in line 449 error 10: Failed to setup server ports last message Failed to setup server ports 35/50 Test #35: test-publicserver-start-stop-http-server-ipv6 ...***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Start Stop HTTP Server IPv6:test_mg_start_stop_http_server_ipv6:0: mg_start failed in line 449 error 10: Failed to setup server ports last message Failed to setup server ports 36/50 Test #36: test-publicserver-start-stop-https-server .......***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Start Stop HTTPS Server:test_mg_start_stop_https_server:0: mg_start failed in line 666 error 3: Error initializing SSL context last message Error initializing SSL context 37/50 Test #37: test-publicserver-tls-server-client .............***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:TLS Server Client:test_mg_server_and_client_tls:0: mg_start failed in line 792 error 3: Error initializing SSL context last message Error initializing SSL context 38/50 Test #38: test-publicserver-server-requests ...............***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Server Requests:test_request_handlers:0: mg_start failed in line 1354 error 3: Error initializing SSL context last message Error initializing SSL context 39/50 Test #41: test-publicserver-http-authentication ...........***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:HTTP Authentication:test_http_auth:0: mg_start failed in line 3292 error 10: Failed to setup server ports last message Failed to setup server ports 40/50 Test #44: test-publicserver-error-logging .................***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Error logging:test_error_log_file:0: mg_start failed in line 4006 error 10: Failed to setup server ports last message Failed to setup server ports 41/50 Test #45: test-publicserver-limit-speed ...................***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Limit speed:test_throttle:0: mg_start failed in line 4214 error 10: Failed to setup server ports last message Failed to setup server ports 42/50 Test #46: test-publicserver-large-file ....................***Failed 1.00 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:369:F:Large file:test_large_file:0: mg_start failed in line 4384 error 3: Error initializing SSL context last message Error initializing SSL context 43/50 Test #43: test-publicserver-error-handling ................***Failed 3.01 sec Test directory: /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest Running suite(s): PublicServer 0%: Checks: 1, Failures: 1, Errors: 0 /home/tkloczko/rpmbuild/BUILD/civetweb-1.16/unittest/public_server.c:3757:F:Error handling:test_error_handling:0: Assertion 'client_conn == ((void *)0)' failed 44/50 Test #49: test-timer-timer-mixed .......................... Passed 4.10 sec 45/50 Test #47: test-timer-timer-single-shot .................... Passed 8.21 sec 46/50 Test #42: test-publicserver-http-keep-alive ............... Passed 11.02 sec 47/50 Test #48: test-timer-timer-periodic ....................... Passed 14.10 sec 48/50 Test #40: test-publicserver-handle-form ................... Passed 23.04 sec 49/50 Test #30: test-publicserver-minimal-http-server ........... Passed 27.02 sec 50/50 Test #39: test-publicserver-store-body .................... Passed 28.02 sec 76% tests passed, 12 tests failed out of 50 Total Test time (real) = 28.08 sec The following tests FAILED: 28 - test-publicserver-init-library (Failed) 31 - test-publicserver-minimal-https-server (Failed) 34 - test-publicserver-start-stop-http-server (Failed) 35 - test-publicserver-start-stop-http-server-ipv6 (Failed) 36 - test-publicserver-start-stop-https-server (Failed) 37 - test-publicserver-tls-server-client (Failed) 38 - test-publicserver-server-requests (Failed) 41 - test-publicserver-http-authentication (Failed) 43 - test-publicserver-error-handling (Failed) 44 - test-publicserver-error-logging (Failed) 45 - test-publicserver-limit-speed (Failed) 46 - test-publicserver-large-file (Failed) Errors while running CTest ```
bel2125 commented 1 year ago

running the test suite in the CI/CD environment works. This seems to be related to your test environment. The OpenSSL library seems to be wrong/missing and the ports used by the test are in use by other programs.

kloczek commented 1 year ago

Indeed I have no openssl (library, executables or devel resources) in my spec file BuildRequires. What exactly needs to be added? 🤔

bel2125 commented 1 year ago

libssl-dev and openssl

This is the configuration for the build container:

https://github.com/civetweb/civetweb/blob/756133d5085f07ca17e80adff8188f6326ec59aa/.travis.yml#L19

yubiuser commented 3 weeks ago

@kloczek

I encountered the same issue while porting the CI tests to github actions. Issue was solved by downgrading the used OpenSSL version from 3 to 1.1. The CI pipeline uses older base OS which are shipped with OpenSSL 1.1 by default. On recent OS, v3.0 is installed by default.