CI and tests fixes (#1719)

This commit is contained in:
Azat Khuzhin 2024-10-21 10:02:33 +03:00 committed by GitHub
commit 970a258bc6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 36 additions and 16 deletions

View File

@ -66,12 +66,13 @@ jobs:
uses: actions/cache@v4
with:
path: build
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-v3
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v4
- name: Cache Dist Build
uses: actions/cache@v4
with:
path: dist
key: ${{ matrix.os }}-cmake-dist-${{ matrix.EVENT_MATRIX }}-v3
key: ${{ matrix.os }}-cmake-dist-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v4
- name: Install Depends
run: |
@ -267,7 +268,7 @@ jobs:
uses: actions/cache@v4
with:
path: build
key: ${{ matrix.os }}-${{ matrix.EVENT_MATRIX }}-v4
key: ${{ matrix.os }}-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v4
- name: Prepare vcpkg
# Newer versions expect a vcpkg manifest, so stick to v7, that could handle vcpkgArguments
@ -471,7 +472,7 @@ jobs:
uses: actions/cache@v4
with:
path: build
key: mingw-cmake-${{ matrix.EVENT_MATRIX }}-v4
key: mingw-cmake-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v4
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
@ -559,10 +560,10 @@ jobs:
uses: actions/cache@v4
with:
path: build
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-v3
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v4
- name: Install Depends
run: brew install mbedtls@2
run: brew install mbedtls
- name: Build
shell: bash
@ -591,7 +592,7 @@ jobs:
else
EVENT_CMAKE_OPTIONS=""
fi
EVENT_CMAKE_OPTIONS="$EVENT_CMAKE_OPTIONS -DMBEDTLS_ROOT_DIR=`brew --prefix mbedtls@2`"
EVENT_CMAKE_OPTIONS="$EVENT_CMAKE_OPTIONS -DMBEDTLS_ROOT_DIR=`brew --prefix mbedtls`"
mkdir -p build
cd build
@ -645,13 +646,13 @@ jobs:
key: ${{ matrix.os }}-autotools-v3
- name: Install Depends
run: brew install autoconf automake libtool pkg-config mbedtls@2
run: brew install autoconf automake libtool pkg-config mbedtls
- name: Build
shell: bash
run: |
export CPPFLAGS="-I`brew --prefix mbedtls@2`/include"
export LDFLAGS="-L`brew --prefix mbedtls@2`/lib"
export CPPFLAGS="-I`brew --prefix mbedtls`/include"
export LDFLAGS="-L`brew --prefix mbedtls`/lib"
./autogen.sh
mkdir -p build
@ -702,7 +703,7 @@ jobs:
uses: actions/cache@v4
with:
path: build
key: freebsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-v1
key: freebsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v4
- name: Build
uses: vmactions/freebsd-vm@v1
@ -858,14 +859,14 @@ jobs:
uses: actions/cache@v4
with:
path: build
key: openbsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-v1
key: openbsd-${{ matrix.release }}-cmake-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v1
- name: Build
uses: vmactions/openbsd-vm@v1
with:
release: ${{ matrix.release }}
prepare: |
pkg_add mbedtls cmake python3
pkg_add mbedtls cmake py3-pip
usesh: true
run: |
if [ "${{ matrix.EVENT_MATRIX }}" == "DISABLE_OPENSSL" ]; then
@ -952,7 +953,7 @@ jobs:
with:
release: ${{ matrix.release }}
prepare: |
pkg_add mbedtls python3 automake-1.16.5 autoconf-2.71 libtool pkgconf
pkg_add mbedtls py3-pip automake-1.16.5 autoconf-2.72p0 libtool pkgconf
usesh: true
run: |
export AUTOMAKE_VERSION=1.16
@ -1007,7 +1008,7 @@ jobs:
uses: actions/cache@v4
with:
path: build
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-v4
key: ${{ matrix.os }}-cmake-${{ matrix.EVENT_MATRIX }}-${{ hashFiles('CMakeLists.txt', 'cmake/**', '.github/**') }}-v4
- name: Xcode
uses: maxim-lobanov/setup-xcode@v1

View File

@ -1679,10 +1679,16 @@ test_bufferevent_connect_hostname(void *arg)
tt_int_op(be_outcome[2].what, ==, !emfile ? BEV_EVENT_CONNECTED : BEV_EVENT_ERROR);
tt_int_op(be_outcome[2].dnserr, ==, 0);
tt_int_op(be_outcome[3].what, ==, !emfile ? BEV_EVENT_CONNECTED : BEV_EVENT_ERROR);
/*
* Some platforms check for localhost explicitly, and therefore may succeed without opening any files *
* e.g. https://github.com/openbsd/src/blob/53e0023678f73561cc0c0c07e49830be23d94673/lib/libc/asr/getaddrinfo_async.c#L234
*/
if (!emfile) {
tt_int_op(be_outcome[3].dnserr, ==, 0);
#if defined(__linux__)
} else {
tt_int_op(be_outcome[3].dnserr, !=, 0);
#endif
}
if (expect_err) {
tt_int_op(be_outcome[4].what, ==, BEV_EVENT_ERROR);

View File

@ -47,7 +47,9 @@
#define get_ssl_ctx get_mbedtls_config
/* FIXME: clean this up, add some prefix, i.e. le_ssl_ */
#if MBEDTLS_VERSION_MAJOR < 3
#define SSL_renegotiate mbedtls_ssl_renegotiate
#endif
#undef SSL_get_peer_certificate
#define SSL_get_peer_certificate mbedtls_ssl_get_peer_cert
#define SSL_get1_peer_certificate mbedtls_ssl_get_peer_cert

View File

@ -114,7 +114,9 @@ enum regress_openssl_type
{
REGRESS_OPENSSL_SOCKETPAIR = 1,
REGRESS_OPENSSL_FILTER = 2,
#ifdef SSL_renegotiate
REGRESS_OPENSSL_RENEGOTIATE = 4,
#endif
REGRESS_OPENSSL_OPEN = 8,
REGRESS_OPENSSL_DIRTY_SHUTDOWN = 16,
REGRESS_OPENSSL_FD = 32,
@ -170,9 +172,10 @@ respond_to_number(struct bufferevent *bev, void *ctx)
struct evbuffer *b = bufferevent_get_input(bev);
char *line;
int n;
#ifdef SSL_renegotiate
enum regress_openssl_type type;
type = (enum regress_openssl_type)ctx;
#endif
line = evbuffer_readln(b, NULL, EVBUFFER_EOL_LF);
if (! line)
@ -187,9 +190,11 @@ respond_to_number(struct bufferevent *bev, void *ctx)
bufferevent_free(bev); /* Should trigger close on other side. */
return;
}
#ifdef SSL_renegotiate
if ((type & REGRESS_OPENSSL_CLIENT) && n == renegotiate_at) {
SSL_renegotiate(bufferevent_ssl_get_ssl(bev));
}
#endif
++n;
evbuffer_add_printf(bufferevent_get_output(bev),
"%d\n", n);
@ -332,6 +337,7 @@ regress_bufferevent_openssl(void *arg)
enum regress_openssl_type type;
type = (enum regress_openssl_type)data->setup_data;
#ifdef SSL_renegotiate
if (type & REGRESS_OPENSSL_RENEGOTIATE) {
/*
* Disable TLS 1.3, so we negotiate something older to test
@ -347,6 +353,7 @@ regress_bufferevent_openssl(void *arg)
}
renegotiate_at = 600;
}
#endif
ssl1 = SSL_new(get_ssl_ctx(SSL_IS_CLIENT));
ssl2 = SSL_new(get_ssl_ctx(SSL_IS_SERVER));
@ -767,12 +774,14 @@ struct testcase_t TESTCASES_NAME[] = {
{ "bufferevent_filter_write_after_connect", regress_bufferevent_openssl,
TT_ISOLATED, &ssl_setup,
T(REGRESS_OPENSSL_FILTER|REGRESS_OPENSSL_CLIENT_WRITE) },
#ifdef SSL_renegotiate
{ "bufferevent_renegotiate_socketpair", regress_bufferevent_openssl,
TT_ISOLATED, &ssl_setup,
T(REGRESS_OPENSSL_SOCKETPAIR | REGRESS_OPENSSL_RENEGOTIATE) },
{ "bufferevent_renegotiate_filter", regress_bufferevent_openssl,
TT_ISOLATED, &ssl_setup,
T(REGRESS_OPENSSL_FILTER | REGRESS_OPENSSL_RENEGOTIATE) },
#endif
{ "bufferevent_socketpair_startopen", regress_bufferevent_openssl,
TT_ISOLATED, &ssl_setup,
T(REGRESS_OPENSSL_SOCKETPAIR | REGRESS_OPENSSL_OPEN) },
@ -786,6 +795,7 @@ struct testcase_t TESTCASES_NAME[] = {
{ "bufferevent_filter_dirty_shutdown", regress_bufferevent_openssl,
TT_ISOLATED, &ssl_setup,
T(REGRESS_OPENSSL_FILTER | REGRESS_OPENSSL_DIRTY_SHUTDOWN) },
#ifdef SSL_renegotiate
{ "bufferevent_renegotiate_socketpair_dirty_shutdown",
regress_bufferevent_openssl,
TT_ISOLATED,
@ -796,6 +806,7 @@ struct testcase_t TESTCASES_NAME[] = {
TT_ISOLATED,
&ssl_setup,
T(REGRESS_OPENSSL_FILTER | REGRESS_OPENSSL_RENEGOTIATE | REGRESS_OPENSSL_DIRTY_SHUTDOWN) },
#endif
{ "bufferevent_socketpair_startopen_dirty_shutdown",
regress_bufferevent_openssl,
TT_ISOLATED, &ssl_setup,