From 181a63395e13b162c7a5c951b478ab163d49cf75 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Sun, 2 Aug 2026 22:38:28 -0300 Subject: [PATCH 01/19] Better support for building as shared library --- .github/workflows/main.yml | 56 ++++++++++++---- .github/workflows/pull-request.yml | 55 ++++++++++++---- CMakeLists.txt | 28 ++++++++ README.md | 23 +++++++ src/fb-cpp/Attachment.h | 3 +- src/fb-cpp/AttachmentPool.h | 5 +- src/fb-cpp/BackupManager.h | 3 +- src/fb-cpp/Batch.h | 5 +- src/fb-cpp/Blob.h | 3 +- src/fb-cpp/CMakeLists.txt | 20 +++++- src/fb-cpp/Client.h | 3 +- src/fb-cpp/DatabaseManager.h | 3 +- src/fb-cpp/EventListener.h | 3 +- src/fb-cpp/Exception.h | 7 +- src/fb-cpp/RowSet.h | 3 +- src/fb-cpp/ServiceManager.h | 3 +- src/fb-cpp/Statement.h | 3 +- src/fb-cpp/Transaction.h | 3 +- tests/consumer/CMakeLists.txt | 9 +++ tests/consumer/Run.cmake | 100 +++++++++++++++++++++++++++++ tests/consumer/main.cpp | 32 +++++++++ 21 files changed, 326 insertions(+), 44 deletions(-) create mode 100644 tests/consumer/CMakeLists.txt create mode 100644 tests/consumer/Run.cmake create mode 100644 tests/consumer/main.cpp diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7ab5de0..91723c6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,6 +34,16 @@ jobs: build-linux: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + variant: + - name: static + buildSharedLibs: 'OFF' + triplet: x64-linux + - name: dynamic + buildSharedLibs: 'ON' + triplet: x64-linux-dynamic env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg @@ -54,9 +64,9 @@ jobs: vcpkg/buildtrees vcpkg/packages build/vcpkg_installed - key: ${{ runner.os }}-vcpkg-v3-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} + key: ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json', 'CMakePresets.json', 'cmake/triplets/*.cmake') }} restore-keys: | - ${{ runner.os }}-vcpkg-v3- + ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}- - name: Install system dependencies run: | @@ -109,13 +119,13 @@ jobs: - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json - cmake --preset default + cmake --preset default -DBUILD_SHARED_LIBS=${{ matrix.variant.buildSharedLibs }} -DVCPKG_TARGET_TRIPLET=${{ matrix.variant.triplet }} - name: Upload vcpkg failure logs if: failure() uses: actions/upload-artifact@v7 with: - name: vcpkg-logs-${{ github.job }} + name: vcpkg-logs-${{ github.job }}-${{ matrix.variant.name }} path: vcpkg/buildtrees/**/*.log if-no-files-found: ignore @@ -128,16 +138,28 @@ jobs: ctest --preset default --output-on-failure -j8 - name: Build documentation + if: matrix.variant.name == 'static' run: | cmake --build --preset default --target docs - name: Upload documentation artifact + if: matrix.variant.name == 'static' uses: actions/upload-pages-artifact@v4 with: path: build/Debug/doc/docs/html build-windows: runs-on: windows-latest + strategy: + fail-fast: false + matrix: + variant: + - name: static + buildSharedLibs: 'OFF' + triplet: x64-windows-static-md + - name: dynamic + buildSharedLibs: 'ON' + triplet: x64-windows env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg @@ -158,9 +180,9 @@ jobs: vcpkg/buildtrees vcpkg/packages build/vcpkg_installed - key: ${{ runner.os }}-vcpkg-v3-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} + key: ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json', 'CMakePresets.json', 'cmake/triplets/*.cmake') }} restore-keys: | - ${{ runner.os }}-vcpkg-v3- + ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}- - name: Install Firebird shell: cmd @@ -206,13 +228,13 @@ jobs: shell: cmd run: | copy CMakeUserPresets.json.windows-vs2026.template CMakeUserPresets.json - cmake --preset default + cmake --preset default -DBUILD_SHARED_LIBS=${{ matrix.variant.buildSharedLibs }} -DVCPKG_TARGET_TRIPLET=${{ matrix.variant.triplet }} - name: Upload vcpkg failure logs if: failure() uses: actions/upload-artifact@v7 with: - name: vcpkg-logs-${{ github.job }} + name: vcpkg-logs-${{ github.job }}-${{ matrix.variant.name }} path: vcpkg/buildtrees/**/*.log if-no-files-found: ignore @@ -228,6 +250,16 @@ jobs: build-macos: runs-on: macos-latest + strategy: + fail-fast: false + matrix: + variant: + - name: static + buildSharedLibs: 'OFF' + triplet: arm64-osx + - name: dynamic + buildSharedLibs: 'ON' + triplet: arm64-osx-dynamic env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg @@ -248,9 +280,9 @@ jobs: vcpkg/buildtrees vcpkg/packages build/vcpkg_installed - key: ${{ runner.os }}-vcpkg-v3-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} + key: ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json', 'CMakePresets.json', 'cmake/triplets/*.cmake') }} restore-keys: | - ${{ runner.os }}-vcpkg-v3- + ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}- - name: Install system dependencies run: | @@ -295,13 +327,13 @@ jobs: - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json - cmake --preset default + cmake --preset default -DBUILD_SHARED_LIBS=${{ matrix.variant.buildSharedLibs }} -DVCPKG_TARGET_TRIPLET=${{ matrix.variant.triplet }} - name: Upload vcpkg failure logs if: failure() uses: actions/upload-artifact@v7 with: - name: vcpkg-logs-${{ github.job }} + name: vcpkg-logs-${{ github.job }}-${{ matrix.variant.name }} path: vcpkg/buildtrees/**/*.log if-no-files-found: ignore diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 15aa26c..2d3c425 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -30,6 +30,16 @@ jobs: build-linux: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + variant: + - name: static + buildSharedLibs: 'OFF' + triplet: x64-linux + - name: dynamic + buildSharedLibs: 'ON' + triplet: x64-linux-dynamic env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg @@ -50,9 +60,9 @@ jobs: vcpkg/buildtrees vcpkg/packages build/vcpkg_installed - key: ${{ runner.os }}-vcpkg-v3-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} + key: ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json', 'CMakePresets.json', 'cmake/triplets/*.cmake') }} restore-keys: | - ${{ runner.os }}-vcpkg-v3- + ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}- - name: Install system dependencies run: | @@ -105,13 +115,13 @@ jobs: - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json - cmake --preset default + cmake --preset default -DBUILD_SHARED_LIBS=${{ matrix.variant.buildSharedLibs }} -DVCPKG_TARGET_TRIPLET=${{ matrix.variant.triplet }} - name: Upload vcpkg failure logs if: failure() uses: actions/upload-artifact@v7 with: - name: vcpkg-logs-${{ github.job }} + name: vcpkg-logs-${{ github.job }}-${{ matrix.variant.name }} path: vcpkg/buildtrees/**/*.log if-no-files-found: ignore @@ -124,11 +134,22 @@ jobs: ctest --preset default --output-on-failure -j8 - name: Build documentation + if: matrix.variant.name == 'static' run: | cmake --build --preset default --target docs build-windows: runs-on: windows-latest + strategy: + fail-fast: false + matrix: + variant: + - name: static + buildSharedLibs: 'OFF' + triplet: x64-windows-static-md + - name: dynamic + buildSharedLibs: 'ON' + triplet: x64-windows env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg @@ -149,9 +170,9 @@ jobs: vcpkg/buildtrees vcpkg/packages build/vcpkg_installed - key: ${{ runner.os }}-vcpkg-v3-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} + key: ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json', 'CMakePresets.json', 'cmake/triplets/*.cmake') }} restore-keys: | - ${{ runner.os }}-vcpkg-v3- + ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}- - name: Install Firebird shell: cmd @@ -197,13 +218,13 @@ jobs: shell: cmd run: | copy CMakeUserPresets.json.windows-vs2026.template CMakeUserPresets.json - cmake --preset default + cmake --preset default -DBUILD_SHARED_LIBS=${{ matrix.variant.buildSharedLibs }} -DVCPKG_TARGET_TRIPLET=${{ matrix.variant.triplet }} - name: Upload vcpkg failure logs if: failure() uses: actions/upload-artifact@v7 with: - name: vcpkg-logs-${{ github.job }} + name: vcpkg-logs-${{ github.job }}-${{ matrix.variant.name }} path: vcpkg/buildtrees/**/*.log if-no-files-found: ignore @@ -219,6 +240,16 @@ jobs: build-macos: runs-on: macos-latest + strategy: + fail-fast: false + matrix: + variant: + - name: static + buildSharedLibs: 'OFF' + triplet: arm64-osx + - name: dynamic + buildSharedLibs: 'ON' + triplet: arm64-osx-dynamic env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg @@ -239,9 +270,9 @@ jobs: vcpkg/buildtrees vcpkg/packages build/vcpkg_installed - key: ${{ runner.os }}-vcpkg-v3-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} + key: ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json', 'CMakePresets.json', 'cmake/triplets/*.cmake') }} restore-keys: | - ${{ runner.os }}-vcpkg-v3- + ${{ runner.os }}-vcpkg-v4-${{ matrix.variant.name }}-${{ matrix.variant.triplet }}- - name: Install system dependencies run: | @@ -286,13 +317,13 @@ jobs: - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json - cmake --preset default + cmake --preset default -DBUILD_SHARED_LIBS=${{ matrix.variant.buildSharedLibs }} -DVCPKG_TARGET_TRIPLET=${{ matrix.variant.triplet }} - name: Upload vcpkg failure logs if: failure() uses: actions/upload-artifact@v7 with: - name: vcpkg-logs-${{ github.job }} + name: vcpkg-logs-${{ github.job }}-${{ matrix.variant.name }} path: vcpkg/buildtrees/**/*.log if-no-files-found: ignore diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a90124..58009ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,6 +55,34 @@ add_subdirectory(doc) if(BUILD_TESTING) add_subdirectory(src/test) + + set(_fb_cpp_vcpkg_installed_dir "${VCPKG_INSTALLED_DIR}") + if(_fb_cpp_vcpkg_installed_dir AND NOT IS_ABSOLUTE "${_fb_cpp_vcpkg_installed_dir}") + get_filename_component(_fb_cpp_vcpkg_installed_dir "${_fb_cpp_vcpkg_installed_dir}" + ABSOLUTE BASE_DIR "${CMAKE_BINARY_DIR}") + endif() + + set(_fb_cpp_toolchain_file "${CMAKE_TOOLCHAIN_FILE}") + if(_fb_cpp_toolchain_file AND NOT IS_ABSOLUTE "${_fb_cpp_toolchain_file}") + get_filename_component(_fb_cpp_toolchain_file "${_fb_cpp_toolchain_file}" + ABSOLUTE BASE_DIR "${CMAKE_SOURCE_DIR}") + endif() + + add_test(NAME fb-cpp-installed-consumer + COMMAND ${CMAKE_COMMAND} + -D "FB_CPP_BUILD_DIR=${CMAKE_BINARY_DIR}" + -D "FB_CPP_BUILD_CONFIG=$" + -D "FB_CPP_CONSUMER_BINARY_DIR=${CMAKE_BINARY_DIR}/installed-consumer" + -D "FB_CPP_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/installed" + -D "FB_CPP_SOURCE_DIR=${CMAKE_SOURCE_DIR}" + -D "FB_CPP_VCPKG_INSTALLED_DIR=${_fb_cpp_vcpkg_installed_dir}" + -D "FB_CPP_VCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}" + -D "FB_CPP_CMAKE_TOOLCHAIN_FILE=${_fb_cpp_toolchain_file}" + -P "${CMAKE_CURRENT_SOURCE_DIR}/tests/consumer/Run.cmake" + ) + + unset(_fb_cpp_vcpkg_installed_dir) + unset(_fb_cpp_toolchain_file) endif() diff --git a/README.md b/README.md index 3ab9b9e..6e5b06e 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,29 @@ ctest --preset default cmake --build --preset default --target docs ``` +To build the library as a shared library with dynamic vcpkg dependencies, pass the desired linkage and triplet to an +existing platform preset: + +```bash +# Linux +cmake --preset posix-ninja-debug \ + -DBUILD_SHARED_LIBS=ON \ + -DVCPKG_TARGET_TRIPLET=x64-linux-dynamic +cmake --build --preset posix-ninja-debug + +# macOS +cmake --preset posix-ninja-debug \ + -DBUILD_SHARED_LIBS=ON \ + -DVCPKG_TARGET_TRIPLET=arm64-osx-dynamic +cmake --build --preset posix-ninja-debug + +# Windows +cmake --preset windows-vs2026 \ + -DBUILD_SHARED_LIBS=ON \ + -DVCPKG_TARGET_TRIPLET=x64-windows +cmake --build --preset windows-vs2026-debug +``` + ## Documentation The complete API documentation is available in the build `doc/docs/` directory after building with the `docs` target. diff --git a/src/fb-cpp/Attachment.h b/src/fb-cpp/Attachment.h index 128ed91..d22bdbb 100644 --- a/src/fb-cpp/Attachment.h +++ b/src/fb-cpp/Attachment.h @@ -25,6 +25,7 @@ #ifndef FBCPP_ATTACHMENT_H #define FBCPP_ATTACHMENT_H +#include "fb-cpp-export.h" #include "fb-api.h" #include "RowSet.h" #include "SmartPtrs.h" @@ -214,7 +215,7 @@ namespace fbcpp /// The Attachment must exist and remain valid while there are other objects using it, such as Transaction and /// Statement. /// - class Attachment final + class FB_CPP_EXPORT Attachment final { public: /// diff --git a/src/fb-cpp/AttachmentPool.h b/src/fb-cpp/AttachmentPool.h index 7019bdf..78cd18e 100644 --- a/src/fb-cpp/AttachmentPool.h +++ b/src/fb-cpp/AttachmentPool.h @@ -26,6 +26,7 @@ #define FBCPP_ATTACHMENT_POOL_H #include "Attachment.h" +#include "fb-cpp-export.h" #include "fb-api.h" #include #include @@ -227,7 +228,7 @@ namespace fbcpp /// The leased Attachment is confined to the thread holding the lease; it is not thread-safe. /// Returns the Attachment to the pool when the lease is destroyed, unless it was already released. /// - class PooledAttachment final + class FB_CPP_EXPORT PooledAttachment final { friend class AttachmentPool; @@ -334,7 +335,7 @@ namespace fbcpp /// The Client and the AttachmentPool must exist and remain valid while there are outstanding /// PooledAttachment leases. /// - class AttachmentPool final + class FB_CPP_EXPORT AttachmentPool final { friend class PooledAttachment; diff --git a/src/fb-cpp/BackupManager.h b/src/fb-cpp/BackupManager.h index 89b3bb1..1f0ba9b 100644 --- a/src/fb-cpp/BackupManager.h +++ b/src/fb-cpp/BackupManager.h @@ -26,6 +26,7 @@ #define FBCPP_BACKUP_MANAGER_H #include "ServiceManager.h" +#include "fb-cpp-export.h" #include #include #include @@ -325,7 +326,7 @@ namespace fbcpp /// /// Executes backup and restore operations through the Firebird service manager. /// - class BackupManager final : public ServiceManager + class FB_CPP_EXPORT BackupManager final : public ServiceManager { public: using ServiceManager::ServiceManager; diff --git a/src/fb-cpp/Batch.h b/src/fb-cpp/Batch.h index ab9724e..142cf60 100644 --- a/src/fb-cpp/Batch.h +++ b/src/fb-cpp/Batch.h @@ -25,6 +25,7 @@ #ifndef FBCPP_BATCH_H #define FBCPP_BATCH_H +#include "fb-cpp-export.h" #include "fb-api.h" #include "Blob.h" #include "Descriptor.h" @@ -182,7 +183,7 @@ namespace fbcpp /// /// This is a move-only type. The underlying Firebird handle is disposed in the destructor. /// - class BatchCompletionState final + class FB_CPP_EXPORT BatchCompletionState final { public: /// @@ -270,7 +271,7 @@ namespace fbcpp /// - From an **`Attachment` + SQL text** — uses `IAttachment::createBatch()`. /// Messages must be added via the raw `add()` method. /// - class Batch final + class FB_CPP_EXPORT Batch final { public: /// diff --git a/src/fb-cpp/Blob.h b/src/fb-cpp/Blob.h index 3464819..a3a4407 100644 --- a/src/fb-cpp/Blob.h +++ b/src/fb-cpp/Blob.h @@ -25,6 +25,7 @@ #ifndef FBCPP_BLOB_H #define FBCPP_BLOB_H +#include "fb-cpp-export.h" #include "fb-api.h" #include "SmartPtrs.h" #include "Exception.h" @@ -264,7 +265,7 @@ namespace fbcpp /// /// Provides read and write access to Firebird blobs. /// - class Blob final + class FB_CPP_EXPORT Blob final { public: /// diff --git a/src/fb-cpp/CMakeLists.txt b/src/fb-cpp/CMakeLists.txt index b48a82f..4e6ecad 100644 --- a/src/fb-cpp/CMakeLists.txt +++ b/src/fb-cpp/CMakeLists.txt @@ -31,10 +31,16 @@ add_library(${PROJECT_NAME} ${SRC} ) +include(GenerateExportHeader) +generate_export_header(${PROJECT_NAME} + BASE_NAME FB_CPP + EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/fb-cpp-export.h" +) target_include_directories(${PROJECT_NAME} PUBLIC $ + $ $ ) @@ -63,13 +69,17 @@ target_compile_definitions(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME} PUBLIC firebird - PRIVATE - ${CMAKE_DL_LIBS} ) +if(FB_CPP_USE_BOOST_DLL) + target_link_libraries(${PROJECT_NAME} + PUBLIC Boost::dll + ) +endif() + if(FB_CPP_USE_BOOST_MULTIPRECISION) target_link_libraries(${PROJECT_NAME} - PRIVATE Boost::multiprecision + PUBLIC Boost::multiprecision ) endif() @@ -94,6 +104,10 @@ foreach(HEADER_FILE ${HEADER_FILES}) endif() endforeach() +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/fb-cpp-export.h" + DESTINATION include/fb-cpp +) + install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets LIBRARY DESTINATION lib diff --git a/src/fb-cpp/Client.h b/src/fb-cpp/Client.h index f75fc92..f1274db 100644 --- a/src/fb-cpp/Client.h +++ b/src/fb-cpp/Client.h @@ -26,6 +26,7 @@ #define FBCPP_CLIENT_H #include "config.h" +#include "fb-cpp-export.h" #include "fb-api.h" #include "SmartPtrs.h" #include @@ -49,7 +50,7 @@ namespace fbcpp /// The Client must exist and remain valid while there are other objects using it, such as Attachment, Transaction /// and Statement. /// - class Client final + class FB_CPP_EXPORT Client final { public: /// diff --git a/src/fb-cpp/DatabaseManager.h b/src/fb-cpp/DatabaseManager.h index 5d55089..96ba919 100644 --- a/src/fb-cpp/DatabaseManager.h +++ b/src/fb-cpp/DatabaseManager.h @@ -26,6 +26,7 @@ #define FBCPP_DATABASE_MANAGER_H #include "ServiceManager.h" +#include "fb-cpp-export.h" #include #include #include @@ -428,7 +429,7 @@ namespace fbcpp /// /// Executes configuration and maintenance operations through the Firebird service manager. /// - class DatabaseManager final : public ServiceManager + class FB_CPP_EXPORT DatabaseManager final : public ServiceManager { public: using ServiceManager::ServiceManager; diff --git a/src/fb-cpp/EventListener.h b/src/fb-cpp/EventListener.h index acb7694..fdcef79 100644 --- a/src/fb-cpp/EventListener.h +++ b/src/fb-cpp/EventListener.h @@ -27,6 +27,7 @@ #include "Attachment.h" #include "Client.h" #include "Exception.h" +#include "fb-cpp-export.h" #include "SmartPtrs.h" #include "fb-api.h" #include @@ -63,7 +64,7 @@ namespace fbcpp /// /// Observes Firebird events and forwards aggregated counts to a callback on a background thread. /// - class EventListener final + class FB_CPP_EXPORT EventListener final { public: /// diff --git a/src/fb-cpp/Exception.h b/src/fb-cpp/Exception.h index 758ee05..8d27c33 100644 --- a/src/fb-cpp/Exception.h +++ b/src/fb-cpp/Exception.h @@ -26,6 +26,7 @@ #define FBCPP_EXCEPTION_H #include "fb-api.h" +#include "fb-cpp-export.h" #include #include #include @@ -42,7 +43,7 @@ namespace fbcpp namespace fbcpp::impl { - class StatusWrapper : public fb::IStatusImpl + class FB_CPP_EXPORT StatusWrapper : public fb::IStatusImpl { public: explicit StatusWrapper(Client& client, IStatus* status = nullptr) @@ -226,7 +227,7 @@ namespace fbcpp /// /// Base exception class for all fb-cpp exceptions. /// - class FbCppException : public std::runtime_error + class FB_CPP_EXPORT FbCppException : public std::runtime_error { public: using std::runtime_error::runtime_error; @@ -243,7 +244,7 @@ namespace fbcpp /// /// Exception thrown when a Firebird database operation fails. /// - class DatabaseException final : public FbCppException + class FB_CPP_EXPORT DatabaseException final : public FbCppException { public: /// diff --git a/src/fb-cpp/RowSet.h b/src/fb-cpp/RowSet.h index be96cdd..6a02dd6 100644 --- a/src/fb-cpp/RowSet.h +++ b/src/fb-cpp/RowSet.h @@ -25,6 +25,7 @@ #ifndef FBCPP_ROWSET_H #define FBCPP_ROWSET_H +#include "fb-cpp-export.h" #include "fb-api.h" #include "Row.h" #include "SmartPtrs.h" @@ -52,7 +53,7 @@ namespace fbcpp /// construction the RowSet is independent of its source Statement and can /// be used, moved, or destroyed freely. /// - class RowSet final + class FB_CPP_EXPORT RowSet final { public: diff --git a/src/fb-cpp/ServiceManager.h b/src/fb-cpp/ServiceManager.h index ebe2815..fe5e7c3 100644 --- a/src/fb-cpp/ServiceManager.h +++ b/src/fb-cpp/ServiceManager.h @@ -26,6 +26,7 @@ #define FBCPP_SERVICE_MANAGER_H #include "Exception.h" +#include "fb-cpp-export.h" #include "fb-api.h" #include "SmartPtrs.h" #include @@ -194,7 +195,7 @@ namespace fbcpp /// /// Represents a connection to the Firebird service manager. /// - class ServiceManager + class FB_CPP_EXPORT ServiceManager { public: /// diff --git a/src/fb-cpp/Statement.h b/src/fb-cpp/Statement.h index 05faa8a..d3b4d53 100644 --- a/src/fb-cpp/Statement.h +++ b/src/fb-cpp/Statement.h @@ -26,6 +26,7 @@ #define FBCPP_STATEMENT_H #include "config.h" +#include "fb-cpp-export.h" #include "fb-api.h" #include "types.h" #include "Blob.h" @@ -134,7 +135,7 @@ namespace fbcpp /// /// Prepares, executes, and fetches SQL statements against a Firebird attachment. /// - class Statement final + class FB_CPP_EXPORT Statement final { public: /// diff --git a/src/fb-cpp/Transaction.h b/src/fb-cpp/Transaction.h index 66d4594..13ce6ac 100644 --- a/src/fb-cpp/Transaction.h +++ b/src/fb-cpp/Transaction.h @@ -25,6 +25,7 @@ #ifndef FBCPP_TRANSACTION_H #define FBCPP_TRANSACTION_H +#include "fb-cpp-export.h" #include "fb-api.h" #include "SmartPtrs.h" #include @@ -347,7 +348,7 @@ namespace fbcpp /// being committed or rolled back (and not prepared), it will be automatically /// rolled back. /// - class Transaction final + class FB_CPP_EXPORT Transaction final { public: /// diff --git a/tests/consumer/CMakeLists.txt b/tests/consumer/CMakeLists.txt new file mode 100644 index 0000000..1c3f486 --- /dev/null +++ b/tests/consumer/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.18) + +project(fb-cpp-installed-consumer LANGUAGES CXX) + +find_package(fb-cpp CONFIG REQUIRED) + +add_executable(${PROJECT_NAME} main.cpp) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20) +target_link_libraries(${PROJECT_NAME} PRIVATE fb-cpp::fb-cpp) diff --git a/tests/consumer/Run.cmake b/tests/consumer/Run.cmake new file mode 100644 index 0000000..54d57f7 --- /dev/null +++ b/tests/consumer/Run.cmake @@ -0,0 +1,100 @@ +function(run_command) + execute_process( + COMMAND ${ARGN} + RESULT_VARIABLE result + OUTPUT_VARIABLE output + ERROR_VARIABLE error + ) + + if(NOT result EQUAL 0) + message(FATAL_ERROR + "Command failed with exit code ${result}:\n" + "${output}\n${error}" + ) + endif() +endfunction() + +file(REMOVE_RECURSE + "${FB_CPP_CONSUMER_BINARY_DIR}" + "${FB_CPP_INSTALL_PREFIX}" +) + +run_command( + "${CMAKE_COMMAND}" + --install "${FB_CPP_BUILD_DIR}" + --prefix "${FB_CPP_INSTALL_PREFIX}" + --config "${FB_CPP_BUILD_CONFIG}" +) + +set(prefixes "${FB_CPP_INSTALL_PREFIX}") +if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) + list(APPEND prefixes + "${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}" + ) +endif() +list(JOIN prefixes ";" prefix_path) + +set(configure_command + "${CMAKE_COMMAND}" + -S "${FB_CPP_SOURCE_DIR}/tests/consumer" + -B "${FB_CPP_CONSUMER_BINARY_DIR}" + "-DCMAKE_PREFIX_PATH=${prefix_path}" + "-DCMAKE_BUILD_TYPE=${FB_CPP_BUILD_CONFIG}" +) + +if(FB_CPP_CMAKE_TOOLCHAIN_FILE) + list(APPEND configure_command "-DCMAKE_TOOLCHAIN_FILE=${FB_CPP_CMAKE_TOOLCHAIN_FILE}") +endif() + +if(FB_CPP_VCPKG_INSTALLED_DIR) + list(APPEND configure_command "-DVCPKG_INSTALLED_DIR=${FB_CPP_VCPKG_INSTALLED_DIR}") +endif() + +if(FB_CPP_VCPKG_TARGET_TRIPLET) + list(APPEND configure_command "-DVCPKG_TARGET_TRIPLET=${FB_CPP_VCPKG_TARGET_TRIPLET}") +endif() + +run_command(${configure_command}) +run_command( + "${CMAKE_COMMAND}" + --build "${FB_CPP_CONSUMER_BINARY_DIR}" + --config "${FB_CPP_BUILD_CONFIG}" +) + +if(WIN32) + set(consumer_executable "${FB_CPP_CONSUMER_BINARY_DIR}/${FB_CPP_BUILD_CONFIG}/fb-cpp-installed-consumer.exe") + set(runtime_path + "${FB_CPP_INSTALL_PREFIX}/bin;${FB_CPP_INSTALL_PREFIX}/lib" + ) + if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) + string(APPEND runtime_path + ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/bin" + ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/lib" + ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/bin" + ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/lib" + ) + endif() + set(ENV{PATH} "${runtime_path};$ENV{PATH}") +elseif(APPLE) + set(consumer_executable "${FB_CPP_CONSUMER_BINARY_DIR}/fb-cpp-installed-consumer") + set(runtime_path "${FB_CPP_INSTALL_PREFIX}/lib") + if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) + string(APPEND runtime_path + ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/lib" + ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/lib" + ) + endif() + set(ENV{DYLD_LIBRARY_PATH} "${runtime_path}:$ENV{DYLD_LIBRARY_PATH}") +else() + set(consumer_executable "${FB_CPP_CONSUMER_BINARY_DIR}/fb-cpp-installed-consumer") + set(runtime_path "${FB_CPP_INSTALL_PREFIX}/lib") + if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) + string(APPEND runtime_path + ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/lib" + ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/lib" + ) + endif() + set(ENV{LD_LIBRARY_PATH} "${runtime_path}:$ENV{LD_LIBRARY_PATH}") +endif() + +run_command("${consumer_executable}") diff --git a/tests/consumer/main.cpp b/tests/consumer/main.cpp new file mode 100644 index 0000000..cfddea4 --- /dev/null +++ b/tests/consumer/main.cpp @@ -0,0 +1,32 @@ +/* + * MIT License + * + * Copyright (c) 2026 Adriano dos Santos Fernandes + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include + + +int main() +{ + fbcpp::Client client{fbcpp::fb::fb_get_master_interface()}; + client.shutdown(); +} From 771805529d935edf6abbf6aa8b15d1e24b7ca3e2 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Sun, 2 Aug 2026 22:56:35 -0300 Subject: [PATCH 02/19] Workaround for nuget cache concurrency issue --- .github/bin/mono | 7 +++++++ .github/workflows/main.yml | 12 ++++++++++++ .github/workflows/pull-request.yml | 12 ++++++++++++ 3 files changed, 31 insertions(+) create mode 100755 .github/bin/mono diff --git a/.github/bin/mono b/.github/bin/mono new file mode 100755 index 0000000..bc01f82 --- /dev/null +++ b/.github/bin/mono @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ "${2:-}" = "push" ]; then + set -- "$@" -SkipDuplicate +fi + +exec "$VCPKG_MONO_EXE" "$@" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 91723c6..984d68a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -84,6 +84,12 @@ jobs: libtomcrypt1 \ mono-complete + - name: Configure NuGet duplicate handling + if: github.repository == 'asfernandes/fb-cpp' + run: | + echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" + echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" + - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-linux-x64.tar.gz \ @@ -293,6 +299,12 @@ jobs: libtool \ mono + - name: Configure NuGet duplicate handling + if: github.repository == 'asfernandes/fb-cpp' + run: | + echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" + echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" + - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-macos-arm64.pkg \ diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 2d3c425..02ab5b4 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -80,6 +80,12 @@ jobs: libtomcrypt1 \ mono-complete + - name: Configure NuGet duplicate handling + if: github.repository == 'asfernandes/fb-cpp' + run: | + echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" + echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" + - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-linux-x64.tar.gz \ @@ -283,6 +289,12 @@ jobs: libtool \ mono + - name: Configure NuGet duplicate handling + if: github.repository == 'asfernandes/fb-cpp' + run: | + echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" + echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" + - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-macos-arm64.pkg \ From b6b44a6d5be4afd7dc77f669ad7769a201ee3d92 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 07:19:37 -0300 Subject: [PATCH 03/19] Upgrade firebird port --- vcpkg-configuration.json | 2 +- vcpkg.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index c05da6d..24dcadb 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -8,7 +8,7 @@ { "kind": "git", "repository": "https://github.com/asfernandes/firebird-vcpkg-registry.git", - "baseline": "57733cdd522ea209b3efbaae0405859f38ac2309", + "baseline": "3359f0d4114e219dab4320c7a55468ad57e2c041", "packages": [ "firebird" ] } ], diff --git a/vcpkg.json b/vcpkg.json index e04b5c4..9a0c397 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -34,7 +34,7 @@ { "name": "firebird", "version": "5.0.4", - "port-version": 1 + "port-version": 2 }, { "name": "icu", From 00f4b5fd6dfb45e04435835481a8ff44908bcd44 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 08:19:11 -0300 Subject: [PATCH 04/19] install llvm in MacOS --- .github/workflows/main.yml | 7 ++++++- .github/workflows/pull-request.yml | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 984d68a..aa35162 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -297,7 +297,8 @@ jobs: autoconf-archive \ automake \ libtool \ - mono + mono \ + llvm - name: Configure NuGet duplicate handling if: github.repository == 'asfernandes/fb-cpp' @@ -336,6 +337,10 @@ jobs: setapikey "${{ secrets.GITHUB_TOKEN }}" \ -Source "${{ env.FEED_URL }}" + - name: Add LLVM tools to PATH + if: runner.os == 'MacOS' + run: echo "$(brew --prefix llvm)/bin" >> "$GITHUB_PATH" + - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 02ab5b4..63cda68 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -287,7 +287,8 @@ jobs: autoconf-archive \ automake \ libtool \ - mono + mono \ + llvm - name: Configure NuGet duplicate handling if: github.repository == 'asfernandes/fb-cpp' @@ -326,6 +327,10 @@ jobs: setapikey "${{ secrets.GITHUB_TOKEN }}" \ -Source "${{ env.FEED_URL }}" + - name: Add LLVM tools to PATH + if: runner.os == 'MacOS' + run: echo "$(brew --prefix llvm)/bin" >> "$GITHUB_PATH" + - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json From c11f43ba8b4b818ae616042fe30eaa0e7d599dd1 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 21:47:25 -0300 Subject: [PATCH 05/19] Update firebird port --- vcpkg-configuration.json | 2 +- vcpkg.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 24dcadb..1fb963b 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -8,7 +8,7 @@ { "kind": "git", "repository": "https://github.com/asfernandes/firebird-vcpkg-registry.git", - "baseline": "3359f0d4114e219dab4320c7a55468ad57e2c041", + "baseline": "eaf8e288e68c48b90587b97b6105a5e699480e49", "packages": [ "firebird" ] } ], diff --git a/vcpkg.json b/vcpkg.json index 9a0c397..8644133 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -34,7 +34,7 @@ { "name": "firebird", "version": "5.0.4", - "port-version": 2 + "port-version": 3 }, { "name": "icu", From 1c8c8c94a2dac522e8e81c36df86aa0091514fa3 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 21:47:25 -0300 Subject: [PATCH 06/19] Remove consumer test --- CMakeLists.txt | 28 ---------- tests/consumer/CMakeLists.txt | 9 --- tests/consumer/Run.cmake | 100 ---------------------------------- tests/consumer/main.cpp | 32 ----------- 4 files changed, 169 deletions(-) delete mode 100644 tests/consumer/CMakeLists.txt delete mode 100644 tests/consumer/Run.cmake delete mode 100644 tests/consumer/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 58009ae..2a90124 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,34 +55,6 @@ add_subdirectory(doc) if(BUILD_TESTING) add_subdirectory(src/test) - - set(_fb_cpp_vcpkg_installed_dir "${VCPKG_INSTALLED_DIR}") - if(_fb_cpp_vcpkg_installed_dir AND NOT IS_ABSOLUTE "${_fb_cpp_vcpkg_installed_dir}") - get_filename_component(_fb_cpp_vcpkg_installed_dir "${_fb_cpp_vcpkg_installed_dir}" - ABSOLUTE BASE_DIR "${CMAKE_BINARY_DIR}") - endif() - - set(_fb_cpp_toolchain_file "${CMAKE_TOOLCHAIN_FILE}") - if(_fb_cpp_toolchain_file AND NOT IS_ABSOLUTE "${_fb_cpp_toolchain_file}") - get_filename_component(_fb_cpp_toolchain_file "${_fb_cpp_toolchain_file}" - ABSOLUTE BASE_DIR "${CMAKE_SOURCE_DIR}") - endif() - - add_test(NAME fb-cpp-installed-consumer - COMMAND ${CMAKE_COMMAND} - -D "FB_CPP_BUILD_DIR=${CMAKE_BINARY_DIR}" - -D "FB_CPP_BUILD_CONFIG=$" - -D "FB_CPP_CONSUMER_BINARY_DIR=${CMAKE_BINARY_DIR}/installed-consumer" - -D "FB_CPP_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/installed" - -D "FB_CPP_SOURCE_DIR=${CMAKE_SOURCE_DIR}" - -D "FB_CPP_VCPKG_INSTALLED_DIR=${_fb_cpp_vcpkg_installed_dir}" - -D "FB_CPP_VCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}" - -D "FB_CPP_CMAKE_TOOLCHAIN_FILE=${_fb_cpp_toolchain_file}" - -P "${CMAKE_CURRENT_SOURCE_DIR}/tests/consumer/Run.cmake" - ) - - unset(_fb_cpp_vcpkg_installed_dir) - unset(_fb_cpp_toolchain_file) endif() diff --git a/tests/consumer/CMakeLists.txt b/tests/consumer/CMakeLists.txt deleted file mode 100644 index 1c3f486..0000000 --- a/tests/consumer/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -cmake_minimum_required(VERSION 3.18) - -project(fb-cpp-installed-consumer LANGUAGES CXX) - -find_package(fb-cpp CONFIG REQUIRED) - -add_executable(${PROJECT_NAME} main.cpp) -target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20) -target_link_libraries(${PROJECT_NAME} PRIVATE fb-cpp::fb-cpp) diff --git a/tests/consumer/Run.cmake b/tests/consumer/Run.cmake deleted file mode 100644 index 54d57f7..0000000 --- a/tests/consumer/Run.cmake +++ /dev/null @@ -1,100 +0,0 @@ -function(run_command) - execute_process( - COMMAND ${ARGN} - RESULT_VARIABLE result - OUTPUT_VARIABLE output - ERROR_VARIABLE error - ) - - if(NOT result EQUAL 0) - message(FATAL_ERROR - "Command failed with exit code ${result}:\n" - "${output}\n${error}" - ) - endif() -endfunction() - -file(REMOVE_RECURSE - "${FB_CPP_CONSUMER_BINARY_DIR}" - "${FB_CPP_INSTALL_PREFIX}" -) - -run_command( - "${CMAKE_COMMAND}" - --install "${FB_CPP_BUILD_DIR}" - --prefix "${FB_CPP_INSTALL_PREFIX}" - --config "${FB_CPP_BUILD_CONFIG}" -) - -set(prefixes "${FB_CPP_INSTALL_PREFIX}") -if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) - list(APPEND prefixes - "${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}" - ) -endif() -list(JOIN prefixes ";" prefix_path) - -set(configure_command - "${CMAKE_COMMAND}" - -S "${FB_CPP_SOURCE_DIR}/tests/consumer" - -B "${FB_CPP_CONSUMER_BINARY_DIR}" - "-DCMAKE_PREFIX_PATH=${prefix_path}" - "-DCMAKE_BUILD_TYPE=${FB_CPP_BUILD_CONFIG}" -) - -if(FB_CPP_CMAKE_TOOLCHAIN_FILE) - list(APPEND configure_command "-DCMAKE_TOOLCHAIN_FILE=${FB_CPP_CMAKE_TOOLCHAIN_FILE}") -endif() - -if(FB_CPP_VCPKG_INSTALLED_DIR) - list(APPEND configure_command "-DVCPKG_INSTALLED_DIR=${FB_CPP_VCPKG_INSTALLED_DIR}") -endif() - -if(FB_CPP_VCPKG_TARGET_TRIPLET) - list(APPEND configure_command "-DVCPKG_TARGET_TRIPLET=${FB_CPP_VCPKG_TARGET_TRIPLET}") -endif() - -run_command(${configure_command}) -run_command( - "${CMAKE_COMMAND}" - --build "${FB_CPP_CONSUMER_BINARY_DIR}" - --config "${FB_CPP_BUILD_CONFIG}" -) - -if(WIN32) - set(consumer_executable "${FB_CPP_CONSUMER_BINARY_DIR}/${FB_CPP_BUILD_CONFIG}/fb-cpp-installed-consumer.exe") - set(runtime_path - "${FB_CPP_INSTALL_PREFIX}/bin;${FB_CPP_INSTALL_PREFIX}/lib" - ) - if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) - string(APPEND runtime_path - ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/bin" - ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/lib" - ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/bin" - ";${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/lib" - ) - endif() - set(ENV{PATH} "${runtime_path};$ENV{PATH}") -elseif(APPLE) - set(consumer_executable "${FB_CPP_CONSUMER_BINARY_DIR}/fb-cpp-installed-consumer") - set(runtime_path "${FB_CPP_INSTALL_PREFIX}/lib") - if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) - string(APPEND runtime_path - ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/lib" - ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/lib" - ) - endif() - set(ENV{DYLD_LIBRARY_PATH} "${runtime_path}:$ENV{DYLD_LIBRARY_PATH}") -else() - set(consumer_executable "${FB_CPP_CONSUMER_BINARY_DIR}/fb-cpp-installed-consumer") - set(runtime_path "${FB_CPP_INSTALL_PREFIX}/lib") - if(FB_CPP_VCPKG_INSTALLED_DIR AND FB_CPP_VCPKG_TARGET_TRIPLET) - string(APPEND runtime_path - ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/lib" - ":${FB_CPP_VCPKG_INSTALLED_DIR}/${FB_CPP_VCPKG_TARGET_TRIPLET}/debug/lib" - ) - endif() - set(ENV{LD_LIBRARY_PATH} "${runtime_path}:$ENV{LD_LIBRARY_PATH}") -endif() - -run_command("${consumer_executable}") diff --git a/tests/consumer/main.cpp b/tests/consumer/main.cpp deleted file mode 100644 index cfddea4..0000000 --- a/tests/consumer/main.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2026 Adriano dos Santos Fernandes - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#include - - -int main() -{ - fbcpp::Client client{fbcpp::fb::fb_get_master_interface()}; - client.shutdown(); -} From 4282df9f5e9867e22444c304176219c6e4170292 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 21:47:25 -0300 Subject: [PATCH 07/19] Replace nuget cache control by GH actions concurrency --- .github/bin/mono | 7 ------- .github/workflows/main.yml | 24 ++++++++++++------------ .github/workflows/pull-request.yml | 24 ++++++++++++------------ 3 files changed, 24 insertions(+), 31 deletions(-) delete mode 100755 .github/bin/mono diff --git a/.github/bin/mono b/.github/bin/mono deleted file mode 100755 index bc01f82..0000000 --- a/.github/bin/mono +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -if [ "${2:-}" = "push" ]; then - set -- "$@" -SkipDuplicate -fi - -exec "$VCPKG_MONO_EXE" "$@" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aa35162..4dcf26a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,9 +33,13 @@ jobs: ./check-format.sh build-linux: + concurrency: + group: build-linux + cancel-in-progress: false runs-on: ubuntu-latest strategy: fail-fast: false + max-parallel: 1 matrix: variant: - name: static @@ -84,12 +88,6 @@ jobs: libtomcrypt1 \ mono-complete - - name: Configure NuGet duplicate handling - if: github.repository == 'asfernandes/fb-cpp' - run: | - echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" - echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" - - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-linux-x64.tar.gz \ @@ -155,9 +153,13 @@ jobs: path: build/Debug/doc/docs/html build-windows: + concurrency: + group: build-windows + cancel-in-progress: false runs-on: windows-latest strategy: fail-fast: false + max-parallel: 1 matrix: variant: - name: static @@ -255,9 +257,13 @@ jobs: ctest --preset default --output-on-failure -j8 build-macos: + concurrency: + group: build-macos + cancel-in-progress: false runs-on: macos-latest strategy: fail-fast: false + max-parallel: 1 matrix: variant: - name: static @@ -300,12 +306,6 @@ jobs: mono \ llvm - - name: Configure NuGet duplicate handling - if: github.repository == 'asfernandes/fb-cpp' - run: | - echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" - echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" - - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-macos-arm64.pkg \ diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 63cda68..ff5f64a 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -29,9 +29,13 @@ jobs: ./check-format.sh build-linux: + concurrency: + group: build-linux + cancel-in-progress: false runs-on: ubuntu-latest strategy: fail-fast: false + max-parallel: 1 matrix: variant: - name: static @@ -80,12 +84,6 @@ jobs: libtomcrypt1 \ mono-complete - - name: Configure NuGet duplicate handling - if: github.repository == 'asfernandes/fb-cpp' - run: | - echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" - echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" - - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-linux-x64.tar.gz \ @@ -145,9 +143,13 @@ jobs: cmake --build --preset default --target docs build-windows: + concurrency: + group: build-windows + cancel-in-progress: false runs-on: windows-latest strategy: fail-fast: false + max-parallel: 1 matrix: variant: - name: static @@ -245,9 +247,13 @@ jobs: ctest --preset default --output-on-failure -j8 build-macos: + concurrency: + group: build-macos + cancel-in-progress: false runs-on: macos-latest strategy: fail-fast: false + max-parallel: 1 matrix: variant: - name: static @@ -290,12 +296,6 @@ jobs: mono \ llvm - - name: Configure NuGet duplicate handling - if: github.repository == 'asfernandes/fb-cpp' - run: | - echo "VCPKG_MONO_EXE=$(command -v mono)" >> "$GITHUB_ENV" - echo "${{ github.workspace }}/.github/bin" >> "$GITHUB_PATH" - - name: Install Firebird run: | wget -nv -O Firebird-5.0.3.1683-0-macos-arm64.pkg \ From 8e2b991d0855dfc6c575e4ebc47a80b68ba25b78 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 22:14:11 -0300 Subject: [PATCH 08/19] Update firebird dependency --- vcpkg-configuration.json | 2 +- vcpkg.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 1fb963b..94cc633 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -8,7 +8,7 @@ { "kind": "git", "repository": "https://github.com/asfernandes/firebird-vcpkg-registry.git", - "baseline": "eaf8e288e68c48b90587b97b6105a5e699480e49", + "baseline": "f0119347d35c22aaa9ee3eca5c3d091e75084813", "packages": [ "firebird" ] } ], diff --git a/vcpkg.json b/vcpkg.json index 8644133..57e994e 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -34,7 +34,7 @@ { "name": "firebird", "version": "5.0.4", - "port-version": 3 + "port-version": 4 }, { "name": "icu", From ca1b1f58b45dd9496717e243ce4545c3ea24005e Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 22:17:30 -0300 Subject: [PATCH 09/19] Disable nuget cache --- .github/workflows/main.yml | 133 ++++++++++++++++++++----------------- 1 file changed, 73 insertions(+), 60 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4dcf26a..a655cf1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,8 +10,9 @@ permissions: id-token: write packages: write -concurrency: - group: ${{ github.ref }} +# FIXME: +#concurrency: +# group: ${{ github.ref }} jobs: clang-format-check: @@ -33,13 +34,15 @@ jobs: ./check-format.sh build-linux: - concurrency: - group: build-linux - cancel-in-progress: false + # FIXME: + #concurrency: + # group: build-linux + # cancel-in-progress: false runs-on: ubuntu-latest strategy: fail-fast: false - max-parallel: 1 + # FIXME: + #max-parallel: 1 matrix: variant: - name: static @@ -51,8 +54,9 @@ jobs: env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} + # FIXME: + #FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} + #VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -106,19 +110,20 @@ jobs: run: | ./vcpkg/bootstrap-vcpkg.sh -disableMetrics - - name: Configure vcpkg binary caching - if: github.repository == 'asfernandes/fb-cpp' - run: | - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - sources add \ - -Source "${{ env.FEED_URL }}" \ - -StorePasswordInClearText \ - -Name GitHubPackages \ - -UserName "${{ env.USERNAME }}" \ - -Password "${{ secrets.GITHUB_TOKEN }}" - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - setapikey "${{ secrets.GITHUB_TOKEN }}" \ - -Source "${{ env.FEED_URL }}" + # FIXME: + #- name: Configure vcpkg binary caching + # if: github.repository == 'asfernandes/fb-cpp' + # run: | + # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ + # sources add \ + # -Source "${{ env.FEED_URL }}" \ + # -StorePasswordInClearText \ + # -Name GitHubPackages \ + # -UserName "${{ env.USERNAME }}" \ + # -Password "${{ secrets.GITHUB_TOKEN }}" + # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ + # setapikey "${{ secrets.GITHUB_TOKEN }}" \ + # -Source "${{ env.FEED_URL }}" - name: Configure CMake run: | @@ -153,13 +158,15 @@ jobs: path: build/Debug/doc/docs/html build-windows: - concurrency: - group: build-windows - cancel-in-progress: false + # FIXME: + #concurrency: + # group: build-windows + # cancel-in-progress: false runs-on: windows-latest strategy: fail-fast: false - max-parallel: 1 + # FIXME: + #max-parallel: 1 matrix: variant: - name: static @@ -171,8 +178,9 @@ jobs: env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} + # FIXME: + #FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} + #VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -217,20 +225,21 @@ jobs: run: | vcpkg\bootstrap-vcpkg.bat -disableMetrics - - name: Configure vcpkg binary caching - if: github.repository == 'asfernandes/fb-cpp' - shell: pwsh - run: | - .$(${{ env.VCPKG_EXE }} fetch nuget) ` - sources add ` - -Source "${{ env.FEED_URL }}" ` - -StorePasswordInClearText ` - -Name GitHubPackages ` - -UserName "${{ env.USERNAME }}" ` - -Password "${{ secrets.GITHUB_TOKEN }}" - .$(${{ env.VCPKG_EXE }} fetch nuget) ` - setapikey "${{ secrets.GITHUB_TOKEN }}" ` - -Source "${{ env.FEED_URL }}" + # FIXME: + #- name: Configure vcpkg binary caching + # if: github.repository == 'asfernandes/fb-cpp' + # shell: pwsh + # run: | + # .$(${{ env.VCPKG_EXE }} fetch nuget) ` + # sources add ` + # -Source "${{ env.FEED_URL }}" ` + # -StorePasswordInClearText ` + # -Name GitHubPackages ` + # -UserName "${{ env.USERNAME }}" ` + # -Password "${{ secrets.GITHUB_TOKEN }}" + # .$(${{ env.VCPKG_EXE }} fetch nuget) ` + # setapikey "${{ secrets.GITHUB_TOKEN }}" ` + # -Source "${{ env.FEED_URL }}" - name: Configure CMake shell: cmd @@ -257,13 +266,15 @@ jobs: ctest --preset default --output-on-failure -j8 build-macos: - concurrency: - group: build-macos - cancel-in-progress: false + # FIXME: + #concurrency: + # group: build-macos + # cancel-in-progress: false runs-on: macos-latest strategy: fail-fast: false - max-parallel: 1 + # FIXME: + #max-parallel: 1 matrix: variant: - name: static @@ -275,8 +286,9 @@ jobs: env: USERNAME: asfernandes VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} + # FIXME: + #FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} + #VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -323,19 +335,20 @@ jobs: run: | ./vcpkg/bootstrap-vcpkg.sh -disableMetrics - - name: Configure vcpkg binary caching - if: github.repository == 'asfernandes/fb-cpp' - run: | - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - sources add \ - -Source "${{ env.FEED_URL }}" \ - -StorePasswordInClearText \ - -Name GitHubPackages \ - -UserName "${{ env.USERNAME }}" \ - -Password "${{ secrets.GITHUB_TOKEN }}" - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - setapikey "${{ secrets.GITHUB_TOKEN }}" \ - -Source "${{ env.FEED_URL }}" + # FIXME: + #- name: Configure vcpkg binary caching + # if: github.repository == 'asfernandes/fb-cpp' + # run: | + # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ + # sources add \ + # -Source "${{ env.FEED_URL }}" \ + # -StorePasswordInClearText \ + # -Name GitHubPackages \ + # -UserName "${{ env.USERNAME }}" \ + # -Password "${{ secrets.GITHUB_TOKEN }}" + # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ + # setapikey "${{ secrets.GITHUB_TOKEN }}" \ + # -Source "${{ env.FEED_URL }}" - name: Add LLVM tools to PATH if: runner.os == 'MacOS' From 93676a72f522dc899f87a55beee1c00ea48e5e33 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 22:27:15 -0300 Subject: [PATCH 10/19] Point to temp branch of firebird-vcpkg-registry --- vcpkg-configuration.json | 1 + 1 file changed, 1 insertion(+) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 94cc633..1df34e3 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -8,6 +8,7 @@ { "kind": "git", "repository": "https://github.com/asfernandes/firebird-vcpkg-registry.git", + "reference": "work/fbclient-static", "baseline": "f0119347d35c22aaa9ee3eca5c3d091e75084813", "packages": [ "firebird" ] } From 8484430856eaaf4476ee0ec29d886cfe49aa929a Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 22:58:41 -0300 Subject: [PATCH 11/19] Update firebird dependency --- vcpkg-configuration.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 1df34e3..d7dbd3b 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -9,7 +9,7 @@ "kind": "git", "repository": "https://github.com/asfernandes/firebird-vcpkg-registry.git", "reference": "work/fbclient-static", - "baseline": "f0119347d35c22aaa9ee3eca5c3d091e75084813", + "baseline": "076785920407e295610f0e48740ece477f3c8a26", "packages": [ "firebird" ] } ], From 3ba874cef2121aba69fc52d932b48b8f1083b240 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Mon, 3 Aug 2026 23:27:46 -0300 Subject: [PATCH 12/19] Do not use boost-dll in static builds --- .github/workflows/main.yml | 2 +- .github/workflows/pull-request.yml | 2 +- src/fb-cpp/CMakeLists.txt | 21 +++++++++++++++++++-- src/test/CMakeLists.txt | 2 -- vcpkg.json | 5 ++++- 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a655cf1..dc92674 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -147,7 +147,7 @@ jobs: ctest --preset default --output-on-failure -j8 - name: Build documentation - if: matrix.variant.name == 'static' + if: matrix.variant.name == 'dynamic' run: | cmake --build --preset default --target docs diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index ff5f64a..a44a907 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -138,7 +138,7 @@ jobs: ctest --preset default --output-on-failure -j8 - name: Build documentation - if: matrix.variant.name == 'static' + if: matrix.variant.name == 'dynamic' run: | cmake --build --preset default --target docs diff --git a/src/fb-cpp/CMakeLists.txt b/src/fb-cpp/CMakeLists.txt index 4e6ecad..65c4904 100644 --- a/src/fb-cpp/CMakeLists.txt +++ b/src/fb-cpp/CMakeLists.txt @@ -2,8 +2,25 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) project(fb-cpp CXX) -option(FB_CPP_USE_BOOST_DLL "Enable Boost.DLL support for loading fbclient at runtime" ON) -option(FB_CPP_USE_BOOST_MULTIPRECISION "Enable Boost.Multiprecision helpers for INT128 and DECFLOAT types" ON) +set(_fb_cpp_use_boost_dll_default ON) +if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET) + if(NOT EXISTS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/boost-dll") + set(_fb_cpp_use_boost_dll_default OFF) + endif() +endif() +option(FB_CPP_USE_BOOST_DLL "Enable Boost.DLL support for loading fbclient at runtime" + ${_fb_cpp_use_boost_dll_default}) +unset(_fb_cpp_use_boost_dll_default) + +set(_fb_cpp_use_boost_multiprecision_default ON) +if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET) + if(NOT EXISTS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/boost-multiprecision") + set(_fb_cpp_use_boost_multiprecision_default OFF) + endif() +endif() +option(FB_CPP_USE_BOOST_MULTIPRECISION "Enable Boost.Multiprecision helpers for INT128 and DECFLOAT types" + ${_fb_cpp_use_boost_multiprecision_default}) +unset(_fb_cpp_use_boost_multiprecision_default) file(GLOB_RECURSE SRC "*.h" diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index b726216..e760b4d 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -17,7 +17,6 @@ add_executable(${PROJECT_NAME} find_package(Boost REQUIRED COMPONENTS - filesystem unit_test_framework ) @@ -30,7 +29,6 @@ target_include_directories(${PROJECT_NAME} target_link_libraries(${PROJECT_NAME} PRIVATE fb-cpp PRIVATE firebird - PRIVATE Boost::filesystem PRIVATE Boost::unit_test_framework ) diff --git a/vcpkg.json b/vcpkg.json index 57e994e..761a59b 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -9,7 +9,10 @@ "license": "MIT", "supports": "(windows & !uwp) | linux | osx", "dependencies": [ - "boost-dll", + { + "name": "boost-dll", + "platform": "!static" + }, "boost-multiprecision", "boost-test", "firebird", From 24dc89017fc513dac461f4e39ac58024bc1e5bc1 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Tue, 4 Aug 2026 07:23:24 -0300 Subject: [PATCH 13/19] Increase test discovery timeout --- src/test/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index e760b4d..c4d665e 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -35,6 +35,7 @@ target_link_libraries(${PROJECT_NAME} boost_test_discover_tests(${PROJECT_NAME} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} DISCOVERY_MODE PRE_TEST + DISCOVERY_TIMEOUT 30 PROPERTIES ENVIRONMENT "FB_CPP_BUILD_DIR=${CMAKE_BINARY_DIR};FB_CPP_BUILD_CONFIG=$" ) From a2467601bd2b9f23367d33b3bd2b4be4fb9ee165 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Tue, 4 Aug 2026 07:33:12 -0300 Subject: [PATCH 14/19] Revert "Increase test discovery timeout" This reverts commit 24dc89017fc513dac461f4e39ac58024bc1e5bc1. --- src/test/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index c4d665e..e760b4d 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -35,7 +35,6 @@ target_link_libraries(${PROJECT_NAME} boost_test_discover_tests(${PROJECT_NAME} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} DISCOVERY_MODE PRE_TEST - DISCOVERY_TIMEOUT 30 PROPERTIES ENVIRONMENT "FB_CPP_BUILD_DIR=${CMAKE_BINARY_DIR};FB_CPP_BUILD_CONFIG=$" ) From 3237497066bc66a413a7ea78ab2448c497217c81 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Tue, 4 Aug 2026 07:44:29 -0300 Subject: [PATCH 15/19] Keep client creation out of test discovery --- src/test/Attachment.cpp | 88 ++++---- src/test/AttachmentPool.cpp | 20 +- src/test/BackupManager.cpp | 26 +-- src/test/Batch.cpp | 20 +- src/test/Blob.cpp | 6 +- src/test/CalendarConverter.cpp | 22 +- src/test/Client.cpp | 4 +- src/test/DatabaseManager.cpp | 36 ++-- src/test/EventListener.cpp | 6 +- src/test/Exception.cpp | 2 +- src/test/NumericConverter.cpp | 20 +- src/test/RowSet.cpp | 12 +- src/test/ScrollableCursor.cpp | 2 +- src/test/Statement.cpp | 356 ++++++++++++++++----------------- src/test/TestUtil.cpp | 33 ++- src/test/TestUtil.h | 2 +- src/test/Transaction.cpp | 16 +- src/test/Transaction2PC.cpp | 44 ++-- 18 files changed, 370 insertions(+), 345 deletions(-) diff --git a/src/test/Attachment.cpp b/src/test/Attachment.cpp index ed3231d..9393258 100644 --- a/src/test/Attachment.cpp +++ b/src/test/Attachment.cpp @@ -36,31 +36,31 @@ BOOST_AUTO_TEST_SUITE(AttachmentSuite) BOOST_AUTO_TEST_CASE(constructor) { const auto database = getTempFile("Attachment-constructor.fdb"); - Attachment attachment1{CLIENT, database, + Attachment attachment1{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; attachment1.disconnect(); - Attachment attachment2{CLIENT, database}; + Attachment attachment2{getClient(), database}; attachment2.dropDatabase(); } BOOST_AUTO_TEST_CASE(disconnect) { const auto database = getTempFile("Attachment-disconnect.fdb"); - Attachment attachment1{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment1{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; attachment1.disconnect(); - Attachment attachment2{CLIENT, database, AttachmentOptions().setConnectionCharSet("UTF8")}; + Attachment attachment2{getClient(), database, AttachmentOptions().setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment2}; } BOOST_AUTO_TEST_CASE(dropDatabase) { const auto database = getTempFile("Attachment-dropDatabase.fdb"); - Attachment attachment1{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment1{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; attachment1.dropDatabase(); - BOOST_CHECK_THROW(Attachment(CLIENT, database), DatabaseException); + BOOST_CHECK_THROW(Attachment(getClient(), database), DatabaseException); } BOOST_AUTO_TEST_CASE(sqlDialectSetterGetter) @@ -82,7 +82,7 @@ BOOST_AUTO_TEST_CASE(forcedWritesDefault) BOOST_AUTO_TEST_CASE(createDatabaseWithForcedWritesOff) { const auto database = getTempFile("Attachment-createDatabaseWithForcedWritesOff.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -96,7 +96,7 @@ BOOST_AUTO_TEST_CASE(createDatabaseWithForcedWritesOff) BOOST_AUTO_TEST_CASE(executePreparesAndExecutesStatement) { const auto database = getTempFile("Attachment-executePreparesAndExecutesStatement.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -113,7 +113,7 @@ BOOST_AUTO_TEST_CASE(executePreparesAndExecutesStatement) BOOST_AUTO_TEST_CASE(queryReturnsRowsIncludingFirstRow) { const auto database = getTempFile("Attachment-queryReturnsRowsIncludingFirstRow.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -140,7 +140,7 @@ BOOST_AUTO_TEST_CASE(queryReturnsRowsIncludingFirstRow) BOOST_AUTO_TEST_CASE(queryHonorsMaxRows) { const auto database = getTempFile("Attachment-queryHonorsMaxRows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -166,7 +166,7 @@ BOOST_AUTO_TEST_CASE(queryHonorsMaxRows) BOOST_AUTO_TEST_CASE(queryReturnsEmptyRowSetForNoRows) { const auto database = getTempFile("Attachment-queryReturnsEmptyRowSetForNoRows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -184,7 +184,7 @@ BOOST_AUTO_TEST_CASE(queryReturnsEmptyRowSetForNoRows) BOOST_AUTO_TEST_CASE(querySupportsStatementOptions) { const auto database = getTempFile("Attachment-querySupportsStatementOptions.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -200,7 +200,7 @@ BOOST_AUTO_TEST_CASE(querySupportsStatementOptions) BOOST_AUTO_TEST_CASE(queryThrowsForNonQueryStatement) { const auto database = getTempFile("Attachment-queryThrowsForNonQueryStatement.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -212,7 +212,7 @@ BOOST_AUTO_TEST_CASE(queryThrowsForNonQueryStatement) BOOST_AUTO_TEST_CASE(queryRowSetSupportsProcedureWithOutputColumns) { const auto database = getTempFile("Attachment-queryRowSetSupportsProcedureWithOutputColumns.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -232,7 +232,7 @@ BOOST_AUTO_TEST_CASE(queryRowSetSupportsProcedureWithOutputColumns) BOOST_AUTO_TEST_CASE(queryRowSetRejectsProcedureWithoutOutputColumns) { const auto database = getTempFile("Attachment-queryRowSetRejectsProcedureWithoutOutputColumns.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -247,7 +247,7 @@ BOOST_AUTO_TEST_CASE(queryRowSetRejectsProcedureWithoutOutputColumns) BOOST_AUTO_TEST_CASE(queryScalarReturnsFirstColumnOfFirstRow) { const auto database = getTempFile("Attachment-queryScalarReturnsFirstColumnOfFirstRow.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -269,7 +269,7 @@ BOOST_AUTO_TEST_CASE(queryScalarReturnsFirstColumnOfFirstRow) BOOST_AUTO_TEST_CASE(queryScalarReturnsNulloptForNoRows) { const auto database = getTempFile("Attachment-queryScalarReturnsNulloptForNoRows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -283,7 +283,7 @@ BOOST_AUTO_TEST_CASE(queryScalarReturnsNulloptForNoRows) BOOST_AUTO_TEST_CASE(queryScalarReturnsNulloptForNullColumn) { const auto database = getTempFile("Attachment-queryScalarReturnsNulloptForNullColumn.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -298,7 +298,7 @@ BOOST_AUTO_TEST_CASE(queryScalarReturnsNulloptForNullColumn) BOOST_AUTO_TEST_CASE(queryScalarSupportsStatementOptions) { const auto database = getTempFile("Attachment-queryScalarSupportsStatementOptions.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -314,7 +314,7 @@ BOOST_AUTO_TEST_CASE(queryScalarSupportsStatementOptions) BOOST_AUTO_TEST_CASE(queryScalarSupportsProcedureWithOutputColumns) { const auto database = getTempFile("Attachment-queryScalarSupportsProcedureWithOutputColumns.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -333,7 +333,7 @@ BOOST_AUTO_TEST_CASE(queryScalarSupportsProcedureWithOutputColumns) BOOST_AUTO_TEST_CASE(queryScalarThrowsForNonQueryStatement) { const auto database = getTempFile("Attachment-queryScalarThrowsForNonQueryStatement.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -351,7 +351,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsReturnsStructFromFirstRow) }; const auto database = getTempFile("Attachment-queryFirstRowAsReturnsStructFromFirstRow.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -377,7 +377,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsReturnsTupleFromFirstRow) using Result = std::tuple>; const auto database = getTempFile("Attachment-queryFirstRowAsReturnsTupleFromFirstRow.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -399,7 +399,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsReturnsNulloptForNoRows) }; const auto database = getTempFile("Attachment-queryFirstRowAsReturnsNulloptForNoRows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -415,7 +415,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsSupportsStatementOptions) using Result = std::tuple; const auto database = getTempFile("Attachment-queryFirstRowAsSupportsStatementOptions.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -437,7 +437,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsSupportsProcedureWithOutputColumns) }; const auto database = getTempFile("Attachment-queryFirstRowAsSupportsProcedureWithOutputColumns.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -463,7 +463,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsThrowsForFieldCountMismatch) }; const auto database = getTempFile("Attachment-queryFirstRowAsThrowsForFieldCountMismatch.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -480,7 +480,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsThrowsForNullIntoNonOptionalField) }; const auto database = getTempFile("Attachment-queryFirstRowAsThrowsForNullIntoNonOptionalField.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -498,7 +498,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsThrowsForNonQueryStatement) }; const auto database = getTempFile("Attachment-queryFirstRowAsThrowsForNonQueryStatement.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -510,7 +510,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsThrowsForNonQueryStatement) BOOST_AUTO_TEST_CASE(executeBindsTupleParameters) { const auto database = getTempFile("Attachment-executeBindsTupleParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -539,7 +539,7 @@ BOOST_AUTO_TEST_CASE(executeBindsStructParameters) }; const auto database = getTempFile("Attachment-executeBindsStructParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -559,7 +559,7 @@ BOOST_AUTO_TEST_CASE(executeBindsStructParameters) BOOST_AUTO_TEST_CASE(queryRowSetBindsTupleParameters) { const auto database = getTempFile("Attachment-queryRowSetBindsTupleParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -587,7 +587,7 @@ BOOST_AUTO_TEST_CASE(queryRowSetBindsOptionsAndStructParameters) }; const auto database = getTempFile("Attachment-queryRowSetBindsOptionsAndStructParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -609,7 +609,7 @@ BOOST_AUTO_TEST_CASE(queryRowSetBindsOptionsAndStructParameters) BOOST_AUTO_TEST_CASE(queryScalarBindsTupleParameters) { const auto database = getTempFile("Attachment-queryScalarBindsTupleParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -647,7 +647,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsBindsStructParameters) }; const auto database = getTempFile("Attachment-queryFirstRowAsBindsStructParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -676,7 +676,7 @@ BOOST_AUTO_TEST_CASE(queryFirstRowAsBindsStructParameters) BOOST_AUTO_TEST_CASE(isNotValidAfterMove) { const auto database = getTempFile("Attachment-isNotValidAfterMove.fdb"); - Attachment attachment1{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment1{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; BOOST_CHECK_EQUAL(attachment1.isValid(), true); auto attachment2 = std::move(attachment1); @@ -690,8 +690,8 @@ BOOST_AUTO_TEST_CASE(moveAssignmentTransfersOwnership) const auto database1 = getTempFile("Attachment-moveAssign-1.fdb"); const auto database2 = getTempFile("Attachment-moveAssign-2.fdb"); - Attachment attachment1{CLIENT, database1, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; - Attachment attachment2{CLIENT, database2, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment1{getClient(), database1, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment2{getClient(), database2, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; BOOST_CHECK(attachment1.isValid()); BOOST_CHECK(attachment2.isValid()); @@ -706,26 +706,26 @@ BOOST_AUTO_TEST_CASE(moveAssignmentTransfersOwnership) BOOST_CHECK(!attachment1.isValid()); // Clean up the first database (its connection was disconnected by the move). - Attachment cleanup{CLIENT, database1}; + Attachment cleanup{getClient(), database1}; cleanup.dropDatabase(); } BOOST_AUTO_TEST_CASE(isNotValidAfterDisconnect) { const auto database = getTempFile("Attachment-isNotValidAfterDisconnect.fdb"); - Attachment attachment1{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment1{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; BOOST_CHECK_EQUAL(attachment1.isValid(), true); attachment1.disconnect(); BOOST_CHECK_EQUAL(attachment1.isValid(), false); - Attachment attachment2{CLIENT, database}; + Attachment attachment2{getClient(), database}; attachment2.dropDatabase(); } BOOST_AUTO_TEST_CASE(isNotValidAfterDropDatabase) { - Attachment attachment1{CLIENT, getTempFile("Attachment-isNotValidAfterDropDatabase.fdb"), + Attachment attachment1{getClient(), getTempFile("Attachment-isNotValidAfterDropDatabase.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; BOOST_CHECK_EQUAL(attachment1.isValid(), true); @@ -736,7 +736,7 @@ BOOST_AUTO_TEST_CASE(isNotValidAfterDropDatabase) BOOST_AUTO_TEST_CASE(ping) { const auto database = getTempFile("Attachment-ping.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; BOOST_CHECK_NO_THROW(attachment.ping()); @@ -745,7 +745,7 @@ BOOST_AUTO_TEST_CASE(ping) BOOST_AUTO_TEST_CASE(resetSession) { const auto database = getTempFile("Attachment-resetSession.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; diff --git a/src/test/AttachmentPool.cpp b/src/test/AttachmentPool.cpp index d8fdcf8..025ff96 100644 --- a/src/test/AttachmentPool.cpp +++ b/src/test/AttachmentPool.cpp @@ -38,7 +38,7 @@ BOOST_AUTO_TEST_SUITE(AttachmentPoolSuite) BOOST_AUTO_TEST_CASE(lifecycleAndCounts) { const auto database = getTempFile("AttachmentPool-lifecycleAndCounts.fdb"); - Attachment setup{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment setup{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase setupDrop{setup}; { // scope @@ -50,7 +50,7 @@ BOOST_AUTO_TEST_CASE(lifecycleAndCounts) AttachmentPoolOptions options; options.setAttachmentOptions(AttachmentOptions().setConnectionCharSet("UTF8")).setMinSize(2u).setMaxSize(4u); - AttachmentPool pool{CLIENT, database, options}; + AttachmentPool pool{getClient(), database, options}; BOOST_CHECK_EQUAL(pool.size(), 2u); BOOST_CHECK_EQUAL(pool.availableCount(), 2u); BOOST_CHECK_EQUAL(pool.inUseCount(), 0u); @@ -76,10 +76,10 @@ BOOST_AUTO_TEST_CASE(lifecycleAndCounts) BOOST_AUTO_TEST_CASE(acquireReusesUnderlyingConnection) { const auto database = getTempFile("AttachmentPool-acquireReusesUnderlyingConnection.fdb"); - Attachment setup{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment setup{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase setupDrop{setup}; - AttachmentPool pool{CLIENT, database, AttachmentPoolOptions().setMinSize(1u).setMaxSize(1u)}; + AttachmentPool pool{getClient(), database, AttachmentPoolOptions().setMinSize(1u).setMaxSize(1u)}; fb::IAttachment* firstHandle = nullptr; @@ -99,11 +99,11 @@ BOOST_AUTO_TEST_CASE(acquireReusesUnderlyingConnection) BOOST_AUTO_TEST_CASE(acquireThrowsWhenExhaustedAndUnblocksOnRelease) { const auto database = getTempFile("AttachmentPool-acquireThrowsWhenExhaustedAndUnblocksOnRelease.fdb"); - Attachment setup{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment setup{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase setupDrop{setup}; AttachmentPool pool{ - CLIENT, database, AttachmentPoolOptions().setMinSize(0u).setMaxSize(1u).setAcquireTimeout(200ms)}; + getClient(), database, AttachmentPoolOptions().setMinSize(0u).setMaxSize(1u).setAcquireTimeout(200ms)}; auto lease1 = pool.acquire(); BOOST_CHECK_EQUAL(pool.inUseCount(), 1u); @@ -121,10 +121,10 @@ BOOST_AUTO_TEST_CASE(acquireThrowsWhenExhaustedAndUnblocksOnRelease) BOOST_AUTO_TEST_CASE(leaseSemantics) { const auto database = getTempFile("AttachmentPool-leaseSemantics.fdb"); - Attachment setup{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment setup{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase setupDrop{setup}; - AttachmentPool pool{CLIENT, database, AttachmentPoolOptions().setMinSize(1u).setMaxSize(1u)}; + AttachmentPool pool{getClient(), database, AttachmentPoolOptions().setMinSize(1u).setMaxSize(1u)}; auto lease1 = pool.acquire(); BOOST_CHECK(lease1.isValid()); @@ -145,11 +145,11 @@ BOOST_AUTO_TEST_CASE(leaseSemantics) BOOST_AUTO_TEST_CASE(sessionResetOnRelease) { const auto database = getTempFile("AttachmentPool-sessionResetOnRelease.fdb"); - Attachment setup{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment setup{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase setupDrop{setup}; AttachmentPool pool{ - CLIENT, database, AttachmentPoolOptions().setMinSize(1u).setMaxSize(1u).setSessionResetOnRelease(true)}; + getClient(), database, AttachmentPoolOptions().setMinSize(1u).setMaxSize(1u).setSessionResetOnRelease(true)}; fb::IAttachment* firstHandle = nullptr; diff --git a/src/test/BackupManager.cpp b/src/test/BackupManager.cpp index b97e086..a453bd0 100644 --- a/src/test/BackupManager.cpp +++ b/src/test/BackupManager.cpp @@ -140,7 +140,7 @@ BOOST_AUTO_TEST_CASE(restoreOptionsRejectLengthAfterItemWithoutLength) BOOST_AUTO_TEST_CASE(serviceManagerDisconnectAndMove) { - ServiceManager manager1{CLIENT, makeServiceManagerOptions()}; + ServiceManager manager1{getClient(), makeServiceManagerOptions()}; BOOST_CHECK(manager1.isValid()); auto manager2 = std::move(manager1); @@ -163,7 +163,7 @@ BOOST_DATA_TEST_CASE(backupAndRestoreRoundTrip, data::make(BACKUP_RESTORE_VERBOS { // scope Attachment attachment{ - CLIENT, sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; + getClient(), sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; Transaction transaction{attachment}; @@ -177,7 +177,7 @@ BOOST_DATA_TEST_CASE(backupAndRestoreRoundTrip, data::make(BACKUP_RESTORE_VERBOS transaction.commit(); } - BackupManager manager{CLIENT, makeServiceManagerOptions()}; + BackupManager manager{getClient(), makeServiceManagerOptions()}; std::vector backupVerboseLines; auto backupOptions = BackupOptions().setDatabase(sourceDatabasePath).setBackupFile(backupFile); @@ -196,7 +196,7 @@ BOOST_DATA_TEST_CASE(backupAndRestoreRoundTrip, data::make(BACKUP_RESTORE_VERBOS manager.restore(restoreOptions); BOOST_CHECK_EQUAL(!restoreVerboseLines.empty(), testCase.restoreVerbose); - Attachment restored{CLIENT, restoredDatabaseUri, attachmentOptions}; + Attachment restored{getClient(), restoredDatabaseUri, attachmentOptions}; FbDropDatabase restoredDrop{restored}; Transaction transaction{restored}; Statement query{restored, transaction, "select id, name from test"}; @@ -205,7 +205,7 @@ BOOST_DATA_TEST_CASE(backupAndRestoreRoundTrip, data::make(BACKUP_RESTORE_VERBOS BOOST_CHECK_EQUAL(query.getString(1).value(), "backup"); transaction.commit(); - Attachment cleanup{CLIENT, sourceDatabaseUri, attachmentOptions}; + Attachment cleanup{getClient(), sourceDatabaseUri, attachmentOptions}; cleanup.dropDatabase(); } @@ -220,7 +220,7 @@ BOOST_AUTO_TEST_CASE(restoreReplace) { // scope Attachment attachment{ - CLIENT, sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; + getClient(), sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; Transaction transaction{attachment}; @@ -233,12 +233,12 @@ BOOST_AUTO_TEST_CASE(restoreReplace) transaction.commit(); } - BackupManager manager{CLIENT, makeServiceManagerOptions()}; + BackupManager manager{getClient(), makeServiceManagerOptions()}; manager.backup(BackupOptions().setDatabase(sourceDatabasePath).setBackupFile(backupFile)); manager.restore(RestoreOptions().setDatabase(restoredDatabasePath).setBackupFile(backupFile)); manager.restore(RestoreOptions().setDatabase(restoredDatabasePath).setBackupFile(backupFile).setReplace(true)); - Attachment restored{CLIENT, restoredDatabaseUri, attachmentOptions}; + Attachment restored{getClient(), restoredDatabaseUri, attachmentOptions}; FbDropDatabase restoredDrop{restored}; Transaction transaction{restored}; Statement query{restored, transaction, "select id from test"}; @@ -246,7 +246,7 @@ BOOST_AUTO_TEST_CASE(restoreReplace) BOOST_CHECK_EQUAL(query.getInt32(0).value(), 7); transaction.commit(); - Attachment cleanup{CLIENT, sourceDatabaseUri, attachmentOptions}; + Attachment cleanup{getClient(), sourceDatabaseUri, attachmentOptions}; cleanup.dropDatabase(); } @@ -264,7 +264,7 @@ BOOST_AUTO_TEST_CASE(multiFileDatabaseAndBackupRoundTrip) { // scope Attachment attachment{ - CLIENT, sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; + getClient(), sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; Transaction transaction{attachment}; @@ -295,7 +295,7 @@ BOOST_AUTO_TEST_CASE(multiFileDatabaseAndBackupRoundTrip) transaction.commit(); } - BackupManager manager{CLIENT, makeServiceManagerOptions()}; + BackupManager manager{getClient(), makeServiceManagerOptions()}; manager.backup( BackupOptions().setDatabase(sourceDatabasePath).addBackupFile(backupFile1, 2048).addBackupFile(backupFile2)); @@ -305,7 +305,7 @@ BOOST_AUTO_TEST_CASE(multiFileDatabaseAndBackupRoundTrip) .addBackupFile(backupFile1) .addBackupFile(backupFile2)); - Attachment restored{CLIENT, restoredDatabaseUri, attachmentOptions}; + Attachment restored{getClient(), restoredDatabaseUri, attachmentOptions}; FbDropDatabase restoredDrop{restored}; Transaction transaction{restored}; Statement query{restored, transaction, "select count(*), min(id), max(id) from test"}; @@ -321,7 +321,7 @@ BOOST_AUTO_TEST_CASE(multiFileDatabaseAndBackupRoundTrip) BOOST_CHECK_EQUAL(normalizedFilename(queryFiles.getString(1).value()), normalizedFilename(restoredSecondaryPath)); transaction.commit(); - Attachment cleanup{CLIENT, sourceDatabaseUri, attachmentOptions}; + Attachment cleanup{getClient(), sourceDatabaseUri, attachmentOptions}; cleanup.dropDatabase(); } diff --git a/src/test/Batch.cpp b/src/test/Batch.cpp index c231cba..3af0427 100644 --- a/src/test/Batch.cpp +++ b/src/test/Batch.cpp @@ -38,7 +38,7 @@ BOOST_AUTO_TEST_CASE(constructorFromStatementAndExecute) { const auto database = getTempFile("Batch-constructorFromStatementAndExecute.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -104,7 +104,7 @@ BOOST_AUTO_TEST_CASE(constructorFromAttachmentAndExecute) { const auto database = getTempFile("Batch-constructorFromAttachmentAndExecute.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -124,7 +124,7 @@ BOOST_AUTO_TEST_CASE(constructorFromAttachmentAndExecute) // Get metadata to build raw messages. auto metadata = batch.getInputMetadata(); - impl::StatusWrapper tempWrapper{CLIENT}; + impl::StatusWrapper tempWrapper{getClient()}; const auto msgLength = metadata->getMessageLength(&tempWrapper); const auto idOffset = metadata->getOffset(&tempWrapper, 0); const auto idNullOffset = metadata->getNullOffset(&tempWrapper, 0); @@ -177,7 +177,7 @@ BOOST_AUTO_TEST_CASE(moveConstructorTransfersOwnership) { const auto database = getTempFile("Batch-moveConstructorTransfersOwnership.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -213,7 +213,7 @@ BOOST_AUTO_TEST_CASE(executeReportsNoInfoWhenRecordCountsDisabled) { const auto database = getTempFile("Batch-noInfo.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -246,7 +246,7 @@ BOOST_AUTO_TEST_CASE(executeWithBadDataReportsExecuteFailed) { const auto database = getTempFile("Batch-badData.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -305,7 +305,7 @@ BOOST_AUTO_TEST_CASE(cancelDiscardsMessages) { const auto database = getTempFile("Batch-cancelDiscardsMessages.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -345,7 +345,7 @@ BOOST_AUTO_TEST_CASE(blobWithIdEngine) { const auto database = getTempFile("Batch-blobWithIdEngine.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -403,7 +403,7 @@ BOOST_AUTO_TEST_CASE(registerExistingBlob) { const auto database = getTempFile("Batch-registerExistingBlob.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -466,7 +466,7 @@ BOOST_AUTO_TEST_CASE(closeReleasesHandle) { const auto database = getTempFile("Batch-closeReleasesHandle.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; diff --git a/src/test/Blob.cpp b/src/test/Blob.cpp index c3740d8..4c57317 100644 --- a/src/test/Blob.cpp +++ b/src/test/Blob.cpp @@ -40,7 +40,7 @@ BOOST_AUTO_TEST_CASE(readWriteMultiSegment) { const auto database = getTempFile("Blob-readWriteMultiSegment.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE(createWriteRead) { const auto database = getTempFile("Blob-createWriteRead.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -215,7 +215,7 @@ BOOST_AUTO_TEST_CASE(cancelDiscardsHandle) { const auto database = getTempFile("Blob-cancelDiscardsHandle.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; diff --git a/src/test/CalendarConverter.cpp b/src/test/CalendarConverter.cpp index 28a7f70..cad8b9c 100644 --- a/src/test/CalendarConverter.cpp +++ b/src/test/CalendarConverter.cpp @@ -109,7 +109,7 @@ static const std::initializer_list DATE_CASES{ BOOST_DATA_TEST_CASE(dateConversion, data::make(DATE_CASES), dateCase) { - impl::CalendarConverter converter{CLIENT}; + impl::CalendarConverter converter{getClient()}; const auto& date = dateCase.date; const std::string outputText{dateCase.outputText}; @@ -135,7 +135,7 @@ static const std::initializer_list TIME_CASES{ BOOST_DATA_TEST_CASE(timeConversion, data::make(TIME_CASES), timeCase) { - impl::CalendarConverter converter{CLIENT}; + impl::CalendarConverter converter{getClient()}; const Time time{timeCase.time}; const std::string outputText{timeCase.outputText}; @@ -162,7 +162,7 @@ static const std::initializer_list TIMESTAMP_CASES{ BOOST_DATA_TEST_CASE(timestampConversion, data::make(TIMESTAMP_CASES), timestampCase) { - impl::CalendarConverter converter{CLIENT}; + impl::CalendarConverter converter{getClient()}; const auto timestamp = timestampCase.timestamp; const std::string outputText{timestampCase.outputText}; @@ -189,9 +189,9 @@ static const std::initializer_list TIME_TZ_CASES{ BOOST_DATA_TEST_CASE(timeTzConversion, data::make(TIME_TZ_CASES), timeTzCase) { - impl::StatusWrapper statusWrapper{CLIENT}; + impl::StatusWrapper statusWrapper{getClient()}; - impl::CalendarConverter converter{CLIENT}; + impl::CalendarConverter converter{getClient()}; const TimeTz& timeTz = timeTzCase.timeTz; const std::string outputText{timeTzCase.outputText}; @@ -217,9 +217,9 @@ static const std::initializer_list TIME_TZ_OFFSET_CASES{ BOOST_DATA_TEST_CASE(timeTzOffsetConversion, data::make(TIME_TZ_OFFSET_CASES), timeTzOffsetCase) { - impl::StatusWrapper statusWrapper{CLIENT}; + impl::StatusWrapper statusWrapper{getClient()}; - impl::CalendarConverter converter{CLIENT}; + impl::CalendarConverter converter{getClient()}; const std::string outputText{timeTzOffsetCase.outputText}; const std::string inputText{timeTzOffsetCase.inputText.value_or(outputText)}; @@ -241,9 +241,9 @@ static const std::initializer_list TIMESTAMP_TZ_CASES{ BOOST_DATA_TEST_CASE(timestampTzConversion, data::make(TIMESTAMP_TZ_CASES), timestampTzCase) { - impl::StatusWrapper statusWrapper{CLIENT}; + impl::StatusWrapper statusWrapper{getClient()}; - impl::CalendarConverter converter{CLIENT}; + impl::CalendarConverter converter{getClient()}; const TimestampTz& timestampTz = timestampTzCase.timestampTz; const std::string outputText{timestampTzCase.outputText}; @@ -269,9 +269,9 @@ static const std::initializer_list TIMESTAMP_TZ_OFFSET_CA BOOST_DATA_TEST_CASE(timestampTzOffsetConversion, data::make(TIMESTAMP_TZ_OFFSET_CASES), timestampTzOffsetCase) { - impl::StatusWrapper statusWrapper{CLIENT}; + impl::StatusWrapper statusWrapper{getClient()}; - impl::CalendarConverter converter{CLIENT}; + impl::CalendarConverter converter{getClient()}; const std::string outputText{timestampTzOffsetCase.outputText}; const std::string inputText{timestampTzOffsetCase.inputText.value_or(outputText)}; diff --git a/src/test/Client.cpp b/src/test/Client.cpp index 1385f0a..8ada430 100644 --- a/src/test/Client.cpp +++ b/src/test/Client.cpp @@ -29,13 +29,13 @@ BOOST_AUTO_TEST_SUITE(ClientSuite) BOOST_AUTO_TEST_CASE(getMaster) { - const auto master = CLIENT.getMaster(); + const auto master = getClient().getMaster(); BOOST_CHECK(master); } BOOST_AUTO_TEST_CASE(isNotValidAfterMove) { - Client client1{CLIENT.getMaster()}; + Client client1{getClient().getMaster()}; BOOST_CHECK_EQUAL(client1.isValid(), true); auto client2 = std::move(client1); diff --git a/src/test/DatabaseManager.cpp b/src/test/DatabaseManager.cpp index 13cb5d7..c752853 100644 --- a/src/test/DatabaseManager.cpp +++ b/src/test/DatabaseManager.cpp @@ -53,7 +53,7 @@ BOOST_AUTO_TEST_CASE(setReplicaModeNone) { // scope Attachment attachment{ - CLIENT, databaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; + getClient(), databaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; Transaction transaction{attachment}; Statement queryContext{ @@ -66,11 +66,11 @@ BOOST_AUTO_TEST_CASE(setReplicaModeNone) BOOST_CHECK_EQUAL(queryMon.getInt32(0).value(), 0); } - DatabaseManager manager{CLIENT, makeServiceManagerOptions()}; + DatabaseManager manager{getClient(), makeServiceManagerOptions()}; manager.setProperties(DatabasePropertiesOptions().setDatabase(databasePath).setReplicaMode(ReplicaMode::READ_ONLY)); { // scope - Attachment attachment{CLIENT, databaseUri, attachmentOptions}; + Attachment attachment{getClient(), databaseUri, attachmentOptions}; Transaction transaction{attachment}; Statement queryContext{ @@ -87,7 +87,7 @@ BOOST_AUTO_TEST_CASE(setReplicaModeNone) manager.setProperties(DatabasePropertiesOptions().setDatabase(databasePath).setReplicaMode(ReplicaMode::NONE)); { // scope - Attachment attachment{CLIENT, databaseUri, attachmentOptions}; + Attachment attachment{getClient(), databaseUri, attachmentOptions}; Transaction transaction{attachment}; Statement queryContext{ @@ -100,7 +100,7 @@ BOOST_AUTO_TEST_CASE(setReplicaModeNone) BOOST_CHECK_EQUAL(queryMon.getInt32(0).value(), 0); } - Attachment cleanup{CLIENT, databaseUri, attachmentOptions}; + Attachment cleanup{getClient(), databaseUri, attachmentOptions}; cleanup.dropDatabase(); } @@ -115,14 +115,14 @@ BOOST_AUTO_TEST_CASE(restoreWithReplicaMode) { // scope Attachment attachment{ - CLIENT, sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; + getClient(), sourceDatabaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; Transaction transaction{attachment}; Statement create{attachment, transaction, "create table test(id integer)"}; create.execute(transaction); transaction.commit(); } - BackupManager backupManager{CLIENT, makeServiceManagerOptions()}; + BackupManager backupManager{getClient(), makeServiceManagerOptions()}; backupManager.backup(BackupOptions().setDatabase(sourceDatabasePath).setBackupFile(backupFile)); backupManager.restore(RestoreOptions() .setDatabase(restoredDatabasePath) @@ -130,7 +130,7 @@ BOOST_AUTO_TEST_CASE(restoreWithReplicaMode) .setReplicaMode(ReplicaMode::READ_WRITE)); { // scope - Attachment restored{CLIENT, restoredDatabaseUri, attachmentOptions}; + Attachment restored{getClient(), restoredDatabaseUri, attachmentOptions}; FbDropDatabase restoredDrop{restored}; Transaction transaction{restored}; @@ -145,7 +145,7 @@ BOOST_AUTO_TEST_CASE(restoreWithReplicaMode) BOOST_CHECK_EQUAL(queryMon.getInt32(0).value(), 2); } - Attachment cleanup{CLIENT, sourceDatabaseUri, attachmentOptions}; + Attachment cleanup{getClient(), sourceDatabaseUri, attachmentOptions}; cleanup.dropDatabase(); } @@ -157,7 +157,7 @@ BOOST_AUTO_TEST_CASE(databaseSweepAndValidate) { // scope Attachment attachment{ - CLIENT, databaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; + getClient(), databaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; Transaction transaction{attachment}; Statement createTable{attachment, transaction, "create table test (id integer)"}; @@ -166,7 +166,7 @@ BOOST_AUTO_TEST_CASE(databaseSweepAndValidate) } { // scope - Attachment attachment{CLIENT, databaseUri, attachmentOptions}; + Attachment attachment{getClient(), databaseUri, attachmentOptions}; Transaction transaction{attachment}; Statement insertData{attachment, transaction, "insert into test (id) values (1)"}; @@ -174,7 +174,7 @@ BOOST_AUTO_TEST_CASE(databaseSweepAndValidate) transaction.commit(); } - DatabaseManager manager{CLIENT, makeServiceManagerOptions()}; + DatabaseManager manager{getClient(), makeServiceManagerOptions()}; // 1. Run database sweep BOOST_CHECK_NO_THROW(manager.repair(DatabaseRepairOptions().setDatabase(databasePath).setSweep(true))); @@ -190,7 +190,7 @@ BOOST_AUTO_TEST_CASE(databaseSweepAndValidate) // 4. Run database upgrade (minor ODS upgrade) BOOST_CHECK_NO_THROW(manager.repair(DatabaseRepairOptions().setDatabase(databasePath).setUpgradeDb(true))); - Attachment cleanup{CLIENT, databaseUri, attachmentOptions}; + Attachment cleanup{getClient(), databaseUri, attachmentOptions}; cleanup.dropDatabase(); } @@ -202,14 +202,14 @@ BOOST_AUTO_TEST_CASE(databaseShutdownAndOnline) { // scope Attachment attachment{ - CLIENT, databaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; + getClient(), databaseUri, AttachmentOptions().setCreateDatabase(true).setConnectionCharSet("UTF8")}; Transaction transaction{attachment}; Statement createTable{attachment, transaction, "create table test (id integer)"}; BOOST_REQUIRE(createTable.execute(transaction)); transaction.commit(); } - DatabaseManager manager{CLIENT, makeServiceManagerOptions()}; + DatabaseManager manager{getClient(), makeServiceManagerOptions()}; // Shutdown the database manager.setProperties(DatabasePropertiesOptions() @@ -219,21 +219,21 @@ BOOST_AUTO_TEST_CASE(databaseShutdownAndOnline) .setShutdownTimeout(0)); // Attachment should fail when the database is shutdown - BOOST_CHECK_THROW(Attachment(CLIENT, databaseUri, attachmentOptions), DatabaseException); + BOOST_CHECK_THROW(Attachment(getClient(), databaseUri, attachmentOptions), DatabaseException); // Bring the database online manager.setProperties(DatabasePropertiesOptions().setDatabase(databasePath).setOnline(true)); // Attachment should succeed when online { // scope - Attachment attachment{CLIENT, databaseUri, attachmentOptions}; + Attachment attachment{getClient(), databaseUri, attachmentOptions}; Transaction transaction{attachment}; Statement query{attachment, transaction, "select count(*) from test"}; BOOST_REQUIRE(query.execute(transaction)); BOOST_CHECK_EQUAL(query.getInt32(0).value(), 0); } - Attachment cleanup{CLIENT, databaseUri, attachmentOptions}; + Attachment cleanup{getClient(), databaseUri, attachmentOptions}; cleanup.dropDatabase(); } diff --git a/src/test/EventListener.cpp b/src/test/EventListener.cpp index 5d5275b..cba6f45 100644 --- a/src/test/EventListener.cpp +++ b/src/test/EventListener.cpp @@ -40,7 +40,7 @@ BOOST_AUTO_TEST_SUITE(EventListenerSuite) BOOST_AUTO_TEST_CASE(receivesSingleEvent) { const auto database = getTempFile("EventListener-receivesSingleEvent.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -79,7 +79,7 @@ BOOST_AUTO_TEST_CASE(receivesSingleEvent) BOOST_AUTO_TEST_CASE(aggregatesMultipleEvents) { const auto database = getTempFile("EventListener-aggregatesMultipleEvents.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -145,7 +145,7 @@ BOOST_AUTO_TEST_CASE(aggregatesMultipleEvents) BOOST_AUTO_TEST_CASE(stopsReceivingEventsAfterStop) { const auto database = getTempFile("EventListener-stopsReceivingEventsAfterStop.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; diff --git a/src/test/Exception.cpp b/src/test/Exception.cpp index ffdd90c..5ac1556 100644 --- a/src/test/Exception.cpp +++ b/src/test/Exception.cpp @@ -35,7 +35,7 @@ BOOST_AUTO_TEST_CASE(syntaxErrorExceptionProperties) { const auto database = getTempFile("Exception-syntaxErrorExceptionProperties.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; diff --git a/src/test/NumericConverter.cpp b/src/test/NumericConverter.cpp index bfd6e98..1a4e13b 100644 --- a/src/test/NumericConverter.cpp +++ b/src/test/NumericConverter.cpp @@ -42,7 +42,7 @@ BOOST_AUTO_TEST_SUITE(NumericConverterSuite) BOOST_AUTO_TEST_CASE(convertScaledInt16) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_EQUAL(converter.numberToNumber(ScaledInt16{12'3, -1}, -2), 12'30); BOOST_CHECK_EQUAL(converter.numberToNumber(ScaledInt16{-12'3, -1}, -2), -12'30); @@ -142,7 +142,7 @@ BOOST_AUTO_TEST_CASE(convertScaledInt16) BOOST_AUTO_TEST_CASE(convertScaledInt32) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_THROW(converter.numberToNumber(ScaledInt32{12'3, -1}, -4), FbCppException); BOOST_CHECK_THROW(converter.numberToNumber(ScaledInt32{214'748'364'7, -1}, -1), FbCppException); @@ -239,7 +239,7 @@ BOOST_AUTO_TEST_CASE(convertScaledInt32) BOOST_AUTO_TEST_CASE(convertScaledInt64) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_THROW( converter.numberToNumber(ScaledInt64{922'337'203'685'477'580'7LL, -1}, -1), FbCppException); @@ -346,7 +346,7 @@ BOOST_AUTO_TEST_CASE(convertScaledInt64) #if FB_CPP_USE_BOOST_MULTIPRECISION != 0 BOOST_AUTO_TEST_CASE(convertScaledBoostInt128) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_THROW(converter.numberToNumber( ScaledBoostInt128{BoostInt128{"170141183460469231731687303715884105727"}, -1}, -1), @@ -471,7 +471,7 @@ BOOST_AUTO_TEST_CASE(convertScaledBoostInt128) BOOST_AUTO_TEST_CASE(convertFloat) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_EQUAL(converter.numberToNumber(12.3f, -2), 12'30); BOOST_CHECK_EQUAL(converter.numberToNumber(-12.3f, -2), -12'30); @@ -552,7 +552,7 @@ BOOST_AUTO_TEST_CASE(convertFloat) BOOST_AUTO_TEST_CASE(convertDouble) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_EQUAL(converter.numberToNumber(12.3, -2), 12'30); BOOST_CHECK_EQUAL(converter.numberToNumber(-12.3, -2), -12'30); @@ -635,7 +635,7 @@ BOOST_AUTO_TEST_CASE(convertDouble) BOOST_AUTO_TEST_CASE(convertDecFloat16) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_EQUAL(converter.numberToNumber(BoostDecFloat16{"12.3"}, -2), 12'30); BOOST_CHECK_EQUAL(converter.numberToNumber(BoostDecFloat16{"-12.3"}, -2), -12'30); @@ -718,7 +718,7 @@ BOOST_AUTO_TEST_CASE(convertDecFloat16) BOOST_AUTO_TEST_CASE(convertDecFloat34) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; BOOST_CHECK_EQUAL(converter.numberToNumber(BoostDecFloat34{"12.3"}, -2), 12'30); BOOST_CHECK_EQUAL(converter.numberToNumber(BoostDecFloat34{"-12.3"}, -2), -12'30); @@ -801,7 +801,7 @@ BOOST_AUTO_TEST_CASE(convertDecFloat34) BOOST_AUTO_TEST_CASE(decFloat16NumberLimits) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; const auto maxValue = std::numeric_limits::max(); const auto minValue = std::numeric_limits::min(); @@ -826,7 +826,7 @@ BOOST_AUTO_TEST_CASE(decFloat16NumberLimits) BOOST_AUTO_TEST_CASE(decFloat34NumberLimits) { - impl::NumericConverter converter{CLIENT}; + impl::NumericConverter converter{getClient()}; const auto maxValue = std::numeric_limits::max(); const auto minValue = std::numeric_limits::min(); diff --git a/src/test/RowSet.cpp b/src/test/RowSet.cpp index e8ccd65..2e7b12d 100644 --- a/src/test/RowSet.cpp +++ b/src/test/RowSet.cpp @@ -34,7 +34,7 @@ BOOST_AUTO_TEST_CASE(fetchRowsIntoRowSet) { const auto database = getTempFile("RowSet-fetchRowsIntoRowSet.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -73,7 +73,7 @@ BOOST_AUTO_TEST_CASE(fetchFewerRowsThanMaxRows) { const auto database = getTempFile("RowSet-fetchFewerRowsThanMaxRows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -104,7 +104,7 @@ BOOST_AUTO_TEST_CASE(rowSetIsDisconnectedFromStatement) { const auto database = getTempFile("RowSet-isDisconnectedFromStatement.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -141,7 +141,7 @@ BOOST_AUTO_TEST_CASE(moveConstructor) { const auto database = getTempFile("RowSet-moveConstructor.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -176,7 +176,7 @@ BOOST_AUTO_TEST_CASE(moveAssignment) { const auto database = getTempFile("RowSet-moveAssignment.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -217,7 +217,7 @@ BOOST_AUTO_TEST_CASE(fetchMultipleBatchesFromSameStatement) { const auto database = getTempFile("RowSet-fetchMultipleBatches.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; diff --git a/src/test/ScrollableCursor.cpp b/src/test/ScrollableCursor.cpp index 7831880..e38a4ec 100644 --- a/src/test/ScrollableCursor.cpp +++ b/src/test/ScrollableCursor.cpp @@ -39,7 +39,7 @@ BOOST_AUTO_TEST_CASE(scrollableCursorSupportsFetchMethods) { const auto database = getTempFile("ScrollableCursor-fetchMethods.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; diff --git a/src/test/Statement.cpp b/src/test/Statement.cpp index fba0292..962326a 100644 --- a/src/test/Statement.cpp +++ b/src/test/Statement.cpp @@ -38,7 +38,7 @@ BOOST_AUTO_TEST_CASE(constructorPreparesStatement) { const auto database = getTempFile("Statement-constructorPreparesStatement.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -51,7 +51,7 @@ BOOST_AUTO_TEST_CASE(moveConstructorTransfersOwnership) { const auto database = getTempFile("Statement-moveConstructorTransfersOwnership.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -67,7 +67,7 @@ BOOST_AUTO_TEST_CASE(isNotValidAfterMove) { const auto database = getTempFile("Statement-isNotValidAfterMove.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -82,7 +82,7 @@ BOOST_AUTO_TEST_CASE(moveAssignmentTransfersOwnership) { const auto database = getTempFile("Statement-moveAssignmentTransfersOwnership.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -106,7 +106,7 @@ BOOST_AUTO_TEST_CASE(moveAssignmentToMovedFromStatement) { const auto database = getTempFile("Statement-moveAssignmentToMovedFrom.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -130,7 +130,7 @@ BOOST_AUTO_TEST_CASE(freeReleasesHandle) { const auto database = getTempFile("Statement-freeReleasesHandle.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -148,7 +148,7 @@ BOOST_AUTO_TEST_CASE(unsupportedStatementsThrow) { const auto database = getTempFile("Statement-unsupportedStatementsThrow.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -177,7 +177,7 @@ BOOST_AUTO_TEST_CASE(constructorWithExplicitDialect) // Connect using dialect 1. Attachment attachment{ - CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setSqlDialect(1u)}; + getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setSqlDialect(1u)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -208,7 +208,7 @@ BOOST_AUTO_TEST_CASE(getTypeReturnsCorrectStatementType) { const auto database = getTempFile("Statement-getTypeReturnsCorrectStatementType.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -236,7 +236,7 @@ BOOST_AUTO_TEST_CASE(getInputOutputDescriptors) { const auto database = getTempFile("Statement-getInputOutputDescriptors.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -252,7 +252,7 @@ BOOST_AUTO_TEST_CASE(constructorProvidesMetadataHandles) { const auto database = getTempFile("Statement-constructorProvidesMetadataHandles.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -280,7 +280,7 @@ BOOST_AUTO_TEST_CASE(descriptorMetadataFields) { const auto database = getTempFile("Statement-descriptorMetadataFields.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -341,7 +341,7 @@ BOOST_AUTO_TEST_CASE(getOutputMessageContainsFetchedValueAtMetadataOffset) { const auto database = getTempFile("Statement-getOutputMessageContainsFetchedValueAtMetadataOffset.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -369,7 +369,7 @@ BOOST_AUTO_TEST_CASE(getLegacyPlan) { const auto database = getTempFile("Statement-getLegacyPlan.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -385,7 +385,7 @@ BOOST_AUTO_TEST_CASE(getPlan) { const auto database = getTempFile("Statement-getPlan.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -418,7 +418,7 @@ BOOST_AUTO_TEST_CASE(setNullParameter) { const auto database = getTempFile("Statement-setNullParameter.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -435,7 +435,7 @@ BOOST_AUTO_TEST_CASE(clearParametersToNull) { const auto database = getTempFile("Statement-clearParametersToNull.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -454,7 +454,7 @@ BOOST_AUTO_TEST_CASE(isNullDetectsNullColumn) { const auto database = getTempFile("Statement-isNullDetectsNullColumn.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -468,7 +468,7 @@ BOOST_AUTO_TEST_CASE(nullRoundTrip) { const auto database = getTempFile("Statement-nullRoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -497,7 +497,7 @@ BOOST_AUTO_TEST_CASE(setBoolToBoolean) { const auto database = getTempFile("Statement-setBoolToBoolean.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -512,7 +512,7 @@ BOOST_AUTO_TEST_CASE(getBoolFromBoolean) { const auto database = getTempFile("Statement-getBoolFromBoolean.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -529,7 +529,7 @@ BOOST_AUTO_TEST_CASE(setStringToBoolColumn) { const auto database = getTempFile("Statement-setStringToBoolColumn.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -544,7 +544,7 @@ BOOST_AUTO_TEST_CASE(getStringFromBoolColumn) { const auto database = getTempFile("Statement-getStringFromBoolColumn.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -564,7 +564,7 @@ BOOST_AUTO_TEST_CASE(setInt16ToSmallint) { const auto database = getTempFile("Statement-setInt16ToSmallint.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -579,7 +579,7 @@ BOOST_AUTO_TEST_CASE(setInt32ToInteger) { const auto database = getTempFile("Statement-setInt32ToInteger.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -594,7 +594,7 @@ BOOST_AUTO_TEST_CASE(setInt64ToBigint) { const auto database = getTempFile("Statement-setInt64ToBigint.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -609,7 +609,7 @@ BOOST_AUTO_TEST_CASE(setInt16ToInteger) { const auto database = getTempFile("Statement-setInt16ToInteger.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -624,7 +624,7 @@ BOOST_AUTO_TEST_CASE(setInt32ToBigint) { const auto database = getTempFile("Statement-setInt32ToBigint.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -639,7 +639,7 @@ BOOST_AUTO_TEST_CASE(getInt32FromSmallint) { const auto database = getTempFile("Statement-getInt32FromSmallint.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -654,7 +654,7 @@ BOOST_AUTO_TEST_CASE(getInt64FromInteger) { const auto database = getTempFile("Statement-getInt64FromInteger.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -669,7 +669,7 @@ BOOST_AUTO_TEST_CASE(setStringToIntColumn) { const auto database = getTempFile("Statement-setStringToIntColumn.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -684,7 +684,7 @@ BOOST_AUTO_TEST_CASE(getStringFromIntColumn) { const auto database = getTempFile("Statement-getStringFromIntColumn.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -704,7 +704,7 @@ BOOST_AUTO_TEST_CASE(setScaledInt64ToNumeric) { const auto database = getTempFile("Statement-setScaledInt64ToNumeric.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -722,7 +722,7 @@ BOOST_AUTO_TEST_CASE(getScaledInt64FromNumeric) { const auto database = getTempFile("Statement-getScaledInt64FromNumeric.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -739,7 +739,7 @@ BOOST_AUTO_TEST_CASE(setInt32ToNumeric) { const auto database = getTempFile("Statement-setInt32ToNumeric.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -757,7 +757,7 @@ BOOST_AUTO_TEST_CASE(setStringToNumeric) { const auto database = getTempFile("Statement-setStringToNumeric.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -775,7 +775,7 @@ BOOST_AUTO_TEST_CASE(getStringFromNumeric) { const auto database = getTempFile("Statement-getStringFromNumeric.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -794,7 +794,7 @@ BOOST_AUTO_TEST_CASE(setFloatToFloat) { const auto database = getTempFile("Statement-setFloatToFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -809,7 +809,7 @@ BOOST_AUTO_TEST_CASE(setDoubleToDoublePrecision) { const auto database = getTempFile("Statement-setDoubleToDoublePrecision.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -824,7 +824,7 @@ BOOST_AUTO_TEST_CASE(setFloatToDouble) { const auto database = getTempFile("Statement-setFloatToDouble.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -839,7 +839,7 @@ BOOST_AUTO_TEST_CASE(setInt32ToFloat) { const auto database = getTempFile("Statement-setInt32ToFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -854,7 +854,7 @@ BOOST_AUTO_TEST_CASE(setStringToFloat) { const auto database = getTempFile("Statement-setStringToFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -869,7 +869,7 @@ BOOST_AUTO_TEST_CASE(getStringFromFloat) { const auto database = getTempFile("Statement-getStringFromFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -885,7 +885,7 @@ BOOST_AUTO_TEST_CASE(getDoubleFromFloat) { const auto database = getTempFile("Statement-getDoubleFromFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -905,7 +905,7 @@ BOOST_AUTO_TEST_CASE(setFloatInfToFloat) { const auto database = getTempFile("Statement-setFloatInfToFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -923,7 +923,7 @@ BOOST_AUTO_TEST_CASE(setFloatNegInfToFloat) { const auto database = getTempFile("Statement-setFloatNegInfToFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -941,7 +941,7 @@ BOOST_AUTO_TEST_CASE(setFloatNaNToFloat) { const auto database = getTempFile("Statement-setFloatNaNToFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -958,7 +958,7 @@ BOOST_AUTO_TEST_CASE(setDoubleInfToDouble) { const auto database = getTempFile("Statement-setDoubleInfToDouble.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -976,7 +976,7 @@ BOOST_AUTO_TEST_CASE(setDoubleNegInfToDouble) { const auto database = getTempFile("Statement-setDoubleNegInfToDouble.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -994,7 +994,7 @@ BOOST_AUTO_TEST_CASE(setDoubleNaNToDouble) { const auto database = getTempFile("Statement-setDoubleNaNToDouble.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1011,7 +1011,7 @@ BOOST_AUTO_TEST_CASE(getStringFromFloatInf) { const auto database = getTempFile("Statement-getStringFromFloatInf.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1026,7 +1026,7 @@ BOOST_AUTO_TEST_CASE(getStringFromFloatNegInf) { const auto database = getTempFile("Statement-getStringFromFloatNegInf.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1041,7 +1041,7 @@ BOOST_AUTO_TEST_CASE(getStringFromFloatNaN) { const auto database = getTempFile("Statement-getStringFromFloatNaN.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1056,7 +1056,7 @@ BOOST_AUTO_TEST_CASE(getStringFromDoubleInf) { const auto database = getTempFile("Statement-getStringFromDoubleInf.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1071,7 +1071,7 @@ BOOST_AUTO_TEST_CASE(getStringFromDoubleNegInf) { const auto database = getTempFile("Statement-getStringFromDoubleNegInf.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1086,7 +1086,7 @@ BOOST_AUTO_TEST_CASE(getStringFromDoubleNaN) { const auto database = getTempFile("Statement-getStringFromDoubleNaN.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1101,7 +1101,7 @@ BOOST_AUTO_TEST_CASE(setInfToIntegerThrows) { const auto database = getTempFile("Statement-setInfToIntegerThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1114,7 +1114,7 @@ BOOST_AUTO_TEST_CASE(setNaNToIntegerThrows) { const auto database = getTempFile("Statement-setNaNToIntegerThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1127,7 +1127,7 @@ BOOST_AUTO_TEST_CASE(setInfToNumericThrows) { const auto database = getTempFile("Statement-setInfToNumericThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1140,7 +1140,7 @@ BOOST_AUTO_TEST_CASE(setNaNToNumericThrows) { const auto database = getTempFile("Statement-setNaNToNumericThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1158,7 +1158,7 @@ BOOST_AUTO_TEST_CASE(setStringToVarchar) { const auto database = getTempFile("Statement-setStringToVarchar.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -1174,7 +1174,7 @@ BOOST_AUTO_TEST_CASE(getStringFromVarchar) { const auto database = getTempFile("Statement-getStringFromVarchar.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -1189,7 +1189,7 @@ BOOST_AUTO_TEST_CASE(stringTruncationThrows) { const auto database = getTempFile("Statement-stringTruncationThrows.fdb"); - Attachment attachment{CLIENT, database, + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false).setConnectionCharSet("UTF8")}; FbDropDatabase attachmentDrop{attachment}; @@ -1208,7 +1208,7 @@ BOOST_AUTO_TEST_CASE(setDateToDate) { const auto database = getTempFile("Statement-setDateToDate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1228,7 +1228,7 @@ BOOST_AUTO_TEST_CASE(getDateFromDate) { const auto database = getTempFile("Statement-getDateFromDate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1246,7 +1246,7 @@ BOOST_AUTO_TEST_CASE(setTimeToTime) { const auto database = getTempFile("Statement-setTimeToTime.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1266,7 +1266,7 @@ BOOST_AUTO_TEST_CASE(setTimestampToTimestamp) { const auto database = getTempFile("Statement-setTimestampToTimestamp.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1289,7 +1289,7 @@ BOOST_AUTO_TEST_CASE(setTimeTzToTimeTz) { const auto database = getTempFile("Statement-setTimeTzToTimeTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1311,7 +1311,7 @@ BOOST_AUTO_TEST_CASE(setTimestampTzToTimestampTz) { const auto database = getTempFile("Statement-setTimestampTzToTimestampTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1335,7 +1335,7 @@ BOOST_AUTO_TEST_CASE(setStringToDate) { const auto database = getTempFile("Statement-setStringToDate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1354,7 +1354,7 @@ BOOST_AUTO_TEST_CASE(getStringFromDate) { const auto database = getTempFile("Statement-getStringFromDate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1368,7 +1368,7 @@ BOOST_AUTO_TEST_CASE(setStringToTime) { const auto database = getTempFile("Statement-setStringToTime.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1387,7 +1387,7 @@ BOOST_AUTO_TEST_CASE(getStringFromTime) { const auto database = getTempFile("Statement-getStringFromTime.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1401,7 +1401,7 @@ BOOST_AUTO_TEST_CASE(setStringToTimestamp) { const auto database = getTempFile("Statement-setStringToTimestamp.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1420,7 +1420,7 @@ BOOST_AUTO_TEST_CASE(getStringFromTimestamp) { const auto database = getTempFile("Statement-getStringFromTimestamp.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1434,7 +1434,7 @@ BOOST_AUTO_TEST_CASE(setStringToTimeTz) { const auto database = getTempFile("Statement-setStringToTimeTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1451,7 +1451,7 @@ BOOST_AUTO_TEST_CASE(getStringFromTimeTz) { const auto database = getTempFile("Statement-getStringFromTimeTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1466,7 +1466,7 @@ BOOST_AUTO_TEST_CASE(setStringToTimestampTz) { const auto database = getTempFile("Statement-setStringToTimestampTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1486,7 +1486,7 @@ BOOST_AUTO_TEST_CASE(getStringFromTimestampTz) { const auto database = getTempFile("Statement-getStringFromTimestampTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1506,7 +1506,7 @@ BOOST_AUTO_TEST_CASE(setBlobIdToBlob) { const auto database = getTempFile("Statement-setBlobIdToBlob.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1531,7 +1531,7 @@ BOOST_AUTO_TEST_CASE(getBlobIdFromBlob) { const auto database = getTempFile("Statement-getBlobIdFromBlob.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1565,7 +1565,7 @@ BOOST_AUTO_TEST_CASE(fetchNextIteratesRows) { const auto database = getTempFile("Statement-fetchNextIteratesRows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1600,7 +1600,7 @@ BOOST_AUTO_TEST_CASE(fetchReturnsFalseAtEnd) { const auto database = getTempFile("Statement-fetchReturnsFalseAtEnd.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1614,7 +1614,7 @@ BOOST_AUTO_TEST_CASE(cursorMethodsReturnFalseWithoutResultSet) { const auto database = getTempFile("Statement-cursorMethodsReturnFalseWithoutResultSet.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1639,7 +1639,7 @@ BOOST_AUTO_TEST_CASE(cursorName) { const auto database = getTempFile("Statement-cursorName.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1691,7 +1691,7 @@ BOOST_AUTO_TEST_CASE(setBoostInt128ToInt128) { const auto database = getTempFile("Statement-setBoostInt128ToInt128.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1710,7 +1710,7 @@ BOOST_AUTO_TEST_CASE(getBoostInt128FromInt128) { const auto database = getTempFile("Statement-getBoostInt128FromInt128.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1726,7 +1726,7 @@ BOOST_AUTO_TEST_CASE(setScaledBoostInt128ToNumeric38) { const auto database = getTempFile("Statement-setScaledBoostInt128ToNumeric38.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1747,7 +1747,7 @@ BOOST_AUTO_TEST_CASE(getScaledBoostInt128FromNumeric38) { const auto database = getTempFile("Statement-getScaledBoostInt128FromNumeric38.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1764,7 +1764,7 @@ BOOST_AUTO_TEST_CASE(setInt64ToInt128) { const auto database = getTempFile("Statement-setInt64ToInt128.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1781,7 +1781,7 @@ BOOST_AUTO_TEST_CASE(getStringFromInt128) { const auto database = getTempFile("Statement-getStringFromInt128.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1802,7 +1802,7 @@ BOOST_AUTO_TEST_CASE(setBoostDecFloat16ToDecFloat16) { const auto database = getTempFile("Statement-setBoostDecFloat16ToDecFloat16.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1821,7 +1821,7 @@ BOOST_AUTO_TEST_CASE(getBoostDecFloat16FromDecFloat16) { const auto database = getTempFile("Statement-getBoostDecFloat16FromDecFloat16.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1836,7 +1836,7 @@ BOOST_AUTO_TEST_CASE(setBoostDecFloat34ToDecFloat34) { const auto database = getTempFile("Statement-setBoostDecFloat34ToDecFloat34.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1855,7 +1855,7 @@ BOOST_AUTO_TEST_CASE(getBoostDecFloat34FromDecFloat34) { const auto database = getTempFile("Statement-getBoostDecFloat34FromDecFloat34.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1871,7 +1871,7 @@ BOOST_AUTO_TEST_CASE(setDoubleToDecFloat) { const auto database = getTempFile("Statement-setDoubleToDecFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1888,7 +1888,7 @@ BOOST_AUTO_TEST_CASE(getStringFromDecFloat) { const auto database = getTempFile("Statement-getStringFromDecFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1904,7 +1904,7 @@ BOOST_AUTO_TEST_CASE(setStringToDecFloat16) { const auto database = getTempFile("Statement-setStringToDecFloat16.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1921,7 +1921,7 @@ BOOST_AUTO_TEST_CASE(setStringToDecFloat34) { const auto database = getTempFile("Statement-setStringToDecFloat34.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1937,7 +1937,7 @@ BOOST_AUTO_TEST_CASE(setFloatToDecFloat) { const auto database = getTempFile("Statement-setFloatToDecFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1954,7 +1954,7 @@ BOOST_AUTO_TEST_CASE(setInt32ToDecFloat) { const auto database = getTempFile("Statement-setInt32ToDecFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1971,7 +1971,7 @@ BOOST_AUTO_TEST_CASE(setInt64ToDecFloat) { const auto database = getTempFile("Statement-setInt64ToDecFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -1988,7 +1988,7 @@ BOOST_AUTO_TEST_CASE(getDoubleFromDecFloat) { const auto database = getTempFile("Statement-getDoubleFromDecFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2004,7 +2004,7 @@ BOOST_AUTO_TEST_CASE(getFloatFromDecFloat) { const auto database = getTempFile("Statement-getFloatFromDecFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2020,7 +2020,7 @@ BOOST_AUTO_TEST_CASE(setBoostDecFloat16ToDecFloat34) { const auto database = getTempFile("Statement-setBoostDecFloat16ToDecFloat34.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2039,7 +2039,7 @@ BOOST_AUTO_TEST_CASE(setBoostDecFloat34ToDecFloat16) { const auto database = getTempFile("Statement-setBoostDecFloat34ToDecFloat16.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2065,7 +2065,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueDateToDate) { const auto database = getTempFile("Statement-setOpaqueDateToDate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2090,7 +2090,7 @@ BOOST_AUTO_TEST_CASE(getOpaqueDateFromDate) { const auto database = getTempFile("Statement-getOpaqueDateFromDate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2111,7 +2111,7 @@ BOOST_AUTO_TEST_CASE(opaqueDateRoundTrip) { const auto database = getTempFile("Statement-opaqueDateRoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2133,7 +2133,7 @@ BOOST_AUTO_TEST_CASE(opaqueDateNullHandling) { const auto database = getTempFile("Statement-opaqueDateNullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2154,7 +2154,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueTimeToTime) { const auto database = getTempFile("Statement-setOpaqueTimeToTime.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2178,7 +2178,7 @@ BOOST_AUTO_TEST_CASE(getOpaqueTimeFromTime) { const auto database = getTempFile("Statement-getOpaqueTimeFromTime.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2199,7 +2199,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimeRoundTrip) { const auto database = getTempFile("Statement-opaqueTimeRoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2221,7 +2221,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimeNullHandling) { const auto database = getTempFile("Statement-opaqueTimeNullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2242,7 +2242,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueTimestampToTimestamp) { const auto database = getTempFile("Statement-setOpaqueTimestampToTimestamp.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2267,7 +2267,7 @@ BOOST_AUTO_TEST_CASE(getOpaqueTimestampFromTimestamp) { const auto database = getTempFile("Statement-getOpaqueTimestampFromTimestamp.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2288,7 +2288,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimestampRoundTrip) { const auto database = getTempFile("Statement-opaqueTimestampRoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2310,7 +2310,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimestampNullHandling) { const auto database = getTempFile("Statement-opaqueTimestampNullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2331,7 +2331,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueTimeTzToTimeTz) { const auto database = getTempFile("Statement-setOpaqueTimeTzToTimeTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2355,7 +2355,7 @@ BOOST_AUTO_TEST_CASE(getOpaqueTimeTzFromTimeTz) { const auto database = getTempFile("Statement-getOpaqueTimeTzFromTimeTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2377,7 +2377,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimeTzRoundTrip) { const auto database = getTempFile("Statement-opaqueTimeTzRoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2399,7 +2399,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimeTzNullHandling) { const auto database = getTempFile("Statement-opaqueTimeTzNullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2420,7 +2420,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueTimestampTzToTimestampTz) { const auto database = getTempFile("Statement-setOpaqueTimestampTzToTimestampTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2445,7 +2445,7 @@ BOOST_AUTO_TEST_CASE(getOpaqueTimestampTzFromTimestampTz) { const auto database = getTempFile("Statement-getOpaqueTimestampTzFromTimestampTz.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2466,7 +2466,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimestampTzRoundTrip) { const auto database = getTempFile("Statement-opaqueTimestampTzRoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2488,7 +2488,7 @@ BOOST_AUTO_TEST_CASE(opaqueTimestampTzNullHandling) { const auto database = getTempFile("Statement-opaqueTimestampTzNullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2509,7 +2509,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueInt128ToInt128) { const auto database = getTempFile("Statement-setOpaqueInt128ToInt128.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2531,7 +2531,7 @@ BOOST_AUTO_TEST_CASE(getScaledOpaqueInt128FromInt128) { const auto database = getTempFile("Statement-getScaledOpaqueInt128FromInt128.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2547,7 +2547,7 @@ BOOST_AUTO_TEST_CASE(opaqueInt128RoundTrip) { const auto database = getTempFile("Statement-opaqueInt128RoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2568,7 +2568,7 @@ BOOST_AUTO_TEST_CASE(opaqueInt128NullHandling) { const auto database = getTempFile("Statement-opaqueInt128NullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2589,7 +2589,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueDecFloat16ToDecFloat16) { const auto database = getTempFile("Statement-setOpaqueDecFloat16ToDecFloat16.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2611,7 +2611,7 @@ BOOST_AUTO_TEST_CASE(getOpaqueDecFloat16FromDecFloat16) { const auto database = getTempFile("Statement-getOpaqueDecFloat16FromDecFloat16.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2626,7 +2626,7 @@ BOOST_AUTO_TEST_CASE(opaqueDecFloat16RoundTrip) { const auto database = getTempFile("Statement-opaqueDecFloat16RoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2647,7 +2647,7 @@ BOOST_AUTO_TEST_CASE(opaqueDecFloat16NullHandling) { const auto database = getTempFile("Statement-opaqueDecFloat16NullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2668,7 +2668,7 @@ BOOST_AUTO_TEST_CASE(setOpaqueDecFloat34ToDecFloat34) { const auto database = getTempFile("Statement-setOpaqueDecFloat34ToDecFloat34.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2691,7 +2691,7 @@ BOOST_AUTO_TEST_CASE(getOpaqueDecFloat34FromDecFloat34) { const auto database = getTempFile("Statement-getOpaqueDecFloat34FromDecFloat34.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2707,7 +2707,7 @@ BOOST_AUTO_TEST_CASE(opaqueDecFloat34RoundTrip) { const auto database = getTempFile("Statement-opaqueDecFloat34RoundTrip.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2729,7 +2729,7 @@ BOOST_AUTO_TEST_CASE(opaqueDecFloat34NullHandling) { const auto database = getTempFile("Statement-opaqueDecFloat34NullHandling.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2756,7 +2756,7 @@ BOOST_AUTO_TEST_CASE(getStructRetrievesAllColumns) }; const auto database = getTempFile("Statement-getStructRetrievesAllColumns.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2781,7 +2781,7 @@ BOOST_AUTO_TEST_CASE(setStructSetsAllParameters) }; const auto database = getTempFile("Statement-setStructSetsAllParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2804,7 +2804,7 @@ BOOST_AUTO_TEST_CASE(getStructFieldCountMismatchThrows) }; const auto database = getTempFile("Statement-getStructFieldCountMismatchThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2824,7 +2824,7 @@ BOOST_AUTO_TEST_CASE(setStructFieldCountMismatchThrows) }; const auto database = getTempFile("Statement-setStructFieldCountMismatchThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2842,7 +2842,7 @@ BOOST_AUTO_TEST_CASE(nullForNonOptionalFieldThrows) }; const auto database = getTempFile("Statement-nullForNonOptionalFieldThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2861,7 +2861,7 @@ BOOST_AUTO_TEST_CASE(mixedOptionalAndNonOptionalFields) }; const auto database = getTempFile("Statement-mixedOptionalAndNonOptionalFields.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2882,7 +2882,7 @@ BOOST_AUTO_TEST_CASE(structWithDateTimeFields) }; const auto database = getTempFile("Statement-structWithDateTimeFields.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2909,7 +2909,7 @@ BOOST_AUTO_TEST_CASE(setStructWithOptionalNull) }; const auto database = getTempFile("Statement-setStructWithOptionalNull.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2933,7 +2933,7 @@ BOOST_AUTO_TEST_CASE(getTupleRetrievesAllColumns) using ResultTuple = std::tuple, std::optional, std::optional>; const auto database = getTempFile("Statement-getTupleRetrievesAllColumns.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2954,7 +2954,7 @@ BOOST_AUTO_TEST_CASE(setTupleSetsAllParameters) using ParamTuple = std::tuple; const auto database = getTempFile("Statement-setTupleSetsAllParameters.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2972,7 +2972,7 @@ BOOST_AUTO_TEST_CASE(getTupleElementCountMismatchThrows) using WrongTuple = std::tuple, std::optional>; const auto database = getTempFile("Statement-getTupleElementCountMismatchThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -2987,7 +2987,7 @@ BOOST_AUTO_TEST_CASE(setTupleElementCountMismatchThrows) using WrongTuple = std::tuple; const auto database = getTempFile("Statement-setTupleElementCountMismatchThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3001,7 +3001,7 @@ BOOST_AUTO_TEST_CASE(nullForNonOptionalTupleElementThrows) using NonOptionalTuple = std::tuple; const auto database = getTempFile("Statement-nullForNonOptionalTupleElementThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3016,7 +3016,7 @@ BOOST_AUTO_TEST_CASE(pairAsResultType) using ResultPair = std::pair, std::optional>; const auto database = getTempFile("Statement-pairAsResultType.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3035,7 +3035,7 @@ BOOST_AUTO_TEST_CASE(setTupleWithOptionalNull) using ParamTuple = std::tuple>; const auto database = getTempFile("Statement-setTupleWithOptionalNull.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3058,7 +3058,7 @@ BOOST_AUTO_TEST_CASE(getVariantNullReturnsMonostate) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantNullReturnsMonostate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3074,7 +3074,7 @@ BOOST_AUTO_TEST_CASE(getVariantNullWithoutMonostateThrows) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantNullWithoutMonostateThrows.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3089,7 +3089,7 @@ BOOST_AUTO_TEST_CASE(getVariantExactMatchInt32) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantExactMatchInt32.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3106,7 +3106,7 @@ BOOST_AUTO_TEST_CASE(getVariantExactMatchFloat) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantExactMatchFloat.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3123,7 +3123,7 @@ BOOST_AUTO_TEST_CASE(getVariantExactMatchString) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantExactMatchString.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3140,7 +3140,7 @@ BOOST_AUTO_TEST_CASE(getVariantScaledIntPreferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantScaledIntPreferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3159,7 +3159,7 @@ BOOST_AUTO_TEST_CASE(getVariantScaledIntFallback) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantScaledIntFallback.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3180,7 +3180,7 @@ BOOST_AUTO_TEST_CASE(getVariantScaledToLargerScaled) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantScaledToLargerScaled.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3199,7 +3199,7 @@ BOOST_AUTO_TEST_CASE(getVariantScaledToDouble) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantScaledToDouble.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3216,7 +3216,7 @@ BOOST_AUTO_TEST_CASE(getVariantFallbackToDouble) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantFallbackToDouble.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3233,7 +3233,7 @@ BOOST_AUTO_TEST_CASE(getVariantFallbackOrder) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantFallbackOrder.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3251,7 +3251,7 @@ BOOST_AUTO_TEST_CASE(setVariantValue) using MyVariant = std::variant; const auto database = getTempFile("Statement-setVariantValue.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3273,7 +3273,7 @@ BOOST_AUTO_TEST_CASE(setVariantMonostate) using MyVariant = std::variant; const auto database = getTempFile("Statement-setVariantMonostate.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3293,7 +3293,7 @@ BOOST_AUTO_TEST_CASE(getTupleWithVariant) using ResultTuple = std::tuple; const auto database = getTempFile("Statement-getTupleWithVariant.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3317,7 +3317,7 @@ BOOST_AUTO_TEST_CASE(getStructWithVariant) }; const auto database = getTempFile("Statement-getStructWithVariant.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3336,7 +3336,7 @@ BOOST_AUTO_TEST_CASE(setTupleWithVariant) using ParamTuple = std::tuple; const auto database = getTempFile("Statement-setTupleWithVariant.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3362,7 +3362,7 @@ BOOST_AUTO_TEST_CASE(setStructWithVariant) }; const auto database = getTempFile("Statement-setStructWithVariant.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3385,7 +3385,7 @@ BOOST_AUTO_TEST_CASE(getVariantScaledOpaqueInt128Preferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantScaledOpaqueInt128Preferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3405,7 +3405,7 @@ BOOST_AUTO_TEST_CASE(getVariantOpaqueDecFloat16Preferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantOpaqueDecFloat16Preferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3423,7 +3423,7 @@ BOOST_AUTO_TEST_CASE(getVariantOpaqueDecFloat34Preferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantOpaqueDecFloat34Preferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3443,7 +3443,7 @@ BOOST_AUTO_TEST_CASE(getVariantOpaqueDatePreferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantOpaqueDatePreferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3461,7 +3461,7 @@ BOOST_AUTO_TEST_CASE(getVariantOpaqueTimePreferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantOpaqueTimePreferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3479,7 +3479,7 @@ BOOST_AUTO_TEST_CASE(getVariantOpaqueTimestampPreferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantOpaqueTimestampPreferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3497,7 +3497,7 @@ BOOST_AUTO_TEST_CASE(getVariantOpaqueTimeTzPreferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantOpaqueTimeTzPreferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; @@ -3515,7 +3515,7 @@ BOOST_AUTO_TEST_CASE(getVariantOpaqueTimestampTzPreferred) using MyVariant = std::variant; const auto database = getTempFile("Statement-getVariantOpaqueTimestampTzPreferred.fdb"); - Attachment attachment{CLIENT, database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; + Attachment attachment{getClient(), database, AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; Transaction transaction{attachment}; diff --git a/src/test/TestUtil.cpp b/src/test/TestUtil.cpp index e4adad4..691cb8e 100644 --- a/src/test/TestUtil.cpp +++ b/src/test/TestUtil.cpp @@ -37,11 +37,11 @@ namespace fs = std::filesystem; namespace fbcpp::test { - // Client CLIENT{"fbclient"}; - Client CLIENT{fb::fb_get_master_interface()}; - namespace { + struct GlobalFixture; + GlobalFixture* currentGlobalFixture = nullptr; + fs::path tempDir; bool removeTempDir = false; std::string testServerPrefix; @@ -59,8 +59,13 @@ namespace fbcpp::test struct GlobalFixture { + // Keep the static Firebird client out of Boost.Test's discovery process. + std::optional client; + GlobalFixture() { + currentGlobalFixture = this; + const char* testDirEnv = std::getenv("FBCPP_TEST_DIR"); const char* testServerEnv = std::getenv("FBCPP_TEST_SERVER"); if (testServerEnv && *testServerEnv) @@ -89,17 +94,37 @@ namespace fbcpp::test ~GlobalFixture() { - CLIENT.shutdown(); + if (client) + { + client->shutdown(); + client.reset(); + } if (removeTempDir) { std::error_code ec; fs::remove(tempDir, ec); } + + currentGlobalFixture = nullptr; + } + + Client& getClient() + { + if (!client) + client.emplace(fb::fb_get_master_interface()); + + return *client; } }; } // namespace + Client& getClient() + { + assert(currentGlobalFixture); + return currentGlobalFixture->getClient(); + } + std::string getTempFile(const std::string_view name, bool includeServerPrefix) { const auto path = (tempDir / name).string(); diff --git a/src/test/TestUtil.h b/src/test/TestUtil.h index ffd4ff8..3bea4cd 100644 --- a/src/test/TestUtil.h +++ b/src/test/TestUtil.h @@ -37,7 +37,7 @@ using namespace fbcpp; namespace fbcpp::test { - extern Client CLIENT; + Client& getClient(); std::optional getServer(); std::string getTempFile(const std::string_view name, bool includeServerPrefix = true); diff --git a/src/test/Transaction.cpp b/src/test/Transaction.cpp index 8a5f775..3054ee4 100644 --- a/src/test/Transaction.cpp +++ b/src/test/Transaction.cpp @@ -32,7 +32,7 @@ BOOST_AUTO_TEST_SUITE(TransactionSuite) BOOST_AUTO_TEST_CASE(constructorWithOptions) { - Attachment attachment{CLIENT, getTempFile("Transaction-constructorWithOptions.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-constructorWithOptions.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -53,7 +53,7 @@ BOOST_AUTO_TEST_CASE(constructorWithOptions) BOOST_AUTO_TEST_CASE(constructorWithSetTransactionCmd) { - Attachment attachment{CLIENT, getTempFile("Transaction-constructorWithSetTransactionCmd.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-constructorWithSetTransactionCmd.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -66,7 +66,7 @@ BOOST_AUTO_TEST_CASE(constructorWithSetTransactionCmd) BOOST_AUTO_TEST_CASE(destructor) { - Attachment attachment{CLIENT, getTempFile("Transaction-destructor.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-destructor.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -75,7 +75,7 @@ BOOST_AUTO_TEST_CASE(destructor) BOOST_AUTO_TEST_CASE(commit) { - Attachment attachment{CLIENT, getTempFile("Transaction-commit.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-commit.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -87,7 +87,7 @@ BOOST_AUTO_TEST_CASE(commit) BOOST_AUTO_TEST_CASE(commitRetaining) { - Attachment attachment{CLIENT, getTempFile("Transaction-commitRetaining.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-commitRetaining.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -101,7 +101,7 @@ BOOST_AUTO_TEST_CASE(commitRetaining) BOOST_AUTO_TEST_CASE(rollback) { - Attachment attachment{CLIENT, getTempFile("Transaction-rollback.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-rollback.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -113,7 +113,7 @@ BOOST_AUTO_TEST_CASE(rollback) BOOST_AUTO_TEST_CASE(rollbackRetaining) { - Attachment attachment{CLIENT, getTempFile("Transaction-rollbackRetaining.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-rollbackRetaining.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -127,7 +127,7 @@ BOOST_AUTO_TEST_CASE(rollbackRetaining) BOOST_AUTO_TEST_CASE(isNotValidAfterMove) { - Attachment attachment{CLIENT, getTempFile("Transaction-isNotValidAfterMove.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction-isNotValidAfterMove.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; diff --git a/src/test/Transaction2PC.cpp b/src/test/Transaction2PC.cpp index 476c634..ff17064 100644 --- a/src/test/Transaction2PC.cpp +++ b/src/test/Transaction2PC.cpp @@ -64,7 +64,7 @@ BOOST_AUTO_TEST_CASE(singleDatabasePrepareBasic) { // Test prepare() on a regular single-database transaction // This bypasses the multi-database constructor - Attachment attachment{CLIENT, getTempFile("Transaction2PC-singlePrepareBasic.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction2PC-singlePrepareBasic.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -81,7 +81,7 @@ BOOST_AUTO_TEST_CASE(singleDatabasePrepareBasic) BOOST_AUTO_TEST_CASE(singleDatabasePrepareWithMessage) { // Test prepare() with message on a regular single-database transaction - Attachment attachment{CLIENT, getTempFile("Transaction2PC-singlePrepareMsg.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction2PC-singlePrepareMsg.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -96,11 +96,11 @@ BOOST_AUTO_TEST_CASE(singleDatabasePrepareWithMessage) BOOST_AUTO_TEST_CASE(multiDatabase2Attachments) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-multiDatabase2Attachments-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-multiDatabase2Attachments-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-multiDatabase2Attachments-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-multiDatabase2Attachments-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; @@ -117,15 +117,15 @@ BOOST_AUTO_TEST_CASE(multiDatabase2Attachments) BOOST_AUTO_TEST_CASE(multiDatabase3Attachments) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-multiDatabase3Attachments-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-multiDatabase3Attachments-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-multiDatabase3Attachments-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-multiDatabase3Attachments-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; - Attachment attachment3{CLIENT, getTempFile("Transaction2PC-multiDatabase3Attachments-db3.fdb"), + Attachment attachment3{getClient(), getTempFile("Transaction2PC-multiDatabase3Attachments-db3.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment3Drop{attachment3}; @@ -142,11 +142,11 @@ BOOST_AUTO_TEST_CASE(multiDatabase3Attachments) BOOST_AUTO_TEST_CASE(prepareCommit) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-prepareCommit-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-prepareCommit-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-prepareCommit-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-prepareCommit-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; @@ -166,11 +166,11 @@ BOOST_AUTO_TEST_CASE(prepareCommit) BOOST_AUTO_TEST_CASE(prepareRollback) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-prepareRollback-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-prepareRollback-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-prepareRollback-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-prepareRollback-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; @@ -190,11 +190,11 @@ BOOST_AUTO_TEST_CASE(prepareRollback) BOOST_AUTO_TEST_CASE(prepareWithMessage) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-prepareWithMessage-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-prepareWithMessage-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-prepareWithMessage-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-prepareWithMessage-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; @@ -210,11 +210,11 @@ BOOST_AUTO_TEST_CASE(prepareWithMessage) BOOST_AUTO_TEST_CASE(prepareWithBinaryMessage) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-prepareWithBinaryMessage-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-prepareWithBinaryMessage-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-prepareWithBinaryMessage-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-prepareWithBinaryMessage-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; @@ -231,11 +231,11 @@ BOOST_AUTO_TEST_CASE(prepareWithBinaryMessage) BOOST_AUTO_TEST_CASE(commitWithoutPrepare) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-commitWithoutPrepare-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-commitWithoutPrepare-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-commitWithoutPrepare-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-commitWithoutPrepare-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; @@ -252,11 +252,11 @@ BOOST_AUTO_TEST_CASE(commitWithoutPrepare) BOOST_AUTO_TEST_CASE(statementAcrossMultipleDatabases) { - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-statementAcrossMultipleDatabases-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-statementAcrossMultipleDatabases-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-statementAcrossMultipleDatabases-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-statementAcrossMultipleDatabases-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; @@ -315,7 +315,7 @@ BOOST_AUTO_TEST_CASE(statementAcrossMultipleDatabases) BOOST_AUTO_TEST_CASE(singleDatabasePrepare) { // Prepare() should also work on single-database transactions - Attachment attachment{CLIENT, getTempFile("Transaction2PC-singleDatabasePrepare.fdb"), + Attachment attachment{getClient(), getTempFile("Transaction2PC-singleDatabasePrepare.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachmentDrop{attachment}; @@ -332,11 +332,11 @@ BOOST_AUTO_TEST_CASE(singleDatabasePrepare) BOOST_AUTO_TEST_CASE(prepareRollbackData) { // Verify that rollback after prepare actually rolls back the data - Attachment attachment1{CLIENT, getTempFile("Transaction2PC-prepareRollbackData-db1.fdb"), + Attachment attachment1{getClient(), getTempFile("Transaction2PC-prepareRollbackData-db1.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment1Drop{attachment1}; - Attachment attachment2{CLIENT, getTempFile("Transaction2PC-prepareRollbackData-db2.fdb"), + Attachment attachment2{getClient(), getTempFile("Transaction2PC-prepareRollbackData-db2.fdb"), AttachmentOptions().setCreateDatabase(true).setForcedWrites(false)}; FbDropDatabase attachment2Drop{attachment2}; From a200f1d00aeb3db39089043cfe9ee161c6b35250 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Tue, 4 Aug 2026 08:04:13 -0300 Subject: [PATCH 16/19] Fix documentation job --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dc92674..d88b4b0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -152,7 +152,7 @@ jobs: cmake --build --preset default --target docs - name: Upload documentation artifact - if: matrix.variant.name == 'static' + if: matrix.variant.name == 'dynamic' uses: actions/upload-pages-artifact@v4 with: path: build/Debug/doc/docs/html From e40230b2748800e85437c2026db079dd5eb92c0f Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Tue, 4 Aug 2026 08:33:11 -0300 Subject: [PATCH 17/19] Update firebird dependency --- vcpkg-configuration.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index d7dbd3b..3da6caa 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -9,7 +9,7 @@ "kind": "git", "repository": "https://github.com/asfernandes/firebird-vcpkg-registry.git", "reference": "work/fbclient-static", - "baseline": "076785920407e295610f0e48740ece477f3c8a26", + "baseline": "875fbbd3307714c0b47feed751b9bfbf0f641225", "packages": [ "firebird" ] } ], From a37a634af7bdf372ec2084314f4adf59176022e9 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Tue, 4 Aug 2026 18:20:15 -0300 Subject: [PATCH 18/19] Remove nuget vcpkg binary cache and concurrency control --- .github/workflows/main.yml | 86 ------------------------------ .github/workflows/pull-request.yml | 70 ------------------------ 2 files changed, 156 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d88b4b0..5579d10 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,10 +10,6 @@ permissions: id-token: write packages: write -# FIXME: -#concurrency: -# group: ${{ github.ref }} - jobs: clang-format-check: runs-on: ubuntu-latest @@ -34,15 +30,9 @@ jobs: ./check-format.sh build-linux: - # FIXME: - #concurrency: - # group: build-linux - # cancel-in-progress: false runs-on: ubuntu-latest strategy: fail-fast: false - # FIXME: - #max-parallel: 1 matrix: variant: - name: static @@ -51,12 +41,6 @@ jobs: - name: dynamic buildSharedLibs: 'ON' triplet: x64-linux-dynamic - env: - USERNAME: asfernandes - VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - # FIXME: - #FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - #VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -110,21 +94,6 @@ jobs: run: | ./vcpkg/bootstrap-vcpkg.sh -disableMetrics - # FIXME: - #- name: Configure vcpkg binary caching - # if: github.repository == 'asfernandes/fb-cpp' - # run: | - # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - # sources add \ - # -Source "${{ env.FEED_URL }}" \ - # -StorePasswordInClearText \ - # -Name GitHubPackages \ - # -UserName "${{ env.USERNAME }}" \ - # -Password "${{ secrets.GITHUB_TOKEN }}" - # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - # setapikey "${{ secrets.GITHUB_TOKEN }}" \ - # -Source "${{ env.FEED_URL }}" - - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json @@ -158,15 +127,9 @@ jobs: path: build/Debug/doc/docs/html build-windows: - # FIXME: - #concurrency: - # group: build-windows - # cancel-in-progress: false runs-on: windows-latest strategy: fail-fast: false - # FIXME: - #max-parallel: 1 matrix: variant: - name: static @@ -175,12 +138,6 @@ jobs: - name: dynamic buildSharedLibs: 'ON' triplet: x64-windows - env: - USERNAME: asfernandes - VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - # FIXME: - #FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - #VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -225,22 +182,6 @@ jobs: run: | vcpkg\bootstrap-vcpkg.bat -disableMetrics - # FIXME: - #- name: Configure vcpkg binary caching - # if: github.repository == 'asfernandes/fb-cpp' - # shell: pwsh - # run: | - # .$(${{ env.VCPKG_EXE }} fetch nuget) ` - # sources add ` - # -Source "${{ env.FEED_URL }}" ` - # -StorePasswordInClearText ` - # -Name GitHubPackages ` - # -UserName "${{ env.USERNAME }}" ` - # -Password "${{ secrets.GITHUB_TOKEN }}" - # .$(${{ env.VCPKG_EXE }} fetch nuget) ` - # setapikey "${{ secrets.GITHUB_TOKEN }}" ` - # -Source "${{ env.FEED_URL }}" - - name: Configure CMake shell: cmd run: | @@ -266,15 +207,9 @@ jobs: ctest --preset default --output-on-failure -j8 build-macos: - # FIXME: - #concurrency: - # group: build-macos - # cancel-in-progress: false runs-on: macos-latest strategy: fail-fast: false - # FIXME: - #max-parallel: 1 matrix: variant: - name: static @@ -283,12 +218,6 @@ jobs: - name: dynamic buildSharedLibs: 'ON' triplet: arm64-osx-dynamic - env: - USERNAME: asfernandes - VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - # FIXME: - #FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - #VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -335,21 +264,6 @@ jobs: run: | ./vcpkg/bootstrap-vcpkg.sh -disableMetrics - # FIXME: - #- name: Configure vcpkg binary caching - # if: github.repository == 'asfernandes/fb-cpp' - # run: | - # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - # sources add \ - # -Source "${{ env.FEED_URL }}" \ - # -StorePasswordInClearText \ - # -Name GitHubPackages \ - # -UserName "${{ env.USERNAME }}" \ - # -Password "${{ secrets.GITHUB_TOKEN }}" - # mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - # setapikey "${{ secrets.GITHUB_TOKEN }}" \ - # -Source "${{ env.FEED_URL }}" - - name: Add LLVM tools to PATH if: runner.os == 'MacOS' run: echo "$(brew --prefix llvm)/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index a44a907..5b10055 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -29,13 +29,9 @@ jobs: ./check-format.sh build-linux: - concurrency: - group: build-linux - cancel-in-progress: false runs-on: ubuntu-latest strategy: fail-fast: false - max-parallel: 1 matrix: variant: - name: static @@ -44,11 +40,6 @@ jobs: - name: dynamic buildSharedLibs: 'ON' triplet: x64-linux-dynamic - env: - USERNAME: asfernandes - VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -102,20 +93,6 @@ jobs: run: | ./vcpkg/bootstrap-vcpkg.sh -disableMetrics - - name: Configure vcpkg binary caching - if: github.repository == 'asfernandes/fb-cpp' - run: | - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - sources add \ - -Source "${{ env.FEED_URL }}" \ - -StorePasswordInClearText \ - -Name GitHubPackages \ - -UserName "${{ env.USERNAME }}" \ - -Password "${{ secrets.GITHUB_TOKEN }}" - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - setapikey "${{ secrets.GITHUB_TOKEN }}" \ - -Source "${{ env.FEED_URL }}" - - name: Configure CMake run: | cp CMakeUserPresets.json.posix.template CMakeUserPresets.json @@ -143,13 +120,9 @@ jobs: cmake --build --preset default --target docs build-windows: - concurrency: - group: build-windows - cancel-in-progress: false runs-on: windows-latest strategy: fail-fast: false - max-parallel: 1 matrix: variant: - name: static @@ -158,11 +131,6 @@ jobs: - name: dynamic buildSharedLibs: 'ON' triplet: x64-windows - env: - USERNAME: asfernandes - VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -207,21 +175,6 @@ jobs: run: | vcpkg\bootstrap-vcpkg.bat -disableMetrics - - name: Configure vcpkg binary caching - if: github.repository == 'asfernandes/fb-cpp' - shell: pwsh - run: | - .$(${{ env.VCPKG_EXE }} fetch nuget) ` - sources add ` - -Source "${{ env.FEED_URL }}" ` - -StorePasswordInClearText ` - -Name GitHubPackages ` - -UserName "${{ env.USERNAME }}" ` - -Password "${{ secrets.GITHUB_TOKEN }}" - .$(${{ env.VCPKG_EXE }} fetch nuget) ` - setapikey "${{ secrets.GITHUB_TOKEN }}" ` - -Source "${{ env.FEED_URL }}" - - name: Configure CMake shell: cmd run: | @@ -247,13 +200,9 @@ jobs: ctest --preset default --output-on-failure -j8 build-macos: - concurrency: - group: build-macos - cancel-in-progress: false runs-on: macos-latest strategy: fail-fast: false - max-parallel: 1 matrix: variant: - name: static @@ -262,11 +211,6 @@ jobs: - name: dynamic buildSharedLibs: 'ON' triplet: arm64-osx-dynamic - env: - USERNAME: asfernandes - VCPKG_EXE: ${{ github.workspace }}/vcpkg/vcpkg - FEED_URL: ${{ github.repository == 'asfernandes/fb-cpp' && 'https://nuget.pkg.github.com/asfernandes/index.json' || '' }} - VCPKG_BINARY_SOURCES: ${{ github.repository == 'asfernandes/fb-cpp' && 'clear;nuget,https://nuget.pkg.github.com/asfernandes/index.json,readwrite' || '' }} steps: - name: Checkout repository uses: actions/checkout@v6 @@ -313,20 +257,6 @@ jobs: run: | ./vcpkg/bootstrap-vcpkg.sh -disableMetrics - - name: Configure vcpkg binary caching - if: github.repository == 'asfernandes/fb-cpp' - run: | - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - sources add \ - -Source "${{ env.FEED_URL }}" \ - -StorePasswordInClearText \ - -Name GitHubPackages \ - -UserName "${{ env.USERNAME }}" \ - -Password "${{ secrets.GITHUB_TOKEN }}" - mono `${{ env.VCPKG_EXE }} fetch nuget | tail -n 1` \ - setapikey "${{ secrets.GITHUB_TOKEN }}" \ - -Source "${{ env.FEED_URL }}" - - name: Add LLVM tools to PATH if: runner.os == 'MacOS' run: echo "$(brew --prefix llvm)/bin" >> "$GITHUB_PATH" From aaad52165a34dba509a9ffce4cfd66904f37f650 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Tue, 4 Aug 2026 20:04:41 -0300 Subject: [PATCH 19/19] Update firebird-vcpkg-registry reference --- vcpkg-configuration.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 3da6caa..b6f6b7d 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -8,8 +8,7 @@ { "kind": "git", "repository": "https://github.com/asfernandes/firebird-vcpkg-registry.git", - "reference": "work/fbclient-static", - "baseline": "875fbbd3307714c0b47feed751b9bfbf0f641225", + "baseline": "f5edbf04333b9fb694c862ef03863871e88636e9", "packages": [ "firebird" ] } ],