chore: mysql dialect & test support #423
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Compatibility Test - PostgreSQL | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - '**/*.md' | |
| - '**/*.jpg' | |
| - '**/*.png' | |
| - '**/README.*' | |
| - '**/LICENSE.*' | |
| - 'docs/**' | |
| - 'ISSUE_TEMPLATE/**' | |
| env: | |
| BUILD_CONFIG: Release | |
| WIX_VERSION: 5.0.2 | |
| DRIVER_NAME_ANSI: 'AWS Advanced ODBC Wrapper Ansi' | |
| DRIVER_NAME_UNICODE: 'AWS Advanced ODBC Wrapper Unicode' | |
| LOCAL_DB_UID: 'test_username' | |
| LOCAL_DB_PWD: 'test_password' | |
| LOCAL_DB_NAME: 'test_database' | |
| permissions: | |
| contents: read | |
| jobs: | |
| # Build / Get Underlying Drivers | |
| build-win-psqlodbc: | |
| name: Windows - Build psqlODBC | |
| runs-on: windows-latest | |
| steps: | |
| - name: Retrieve psqlODBC Cache | |
| id: cache-psqlodbc | |
| uses: actions/cache@v4 | |
| with: | |
| path: psqlodbc | |
| key: ${{ runner.os }}-psqlodbc-driver | |
| - name: Download psqlODBC | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| run: | | |
| mkdir psqlodbc | |
| cd psqlodbc | |
| $DOWNLOAD_URL=$(gh api repos/postgresql-interfaces/psqlodbc/releases --jq '.[0].assets.[] | select(.name=="psqlodbc_x64.msi") | .browser_download_url') | |
| curl.exe -L ${DOWNLOAD_URL} --output psqlodbc_x64.msi | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| build-macos-psqlodbc: | |
| name: MacOS - Build psqlODBC | |
| runs-on: macos-15 | |
| steps: | |
| - name: Retrieve psqlODBC Cache | |
| id: cache-psqlodbc | |
| uses: actions/cache@v4 | |
| with: | |
| path: psqlodbc/.libs/ | |
| key: ${{ runner.os }}-psqlodbc-driver | |
| - name: Checkout psqlODBC | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: postgresql-interfaces/psqlodbc | |
| path: psqlodbc | |
| - name: Install Dependencies | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| run: | | |
| brew update && brew upgrade && brew cleanup | |
| brew install gcc autoconf automake unixodbc libtool postgresql icu4c | |
| - name: Build psqlodbc | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| working-directory: psqlodbc | |
| run: | | |
| ./bootstrap | |
| ./configure | |
| make | |
| build-linux-psqlodbc: | |
| name: Linux Ubuntu - Build psqlODBC | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Retrieve psqlODBC Cache | |
| id: cache-psqlodbc | |
| uses: actions/cache@v4 | |
| with: | |
| path: psqlodbc/.libs/ | |
| key: ${{ runner.os }}-psqlodbc-driver | |
| - name: Checkout psqlODBC | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: postgresql-interfaces/psqlodbc | |
| path: psqlodbc | |
| - name: Install Dependencies | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| run: | | |
| sudo apt update | |
| sudo apt-get install autoconf automake libtool postgresql libpq-dev | |
| - name: Download & Build unixODBC | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| run: | | |
| curl -L https://www.unixodbc.org/unixODBC-2.3.12.tar.gz -o unixODBC.tar | |
| tar xf unixODBC.tar | |
| cd unixODBC-2.3.12 | |
| ./configure && make | |
| sudo make install | |
| - name: Build psqlodbc | |
| if: ${{steps.cache-psqlodbc.outputs.cache-hit != 'true'}} | |
| working-directory: psqlodbc | |
| run: | | |
| ./bootstrap | |
| ./configure | |
| make | |
| build-win-mysql: | |
| name: Windows - Build MySQL Connector ODBC | |
| runs-on: windows-latest | |
| steps: | |
| - name: Retrieve mysql-connector Cache | |
| id: cache-mysql-connector | |
| uses: actions/cache@v4 | |
| with: | |
| path: mysql-connector | |
| key: ${{ runner.os }}-mysql-driver | |
| - name: Download mysql-connector | |
| if: ${{steps.cache-mysql-connector.outputs.cache-hit != 'true'}} | |
| run: | | |
| mkdir mysql-connector | |
| cd mysql-connector | |
| curl.exe -L "https://dev.mysql.com/get/Downloads/Connector-ODBC/9.5/mysql-connector-odbc-9.5.0-winx64.msi" --output mysql-connector_x64.msi | |
| build-macos-mysql: | |
| name: MacOS - Build MySQL Connector ODBC | |
| runs-on: macos-15 | |
| steps: | |
| - name: Retrieve mysql-connector Cache | |
| id: cache-mysql-connector | |
| uses: actions/cache@v4 | |
| with: | |
| path: mysql-connector/ | |
| key: ${{ runner.os }}-mysql-driver | |
| - name: Download mysql-connector | |
| if: ${{steps.cache-mysql-connector.outputs.cache-hit != 'true'}} | |
| run: | | |
| mkdir mysql-connector | |
| curl -L "https://dev.mysql.com/get/Downloads/Connector-ODBC/9.5/mysql-connector-odbc-9.5.0-macos15-arm64.tar.gz" --output mysql-connector_arm64.tar.gz | |
| tar xvf mysql-connector_arm64.tar.gz --strip-components 1 -C mysql-connector | |
| build-linux-mysql: | |
| name: Linux Ubuntu - Build MySQL Connector ODBC | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Retrieve mysql-connector Cache | |
| id: cache-mysql-connector | |
| uses: actions/cache@v4 | |
| with: | |
| path: mysql-connector/ | |
| key: ${{ runner.os }}-mysql-driver | |
| - name: Download mysql-connector | |
| if: ${{steps.cache-mysql-connector.outputs.cache-hit != 'true'}} | |
| run: | | |
| mkdir mysql-connector | |
| cd mysql-connector | |
| curl \ | |
| -L "https://dev.mysql.com/get/Downloads/Connector-ODBC/9.5/mysql-connector-odbc_9.5.0-1ubuntu24.04_amd64.deb" \ | |
| --output mysql-connector_x64.deb | |
| # Build Wrapper & Run Tests | |
| test-win-compat: | |
| name: Windows - Compatibility Test | |
| needs: [build-win-psqlodbc, build-win-mysql] | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout aws-advanced-odbc-wrapper | |
| uses: actions/checkout@v4 | |
| - name: Retrieve AWS SDK for C++ Cache | |
| id: cache-aws-sdk | |
| uses: actions/cache@v4 | |
| with: | |
| path: aws_sdk/install | |
| key: ${{ runner.os }}-aws-sdk-cpp-${{env.BUILD_CONFIG}}-shared | |
| - name: Build AWS SDK for C++ | |
| if: ${{steps.cache-aws-sdk.outputs.cache-hit != 'true'}} | |
| run: | | |
| ./scripts/compile_aws_sdk_win.ps1 ${{env.BUILD_CONFIG}} | |
| - name: Setup Dotnet for WiX | |
| uses: actions/setup-dotnet@v4 | |
| - name: Install WiX | |
| shell: cmd | |
| run: | | |
| dotnet tool install --global wix --version ${{env.WIX_VERSION}} | |
| wix extension add --global WixToolset.UI.wixext/${{env.WIX_VERSION}} | |
| - name: Run build installer script | |
| shell: pwsh | |
| run: | | |
| ./installer/build_installer.ps1 ${{env.BUILD_CONFIG}} | |
| - name: Install driver | |
| shell: pwsh | |
| working-directory: installer | |
| run: Start-Process msiexec "/lp! .\test.log /i aws-advanced-odbc-wrapper.msi /quiet /norestart" -Wait; | |
| # Setup PostgreSQL | |
| - name: Retrieve psqlODBC Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: psqlodbc | |
| key: ${{ runner.os }}-psqlodbc-driver | |
| fail-on-cache-miss: true | |
| - name: Install psqlODBC Driver | |
| shell: pwsh | |
| working-directory: psqlodbc | |
| run: | | |
| Start-Process msiexec "/i psqlodbc_x64.msi /quiet /norestart" -Wait; | |
| - name: Setup Local PostgreSQL Server | |
| uses: ikalnytskyi/action-setup-postgres@v7 | |
| with: | |
| username: ${{env.LOCAL_DB_UID}} | |
| password: ${{env.LOCAL_DB_PWD}} | |
| database: ${{env.LOCAL_DB_NAME}} | |
| port: 5432 | |
| postgres-version: 17 | |
| ssl: true | |
| # Setup MySQL | |
| - name: Retrieve MySQL Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: mysql-connector/ | |
| key: ${{ runner.os }}-mysql-driver | |
| fail-on-cache-miss: true | |
| - name: Install MySQL Connector ODBC | |
| shell: pwsh | |
| working-directory: mysql-connector | |
| run: | | |
| Start-Process msiexec "/i mysql-connector_x64.msi /quiet /norestart" -Wait; | |
| - name: Setup Local MySQL | |
| uses: kayqueGovetri/[email protected] | |
| with: | |
| mysql_root_password: ${{env.LOCAL_DB_PWD}} | |
| mysql_database: ${{env.LOCAL_DB_NAME}} | |
| mysql_user: ${{env.LOCAL_DB_UID}} | |
| mysql_user_password: ${{env.LOCAL_DB_PWD}} | |
| mysql_port: 3306 | |
| - name: Build Compatibility Tests | |
| run: | | |
| cmake -S test/compatibility -B build_test | |
| cmake --build build_test --config ${{env.BUILD_CONFIG}} | |
| - name: Install PostgreSQL Ansi DSNs | |
| shell: pwsh | |
| run: | | |
| Add-OdbcDsn -Name wrapper-pg-dsn ` | |
| -DriverName "${{ env.DRIVER_NAME_ANSI }}" ` | |
| -DsnType User ` | |
| -SetPropertyValue ` | |
| @("RDS_AUTH_TYPE=database", ` | |
| "Server=localhost", ` | |
| "Database=${{env.LOCAL_DB_NAME}}", ` | |
| "Port=5432", ` | |
| "SSLMode=prefer", ` | |
| "BASE_DRIVER=C:\Program Files\psqlODBC\1700\bin\podbc30a.dll") | |
| - name: Configure Base PostgreSQL DSN | |
| run: | | |
| Add-OdbcDsn -Name pg-dsn ` | |
| -DriverName "PostgreSQL ANSI(x64)" ` | |
| -DsnType User ` | |
| -SetPropertyValue ` | |
| @( ` | |
| "SERVER=localhost", ` | |
| "PORT=5432") ` | |
| - name: Run Compatibility Tests for PostgreSQL | |
| run: | | |
| ./build_test/${{env.BUILD_CONFIG}}/compatibility-test | |
| env: | |
| TEST_SERVER: localhost | |
| TEST_PORT: '5432' | |
| TEST_DSN: wrapper-pg-dsn | |
| TEST_DATABASE: ${{env.LOCAL_DB_NAME}} | |
| TEST_USERNAME: ${{env.LOCAL_DB_UID}} | |
| TEST_PASSWORD: ${{env.LOCAL_DB_PWD}} | |
| TEST_BASE_DRIVER: C:\Program Files\psqlODBC\1700\bin\podbc30a.dll | |
| TEST_BASE_DSN: pg-dsn | |
| - name: Compare Test Results | |
| run: | | |
| python3 -m venv venv | |
| .\venv\Scripts\Activate.ps1 | |
| pip3 install deepdiff | |
| python test/compatibility/compare_results.py wrapper-pg-dsn pg-dsn | |
| - name: Install MySQL Ansi DSNs | |
| shell: pwsh | |
| run: | | |
| Add-OdbcDsn -Name wrapper-mysql-dsn ` | |
| -DriverName "${{ env.DRIVER_NAME_ANSI }}" ` | |
| -DsnType User ` | |
| -SetPropertyValue ` | |
| @("RDS_AUTH_TYPE=database", ` | |
| "Server=localhost", ` | |
| "Database=${{env.LOCAL_DB_NAME}}", ` | |
| "Port=3306", ` | |
| "SSLMode=prefer", ` | |
| "BASE_DRIVER=C:\Program Files\MySQL\MySQL Connector ODBC 9.5\myodbc9a.dll") | |
| - name: Configure Base MySQL DSN | |
| run: | | |
| Add-OdbcDsn -Name mysql-dsn ` | |
| -DriverName "MySQL ODBC 9.5 ANSI Driver" ` | |
| -DsnType User ` | |
| -SetPropertyValue ` | |
| @( ` | |
| "SERVER=localhost", ` | |
| "PORT=3306") ` | |
| - name: Run Compatibility Tests for MySQL | |
| run: | | |
| ./build_test/${{env.BUILD_CONFIG}}/compatibility-test | |
| env: | |
| TEST_SERVER: localhost | |
| TEST_PORT: '3306' | |
| TEST_DSN: wrapper-mysql-dsn | |
| TEST_DATABASE: ${{env.LOCAL_DB_NAME}} | |
| TEST_USERNAME: ${{env.LOCAL_DB_UID}} | |
| TEST_PASSWORD: ${{env.LOCAL_DB_PWD}} | |
| TEST_BASE_DRIVER: C:\Program Files\MySQL\MySQL Connector ODBC 9.5\myodbc9a.dll | |
| TEST_BASE_DSN: mysql-dsn | |
| - name: Compare Test Results | |
| run: | | |
| python3 -m venv venv | |
| .\venv\Scripts\Activate.ps1 | |
| pip3 install deepdiff | |
| python test/compatibility/compare_results.py wrapper-mysql-dsn mysql-dsn | |
| - name: Upload Test Results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: odbc-api-compatibility-test-results-windows | |
| path: | | |
| wrapper-pg-dsn/ | |
| pg-dsn/ | |
| wrapper-mysql-dsn/ | |
| mysql-dsn/ | |
| test-macos-compat: | |
| name: MacOS - Compatibility Test | |
| needs: [build-macos-psqlodbc, build-macos-mysql] | |
| runs-on: macos-15 | |
| steps: | |
| - name: Checkout aws-advanced-odbc-wrapper | |
| uses: actions/checkout@v4 | |
| - name: Install Build Dependencies | |
| run: | | |
| brew update && brew upgrade && brew cleanup | |
| brew install cmake unixodbc postgresql curl openssl zlib icu4c | |
| - name: Retrieve AWS SDK for C++ Cache | |
| id: cache-aws-sdk | |
| uses: actions/cache@v4 | |
| with: | |
| path: aws_sdk/install | |
| key: ${{ runner.os }}-aws-sdk-cpp-${{env.BUILD_CONFIG}}-shared | |
| - name: Build AWS SDK for C++ | |
| if: ${{steps.cache-aws-sdk.outputs.cache-hit != 'true'}} | |
| run: | | |
| export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)" | |
| ./scripts/compile_aws_sdk_unix.sh ${{env.BUILD_CONFIG}} | |
| - name: Build aws-advanced-odbc-wrapper | |
| run: | | |
| cmake -S . -B build -DBUILD_UNICODE=OFF -DBUILD_UNIT_TEST=OFF -DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/ | |
| cmake --build build | |
| # Setup PostgreSQL | |
| - name: Retrieve psqlODBC Cache | |
| id: cache-psqlodbc | |
| uses: actions/cache@v4 | |
| with: | |
| path: psqlodbc/.libs/ | |
| key: ${{ runner.os }}-psqlodbc-driver | |
| fail-on-cache-miss: true | |
| - name: Setup Local PostgreSQL Server | |
| uses: ikalnytskyi/action-setup-postgres@v7 | |
| with: | |
| username: ${{env.LOCAL_DB_UID}} | |
| password: ${{env.LOCAL_DB_PWD}} | |
| database: ${{env.LOCAL_DB_NAME}} | |
| port: 5432 | |
| postgres-version: 17 | |
| ssl: true | |
| # Setup MySQL | |
| - name: Retrieve MySQL Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: mysql-connector/ | |
| key: ${{ runner.os }}-mysql-driver | |
| fail-on-cache-miss: true | |
| - name: Setup Local MySQL | |
| uses: kayqueGovetri/[email protected] | |
| with: | |
| mysql_root_password: ${{env.LOCAL_DB_PWD}} | |
| mysql_database: ${{env.LOCAL_DB_NAME}} | |
| mysql_user: ${{env.LOCAL_DB_UID}} | |
| mysql_user_password: ${{env.LOCAL_DB_PWD}} | |
| mysql_port: 3306 | |
| - name: Build Compatibility Tests | |
| run: | | |
| cmake -S test/compatibility -B test-compatibility \ | |
| -D TEST_DRIVER_PATH="${{ github.workspace }}/build/driver/aws-advanced-odbc-wrapper-a.dylib" \ | |
| -D PG_DRIVER_PATH="${{ github.workspace }}/psqlodbc/.libs/psqlodbca.so" \ | |
| -D PG_SERVER="localhost,5432" \ | |
| -D PG_DATABASE="${{env.LOCAL_DB_NAME}}" \ | |
| -D MYSQL_DRIVER_PATH="${{ github.workspace }}/mysql-connector/lib/libmyodbc9a.so" \ | |
| -D MYSQL_SERVER="localhost,3306" \ | |
| -D MYSQL_DATABASE="${{env.LOCAL_DB_NAME}}" | |
| cmake --build test-compatibility | |
| - name: Run Compatibility Tests for PostgreSQL | |
| run: | | |
| ./test-compatibility/compatibility-test | |
| env: | |
| TEST_SERVER: localhost | |
| TEST_PORT: '5432' | |
| TEST_DSN: wrapper-pg-dsn | |
| TEST_DATABASE: ${{env.LOCAL_DB_NAME}} | |
| TEST_USERNAME: ${{env.LOCAL_DB_UID}} | |
| TEST_PASSWORD: ${{env.LOCAL_DB_PWD}} | |
| TEST_BASE_DRIVER: ${{ github.workspace }}/psqlodbc/.libs/psqlodbca.so | |
| TEST_BASE_DSN: pg-dsn | |
| ODBCINI: "${{ github.workspace }}/test/resources/odbc.ini" | |
| ODBCINST: "${{ github.workspace }}/test/resources/odbcinst.ini" | |
| - name: Compare Test Results | |
| run: | | |
| python3 -m venv venv | |
| source venv/bin/activate | |
| pip3 install deepdiff | |
| python3 test/compatibility/compare_results.py wrapper-pg-dsn pg-dsn | |
| - name: Run Compatibility Tests for MySQL | |
| run: | | |
| ./test-compatibility/compatibility-test | |
| env: | |
| TEST_SERVER: localhost | |
| TEST_PORT: '3306' | |
| TEST_DSN: wrapper-mysql-dsn | |
| TEST_DATABASE: ${{env.LOCAL_DB_NAME}} | |
| TEST_USERNAME: ${{env.LOCAL_DB_UID}} | |
| TEST_PASSWORD: ${{env.LOCAL_DB_PWD}} | |
| TEST_BASE_DRIVER: ${{ github.workspace }}/mysql-connector/lib/libmyodbc9a.so | |
| TEST_BASE_DSN: mysql-dsn | |
| ODBCINI: "${{ github.workspace }}/test/resources/odbc.ini" | |
| ODBCINST: "${{ github.workspace }}/test/resources/odbcinst.ini" | |
| - name: Compare Test Results | |
| run: | | |
| python3 -m venv venv | |
| source venv/bin/activate | |
| pip3 install deepdiff | |
| python3 test/compatibility/compare_results.py wrapper-mysql-dsn mysql-dsn | |
| - name: Upload Test Results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: odbc-api-compatibility-test-results-macos | |
| path: | | |
| wrapper-pg-dsn/ | |
| pg-dsn/ | |
| wrapper-mysql-dsn/ | |
| mysql-dsn/ | |
| test-linux-compat: | |
| name: Linux Ubuntu - Compatibility Test | |
| needs: [build-linux-psqlodbc, build-linux-mysql] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout aws-advanced-odbc-wrapper | |
| uses: actions/checkout@v4 | |
| - name: Install Build Dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt-get install cmake libcurl4-openssl-dev libssl-dev odbcinst unixodbc-dev uuid-dev zlib1g-dev libicu-dev | |
| - name: Retrieve AWS SDK for C++ Cache | |
| id: cache-aws-sdk | |
| uses: actions/cache@v4 | |
| with: | |
| path: aws_sdk/install | |
| key: ${{ runner.os }}-aws-sdk-cpp-${{env.BUILD_CONFIG}}-shared | |
| - name: Build AWS SDK for C++ | |
| if: ${{steps.cache-aws-sdk.outputs.cache-hit != 'true'}} | |
| run: | | |
| ./scripts/compile_aws_sdk_unix.sh ${{env.BUILD_CONFIG}} | |
| - name: Build aws-advanced-odbc-wrapper | |
| run: | | |
| cmake -S . -B build -DBUILD_UNICODE=OFF -DBUILD_UNIT_TEST=OFF | |
| cmake --build build | |
| # Setup PostgreSQL | |
| - name: Retrieve psqlODBC Cache | |
| id: cache-psqlodbc | |
| uses: actions/cache@v4 | |
| with: | |
| path: psqlodbc/.libs/ | |
| key: ${{ runner.os }}-psqlodbc-driver | |
| fail-on-cache-miss: true | |
| - name: Setup Local PostgreSQL Server | |
| uses: ikalnytskyi/action-setup-postgres@v7 | |
| with: | |
| username: ${{env.LOCAL_DB_UID}} | |
| password: ${{env.LOCAL_DB_PWD}} | |
| database: ${{env.LOCAL_DB_NAME}} | |
| port: 5432 | |
| postgres-version: 17 | |
| ssl: true | |
| # Setup MySQL | |
| - name: Retrieve MySQL Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: mysql-connector/ | |
| key: ${{ runner.os }}-mysql-driver | |
| fail-on-cache-miss: true | |
| - name: Install MySQL Connector | |
| run: | | |
| sudo apt install ./mysql-connector/mysql-connector_x64.deb -y | |
| - name: Setup Local MySQL | |
| uses: kayqueGovetri/[email protected] | |
| with: | |
| mysql_root_password: ${{env.LOCAL_DB_PWD}} | |
| mysql_database: ${{env.LOCAL_DB_NAME}} | |
| mysql_user: ${{env.LOCAL_DB_UID}} | |
| mysql_user_password: ${{env.LOCAL_DB_PWD}} | |
| mysql_port: 3306 | |
| - name: Build Compatibility Tests for PostgreSQL | |
| run: | | |
| cmake -S test/compatibility -B test-compatibility \ | |
| -D TEST_DRIVER_PATH="${{ github.workspace }}/build/driver/aws-advanced-odbc-wrapper-a.so" \ | |
| -D PG_DRIVER_PATH="${{ github.workspace }}/psqlodbc/.libs/psqlodbca.so" \ | |
| -D PG_SERVER="localhost,5432" \ | |
| -D PG_DATABASE="${{env.LOCAL_DB_NAME}}" \ | |
| -D MYSQL_DRIVER_PATH="/usr/lib/x86_64-linux-gnu/odbc/libmyodbc9a.so" \ | |
| -D MYSQL_SERVER="localhost,3306" \ | |
| -D MYSQL_DATABASE="${{env.LOCAL_DB_NAME}}" | |
| cmake --build test-compatibility | |
| - name: Run Compatibility Tests for PostgreSQL | |
| run: | | |
| ./test-compatibility/compatibility-test | |
| env: | |
| TEST_SERVER: localhost | |
| TEST_PORT: '5432' | |
| TEST_DSN: wrapper-pg-dsn | |
| TEST_DATABASE: ${{env.LOCAL_DB_NAME}} | |
| TEST_USERNAME: ${{env.LOCAL_DB_UID}} | |
| TEST_PASSWORD: ${{env.LOCAL_DB_PWD}} | |
| TEST_BASE_DRIVER: ${{ github.workspace }}/psqlodbc/.libs/psqlodbca.so | |
| TEST_BASE_DSN: pg-dsn | |
| ODBCINI: "${{ github.workspace }}/test/resources/odbc.ini" | |
| ODBCINST: "${{ github.workspace }}/test/resources/odbcinst.ini" | |
| - name: Compare Test Results | |
| run: | | |
| python3 -m venv venv | |
| source venv/bin/activate | |
| pip3 install deepdiff | |
| python3 test/compatibility/compare_results.py wrapper-pg-dsn pg-dsn | |
| - name: Run Compatibility Tests for PostgreSQL | |
| run: | | |
| ./test-compatibility/compatibility-test | |
| env: | |
| TEST_SERVER: localhost | |
| TEST_PORT: '3306' | |
| TEST_DSN: wrapper-mysql-dsn | |
| TEST_DATABASE: ${{env.LOCAL_DB_NAME}} | |
| TEST_USERNAME: ${{env.LOCAL_DB_UID}} | |
| TEST_PASSWORD: ${{env.LOCAL_DB_PWD}} | |
| TEST_BASE_DRIVER: /usr/lib/x86_64-linux-gnu/odbc/libmyodbc9a.so | |
| TEST_BASE_DSN: mysql-dsn | |
| ODBCINI: "${{ github.workspace }}/test/resources/odbc.ini" | |
| ODBCINST: "${{ github.workspace }}/test/resources/odbcinst.ini" | |
| - name: Compare Test Results | |
| run: | | |
| python3 -m venv venv | |
| source venv/bin/activate | |
| pip3 install deepdiff | |
| python3 test/compatibility/compare_results.py wrapper-mysql-dsn mysql-dsn | |
| - name: Upload Test Results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: odbc-api-compatibility-test-results-linux | |
| path: | | |
| wrapper-pg-dsn/ | |
| pg-dsn/ | |
| wrapper-mysql-dsn/ | |
| mysql-dsn/ |