From c975465a6f79cbc13adb910d37f38c9161a9d2bc Mon Sep 17 00:00:00 2001 From: absurdfarce Date: Fri, 25 Oct 2024 15:08:56 -0500 Subject: [PATCH] Initial version of a Windows config for Github Actions --- .github/workflows/test.yml | 45 ++++++++++++++++++++++++++++++++++ src/gssapi/dse_auth_gssapi.cpp | 1 - tests/src/unit/CMakeLists.txt | 6 +++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..0b2dc7061 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,45 @@ +on: [push] +name: Test +jobs: + test: + name: Build and test driver on windows-2022 + runs-on: windows-2019 + env: + CASS_DRIVER_LIBEV_INCLUDES: C:/vcpkg/packages/libev_x64-windows/include/libev + CASS_DRIVER_LIBEV_LIBS: C:/vcpkg/packages/libev_x64-windows/lib + LIBUV_ROOT_DIR: C:/vcpkg/packages/libuv_x64-windows + ZLIB_ROOT_DIR: C:/vcpkg/packages/zlib_x64-windows-static + KERBEROS_ROOT_DIR: C:/vcpkg/packages/krb5_x64-windows + OPENSSL_ROOT_DIR: C:/vcpkg/packages/openssl_x64-windows + steps: + - uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 + - name: Install dependencies + run: vcpkg install libuv zlib:x64-windows-static krb5 openssl + - name: Setup env vars + run: | + echo "ZLIB_LIB_DIR=${{ env.ZLIB_ROOT_DIR }}/lib" >> $env:GITHUB_ENV + echo "LIBUV_BIN_DIR=${{ env.LIBUV_ROOT_DIR }}/bin" >> $env:GITHUB_ENV + echo "KERBEROS_BIN_DIR=${{ env.KERBEROS_ROOT_DIR }}/bin" >> $env:GITHUB_ENV + echo "OPENSSL_BIN_DIR=${{ env.OPENSSL_ROOT_DIR }}/bin" >> $env:GITHUB_ENV + echo "OPENSSL_APPLINK_DIR=${{ env.OPENSSL_ROOT_DIR }}/include/openssl" >> $env:GITHUB_ENV + - name: Set PATH to find vcpkg dependencies + run: | + echo "PATH=${{ env.PATH }};${{ env.LIBUV_BIN_DIR }};${{ env.KERBEROS_BIN_DIR }};${{ env.OPENSSL_BIN_DIR }}" >> $env:GITHUB_ENV + - name: Fix name of static zlib dir + run: ln -s ${{ env.ZLIB_LIB_DIR }}/zlib.lib ${{ env.ZLIB_LIB_DIR }}/zlibstatic.lib + - name: Build and run tests + run: | + mkdir build + cd build + cmake -G "NMake Makefiles" -DCASS_BUILD_UNIT_TESTS=On -DCASS_OPENSSL_APPLINK=${{ env.OPENSSL_APPLINK_DIR }}/applink.c .. + nmake + ls . + ldd ./cassandra-unit-tests.exe + ./cassandra-unit-tests.exe --gtest_output=xml:gtest-results.xml + ls . + - name: Publish test results + uses: mikepenz/action-junit-report@v4 + if: success() || failure() + with: + report_paths: build\gtest-results.xml diff --git a/src/gssapi/dse_auth_gssapi.cpp b/src/gssapi/dse_auth_gssapi.cpp index 1e10a645f..a27626332 100644 --- a/src/gssapi/dse_auth_gssapi.cpp +++ b/src/gssapi/dse_auth_gssapi.cpp @@ -22,7 +22,6 @@ #include #include -#include #include #define DSE_AUTHENTICATOR "com.datastax.bdp.cassandra.auth.DseAuthenticator" diff --git a/tests/src/unit/CMakeLists.txt b/tests/src/unit/CMakeLists.txt index 8dc0d472c..bffc38e8e 100644 --- a/tests/src/unit/CMakeLists.txt +++ b/tests/src/unit/CMakeLists.txt @@ -21,6 +21,12 @@ source_group("Header Files" FILES ${UNIT_TESTS_INCLUDE_FILES}) source_group("Source Files" FILES ${UNIT_TESTS_SOURCE_FILES}) source_group("Source Files\\tests" FILES ${UNIT_TESTS_TESTS_SOURCE_FILES}) +if(CASS_USE_OPENSSL AND WIN32 AND (NOT CASS_OPENSSL_APPLINK STREQUAL "")) + # Allow user to specify the location of applink.c. Some Windows builds require this as an + # interface into OpenSSL BIO ops. See https://docs.openssl.org/1.1.1/man3/OPENSSL_Applink/ + list(APPEND UNIT_TESTS_SOURCE_FILES "${CASS_OPENSSL_APPLINK}") +endif() + add_executable(cassandra-unit-tests ${MINIZIP_SOURCE_FILES} ${UNIT_TESTS_SOURCE_FILES}