From b657c5f861eb9ada2d0127d6fc86ff4b7bd589b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 08:22:13 +0200 Subject: [PATCH 1/8] Fix valgrind run on Travis CI by updating path to executables They are now produced in a bin/ subfolder --- .travis.yml | 272 ++++++++++++++++++++++++++-------------------------- 1 file changed, 136 insertions(+), 136 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8edea08..ea4200d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,136 +1,136 @@ -# Copyright (c) 2012-2023 Sebastien Rombauts (sebastien.rombauts@gmail.com) - -language: cpp - -# Use Linux unless specified otherwise -os: linux - -cache: - apt: true - -env: - global: - - BUILD_TYPE=Debug - - ASAN=ON - - INTERNAL_SQLITE=ON - - VALGRIND=OFF - -# Build variants (should test a reasonable number of combination of CMake options) -jobs: - include: - - ########################################################################## - # GCC on Linux - ########################################################################## - - # Coverity static code analysis - - dist: bionic - env: - - COVERITY_SCAN_PROJECT_NAME=SRombauts/SQLiteCpp - - COVERITY_SCAN_BRANCH_PATTERN=master - - COVERITY_SCAN_NOTIFICATION_EMAIL=sebastien.rombauts@gmail.com - - COVERITY_SCAN_BUILD_COMMAND_PREPEND="cmake ." - - COVERITY_SCAN_BUILD_COMMAND="make -j8" - # Encrypted COVERITY_SCAN_TOKEN, created via the "travis encrypt" command using the project repo's public key - - secure: "Qm4d8NEDPBtYZCYav46uPEvDCtaRsjLXlkVS+C+WCJAPcwXCGkrr96wEi7RWcq2xD86QCh0XiqaPT+xdUmlohOYIovRhaaBmZ1lwIJ4GsG/ZR6xoFr3DYsZ3o4GyXk2vNXNxEl82AC+Xs6e6gkLOV9XRkBcjpVIvoIXgNlKWeGY=" - - # GCC 7.4.0 Debug build with GCov for coverage build - - dist: bionic - env: - - cc=gcc cxx=g++ - - GCOV=ON - - COVERALLS=true - - # GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer - - dist: bionic - env: - - cc=gcc cxx=g++ - - ASAN=OFF - - VALGRIND=true - - # GCC 7.4.0 Release build - - dist: bionic - env: - - cc=gcc cxx=g++ - - BUILD_TYPE=Release - - # GCC 7.4.0 test linking with libsqlite3-dev package - - dist: bionic - env: - - cc=gcc cxx=g++ - - INTERNAL_SQLITE=OFF - - # GCC 5.4.0 - - dist: xenial - env: - - cc=gcc cxx=g++ - - # GCC 4.8.4 - - dist: trusty - env: - - cc=gcc cxx=g++ - - ########################################################################## - # Clang on Linux - ########################################################################## - - # Clang 7.0.0 - - dist: bionic - env: - - cc=clang cxx=clang++ - - # Clang 7.0.0 - - dist: xenial - env: - - cc=clang cxx=clang++ - - # Clang 5.0.0 - - dist: trusty - env: - - cc=clang cxx=clang++ - - ########################################################################## - # Clang on OSX - ########################################################################## - - # Latest XCode - AppleClang 9.1.0 - - os: osx - env: - - cc=clang cxx=clang++ - - # XCode 8.3 - AppleClang 8.1.0 - - os: osx - osx_image: xcode8.3 - env: - - cc=clang cxx=clang++ - -before_install: - # Coverity: don't use addons.coverity_scan since it run on every job of the build matrix, which waste resources and exhausts quotas - # Note: the job dedicated to Coverity need to only run the shell script and then exit (to not try to build and run unit tests etc.) - - if [[ -n "$COVERITY_SCAN_PROJECT_NAME" ]] ; then curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash ; exit 0 ; fi - - - if [[ "$INTERNAL_SQLITE" == "OFF" ]]; then sudo apt-get install libsqlite3-dev ; fi - - if [[ "$VALGRIND" == "true" ]]; then sudo apt-get install valgrind ; fi - - if [[ "$COVERALLS" == "true" ]]; then pip install --user cpp-coveralls ; fi - - # Set the compiler environment variables properly - - export CC=${cc} - - export CXX=${cxx} - -# scripts to run before build -before_script: - - mkdir build - - cd build - - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON .. - -# build examples, and run tests (ie make & make test) -script: - - cmake --build . - - export ASAN_OPTIONS=verbosity=1:debug=1 - - ctest --verbose --output-on-failure - - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 ./SQLiteCpp_example1 ; fi - - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 ./SQLiteCpp_tests ; fi - -# generate and publish GCov coveralls results -after_success: - - if [[ "$COVERALLS" == "true" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi +# Copyright (c) 2012-2023 Sebastien Rombauts (sebastien.rombauts@gmail.com) + +language: cpp + +# Use Linux unless specified otherwise +os: linux + +cache: + apt: true + +env: + global: + - BUILD_TYPE=Debug + - ASAN=ON + - INTERNAL_SQLITE=ON + - VALGRIND=OFF + +# Build variants (should test a reasonable number of combination of CMake options) +jobs: + include: + + ########################################################################## + # GCC on Linux + ########################################################################## + + # Coverity static code analysis + - dist: bionic + env: + - COVERITY_SCAN_PROJECT_NAME=SRombauts/SQLiteCpp + - COVERITY_SCAN_BRANCH_PATTERN=master + - COVERITY_SCAN_NOTIFICATION_EMAIL=sebastien.rombauts@gmail.com + - COVERITY_SCAN_BUILD_COMMAND_PREPEND="cmake ." + - COVERITY_SCAN_BUILD_COMMAND="make -j8" + # Encrypted COVERITY_SCAN_TOKEN, created via the "travis encrypt" command using the project repo's public key + - secure: "Qm4d8NEDPBtYZCYav46uPEvDCtaRsjLXlkVS+C+WCJAPcwXCGkrr96wEi7RWcq2xD86QCh0XiqaPT+xdUmlohOYIovRhaaBmZ1lwIJ4GsG/ZR6xoFr3DYsZ3o4GyXk2vNXNxEl82AC+Xs6e6gkLOV9XRkBcjpVIvoIXgNlKWeGY=" + + # GCC 7.4.0 Debug build with GCov for coverage build + - dist: bionic + env: + - cc=gcc cxx=g++ + - GCOV=ON + - COVERALLS=true + + # GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer + - dist: bionic + env: + - cc=gcc cxx=g++ + - ASAN=OFF + - VALGRIND=true + + # GCC 7.4.0 Release build + - dist: bionic + env: + - cc=gcc cxx=g++ + - BUILD_TYPE=Release + + # GCC 7.4.0 test linking with libsqlite3-dev package + - dist: bionic + env: + - cc=gcc cxx=g++ + - INTERNAL_SQLITE=OFF + + # GCC 5.4.0 + - dist: xenial + env: + - cc=gcc cxx=g++ + + # GCC 4.8.4 + - dist: trusty + env: + - cc=gcc cxx=g++ + + ########################################################################## + # Clang on Linux + ########################################################################## + + # Clang 7.0.0 + - dist: bionic + env: + - cc=clang cxx=clang++ + + # Clang 7.0.0 + - dist: xenial + env: + - cc=clang cxx=clang++ + + # Clang 5.0.0 + - dist: trusty + env: + - cc=clang cxx=clang++ + + ########################################################################## + # Clang on OSX + ########################################################################## + + # Latest XCode - AppleClang 9.1.0 + - os: osx + env: + - cc=clang cxx=clang++ + + # XCode 8.3 - AppleClang 8.1.0 + - os: osx + osx_image: xcode8.3 + env: + - cc=clang cxx=clang++ + +before_install: + # Coverity: don't use addons.coverity_scan since it run on every job of the build matrix, which waste resources and exhausts quotas + # Note: the job dedicated to Coverity need to only run the shell script and then exit (to not try to build and run unit tests etc.) + - if [[ -n "$COVERITY_SCAN_PROJECT_NAME" ]] ; then curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash ; exit 0 ; fi + + - if [[ "$INTERNAL_SQLITE" == "OFF" ]]; then sudo apt-get install libsqlite3-dev ; fi + - if [[ "$VALGRIND" == "true" ]]; then sudo apt-get install valgrind ; fi + - if [[ "$COVERALLS" == "true" ]]; then pip install --user cpp-coveralls ; fi + + # Set the compiler environment variables properly + - export CC=${cc} + - export CXX=${cxx} + +# scripts to run before build +before_script: + - mkdir build + - cd build + - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON .. + +# build examples, and run tests (ie make & make test) +script: + - cmake --build . + - export ASAN_OPTIONS=verbosity=1:debug=1 + - ctest --verbose --output-on-failure + - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_example1 ; fi + - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_tests ; fi + +# generate and publish GCov coveralls results +after_success: + - if [[ "$COVERALLS" == "true" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi From aa7636120375d9fc6d25fc91fbe0ee4a907f9696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 08:24:43 +0200 Subject: [PATCH 2/8] Fix gcc compilation error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit error: function ‘SQLite::Statement& SQLite::Statement::operator=(SQLite::Statement&&)’ defaulted on its first declaration with an exception-specification that differs from the implicit declaration --- include/SQLiteCpp/Statement.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/SQLiteCpp/Statement.h b/include/SQLiteCpp/Statement.h index ba846a8..5f1e390 100644 --- a/include/SQLiteCpp/Statement.h +++ b/include/SQLiteCpp/Statement.h @@ -77,9 +77,9 @@ public: Statement(const Statement&) = delete; Statement& operator=(const Statement&) = delete; - // TODO: Change Statement move constructor to default + // Statement is movable Statement(Statement&& aStatement) noexcept; - Statement& operator=(Statement&& aStatement) noexcept = default; + Statement& operator=(Statement&& aStatement) = default; /// Finalize and unregister the SQL query from the SQLite Database Connection. /// The finalization will be done by the destructor of the last shared pointer From bb051f92ffa601cc53a1fee575122a565faa90de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 08:45:31 +0200 Subject: [PATCH 3/8] Replace in .travis.yml all instances of "true" by "ON" To match the other "ON/OFF" flags used in the file, corresponding to CMake conventions --- .travis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index ea4200d..98f2c7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,14 +39,14 @@ jobs: env: - cc=gcc cxx=g++ - GCOV=ON - - COVERALLS=true + - COVERALLS=ON # GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer - dist: bionic env: - cc=gcc cxx=g++ - ASAN=OFF - - VALGRIND=true + - VALGRIND=ON # GCC 7.4.0 Release build - dist: bionic @@ -110,8 +110,8 @@ before_install: - if [[ -n "$COVERITY_SCAN_PROJECT_NAME" ]] ; then curl -s https://scan.coverity.com/scripts/travisci_build_coverity_scan.sh | bash ; exit 0 ; fi - if [[ "$INTERNAL_SQLITE" == "OFF" ]]; then sudo apt-get install libsqlite3-dev ; fi - - if [[ "$VALGRIND" == "true" ]]; then sudo apt-get install valgrind ; fi - - if [[ "$COVERALLS" == "true" ]]; then pip install --user cpp-coveralls ; fi + - if [[ "$VALGRIND" == "ON" ]]; then sudo apt-get install valgrind ; fi + - if [[ "$COVERALLS" == "ON" ]]; then pip install --user cpp-coveralls ; fi # Set the compiler environment variables properly - export CC=${cc} @@ -128,9 +128,9 @@ script: - cmake --build . - export ASAN_OPTIONS=verbosity=1:debug=1 - ctest --verbose --output-on-failure - - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_example1 ; fi - - if [[ "$VALGRIND" == "true" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_tests ; fi + - if [[ "$VALGRIND" == "ON" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_example1 ; fi + - if [[ "$VALGRIND" == "ON" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_tests ; fi # generate and publish GCov coveralls results after_success: - - if [[ "$COVERALLS" == "true" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi + - if [[ "$COVERALLS" == "ON" ]]; then coveralls --root .. -e examples -e googletest -e sqlite3 -e tests -E ".*feature_tests.*" -E ".*CompilerId.*" --gcov-options '\-lp' ; fi From 7088e44e2a44114865f84b3fd4d113f4ce3ff8ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 08:48:37 +0200 Subject: [PATCH 4/8] Add a new TESTS envvar to .travis.yml to disable gtest on Ubuntu Trusty 14.04 Recent googletest doesn't compile on this old Ubunty --- .travis.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 98f2c7f..1d28cfb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ env: - ASAN=ON - INTERNAL_SQLITE=ON - VALGRIND=OFF + - TESTS=ON # Build variants (should test a reasonable number of combination of CMake options) jobs: @@ -69,6 +70,7 @@ jobs: - dist: trusty env: - cc=gcc cxx=g++ + - TESTS=OFF ########################################################################## # Clang on Linux @@ -88,6 +90,7 @@ jobs: - dist: trusty env: - cc=clang cxx=clang++ + - TESTS=OFF ########################################################################## # Clang on OSX @@ -121,13 +124,13 @@ before_install: before_script: - mkdir build - cd build - - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON .. + - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=$TESTS -DSQLITECPP_BUILD_TESTS=$TESTS .. # build examples, and run tests (ie make & make test) script: - cmake --build . - export ASAN_OPTIONS=verbosity=1:debug=1 - - ctest --verbose --output-on-failure + - if [[ "$TESTS" == "ON" ]]; then ctest --verbose --output-on-failure ; fi - if [[ "$VALGRIND" == "ON" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_example1 ; fi - if [[ "$VALGRIND" == "ON" ]]; then valgrind --leak-check=full --error-exitcode=1 bin/SQLiteCpp_tests ; fi From f7ad43adb4db0dcf8ca2382b746d3c24fd0953fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 08:51:12 +0200 Subject: [PATCH 5/8] Add Ubuntu Focal 20.04 and Jammy 22.04 to Travis CI --- .travis.yml | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1d28cfb..b5a2e8a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,17 @@ jobs: # GCC on Linux ########################################################################## - # Coverity static code analysis + # GCC 11.2.0 (Ubuntu Jammy 22.04) + - dist: jammy + env: + - cc=gcc cxx=g++ + + # Clang 9.3.0 (Ubuntu Focal 20.04) + - dist: focal + env: + - cc=gcc cxx=g++ + + # Coverity static code analysis (Ubuntu Bionic 18.04) - dist: bionic env: - COVERITY_SCAN_PROJECT_NAME=SRombauts/SQLiteCpp @@ -35,38 +45,38 @@ jobs: # Encrypted COVERITY_SCAN_TOKEN, created via the "travis encrypt" command using the project repo's public key - secure: "Qm4d8NEDPBtYZCYav46uPEvDCtaRsjLXlkVS+C+WCJAPcwXCGkrr96wEi7RWcq2xD86QCh0XiqaPT+xdUmlohOYIovRhaaBmZ1lwIJ4GsG/ZR6xoFr3DYsZ3o4GyXk2vNXNxEl82AC+Xs6e6gkLOV9XRkBcjpVIvoIXgNlKWeGY=" - # GCC 7.4.0 Debug build with GCov for coverage build + # GCC 7.4.0 Debug build with GCov for coverage build (Ubuntu Bionic 18.04) - dist: bionic env: - cc=gcc cxx=g++ - GCOV=ON - COVERALLS=ON - # GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer + # GCC 7.4.0 Debug build with Valgrind instead of Address Sanitizer (Ubuntu Bionic 18.04) - dist: bionic env: - cc=gcc cxx=g++ - ASAN=OFF - VALGRIND=ON - # GCC 7.4.0 Release build + # GCC 7.4.0 Release build (Ubuntu Bionic 18.04) - dist: bionic env: - cc=gcc cxx=g++ - BUILD_TYPE=Release - # GCC 7.4.0 test linking with libsqlite3-dev package + # GCC 7.4.0 test linking with libsqlite3-dev package (Ubuntu Bionic 18.04) - dist: bionic env: - cc=gcc cxx=g++ - INTERNAL_SQLITE=OFF - # GCC 5.4.0 + # GCC 5.4.0 (Ubuntu Xenial 16.04) - dist: xenial env: - cc=gcc cxx=g++ - # GCC 4.8.4 + # GCC 4.8.4 (Ubuntu Trusty 14.04) - dist: trusty env: - cc=gcc cxx=g++ @@ -76,17 +86,27 @@ jobs: # Clang on Linux ########################################################################## - # Clang 7.0.0 + # Clang 7.0.0 (Ubuntu Jammy 22.04) + - dist: jammy + env: + - cc=clang cxx=clang++ + + # Clang 7.0.0 (Ubuntu Focal 20.04) + - dist: focal + env: + - cc=clang cxx=clang++ + + # Clang 7.0.0 (Ubuntu Bionic 18.04) - dist: bionic env: - cc=clang cxx=clang++ - # Clang 7.0.0 + # Clang 7.0.0 (Ubuntu Xenial 16.04) - dist: xenial env: - cc=clang cxx=clang++ - # Clang 5.0.0 + # Clang 5.0.0 (Ubuntu Trusty 14.04) - dist: trusty env: - cc=clang cxx=clang++ From e4ca30746032dbbec5d055b4add2cd37046505e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 18:32:47 +0200 Subject: [PATCH 6/8] Add a Travis CI config to BUILD_SHARED_LIBS --- .travis.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b5a2e8a..5991952 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,7 @@ env: - INTERNAL_SQLITE=ON - VALGRIND=OFF - TESTS=ON + - SHARED_LIBS=OFF # Build variants (should test a reasonable number of combination of CMake options) jobs: @@ -65,6 +66,12 @@ jobs: - cc=gcc cxx=g++ - BUILD_TYPE=Release + # GCC 7.4.0 Shared Libs (Ubuntu Bionic 18.04) + - dist: bionic + env: + - cc=gcc cxx=g++ + - SHARED_LIBS=ON + # GCC 7.4.0 test linking with libsqlite3-dev package (Ubuntu Bionic 18.04) - dist: bionic env: @@ -144,7 +151,7 @@ before_install: before_script: - mkdir build - cd build - - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=$TESTS -DSQLITECPP_BUILD_TESTS=$TESTS .. + - cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SHARED_LIBS=$SHARED_LIBS -DSQLITECPP_INTERNAL_SQLITE=$INTERNAL_SQLITE -DSQLITECPP_USE_ASAN=$ASAN -DSQLITECPP_USE_GCOV=$GCOV -DSQLITECPP_BUILD_EXAMPLES=$TESTS -DSQLITECPP_BUILD_TESTS=$TESTS .. # build examples, and run tests (ie make & make test) script: From d4d57b7f5b539a2ffb34c7b9ce60456e643d78df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 19:11:21 +0200 Subject: [PATCH 7/8] Fix inequality assertions for real numbers failing on Valgrind (1/2) EXPECT_DOUBLE_EQ --- tests/Column_test.cpp | 6 +++--- tests/Statement_test.cpp | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/Column_test.cpp b/tests/Column_test.cpp index 7506f81..ed23bf0 100644 --- a/tests/Column_test.cpp +++ b/tests/Column_test.cpp @@ -98,7 +98,7 @@ static void test_column_basis(bool utf16) EXPECT_STREQ("first", ptxt); EXPECT_EQ("first", msg); EXPECT_EQ(-123, integer); - EXPECT_EQ(0.123, real); + EXPECT_DOUBLE_EQ(0.123, real); EXPECT_EQ(0, memcmp("bl\0b", pblob, size)); #if !defined(_MSC_VER) || _MSC_VER >= 1900 EXPECT_EQ((size_t)size, sblob.size()); @@ -129,7 +129,7 @@ static void test_column_basis(bool utf16) EXPECT_EQ("first", msg1); EXPECT_EQ("first", msg2); EXPECT_EQ(-123, integer); - EXPECT_EQ(0.123, real); + EXPECT_DOUBLE_EQ(0.123, real); EXPECT_EQ(0, memcmp("bl\0b", pblob, 4)); EXPECT_EQ(0, memcmp("bl\0b", &sblob[0], 4)); } @@ -195,7 +195,7 @@ static void test_column_basis(bool utf16) const SQLite::Column integer = query.getColumn(2); EXPECT_EQ(-123, integer.getInt()); const SQLite::Column dbl = query.getColumn(3); - EXPECT_EQ(0.123, dbl.getDouble()); + EXPECT_DOUBLE_EQ(0.123, dbl.getDouble()); } } diff --git a/tests/Statement_test.cpp b/tests/Statement_test.cpp index 0976ce1..05b4ec1 100644 --- a/tests/Statement_test.cpp +++ b/tests/Statement_test.cpp @@ -174,7 +174,7 @@ TEST(Statement, executeStep) EXPECT_EQ("first", msg); EXPECT_EQ(123, integer); EXPECT_EQ(123, integer2); - EXPECT_EQ(0.123, real); + EXPECT_DOUBLE_EQ(0.123, real); // Step one more time to discover there is nothing more query.executeStep(); @@ -227,7 +227,7 @@ TEST(Statement, tryExecuteStep) EXPECT_EQ("first", msg); EXPECT_EQ(123, integer); EXPECT_EQ(123, integer2); - EXPECT_EQ(0.123, real); + EXPECT_DOUBLE_EQ(0.123, real); // Step one more time to discover there is nothing more EXPECT_EQ(query.tryExecuteStep(), SQLITE_DONE); @@ -595,7 +595,7 @@ TEST(Statement, bindByNameString) EXPECT_EQ(1, query.getColumn(0).getInt64()); EXPECT_STREQ("first", query.getColumn(1).getText()); EXPECT_EQ(123, query.getColumn(2).getInt()); - EXPECT_EQ(0.123, query.getColumn(3).getDouble()); + EXPECT_DOUBLE_EQ(0.123, query.getColumn(3).getDouble()); EXPECT_EQ(-123, query.getColumn(4).getInt()); // reset() with clearbindings() and new bindings @@ -899,7 +899,7 @@ TEST(Statement, getColumnByName) const double real = query.getColumn("double"); EXPECT_EQ("first", msg); EXPECT_EQ(123, integer); - EXPECT_EQ(0.123, real); + EXPECT_DOUBLE_EQ(0.123, real); } TEST(Statement, getName) @@ -1000,14 +1000,14 @@ TEST(Statement, getColumns) EXPECT_EQ(1, testStruct.id); EXPECT_EQ("first", testStruct.msg); EXPECT_EQ(123, testStruct.integer); - EXPECT_EQ(0.123, testStruct.real); + EXPECT_DOUBLE_EQ(0.123, testStruct.real); // Get only the first 2 columns auto testStruct2 = query.getColumns(); EXPECT_EQ(1, testStruct2.id); EXPECT_EQ("first", testStruct2.msg); EXPECT_EQ(-1, testStruct2.integer); - EXPECT_EQ(0.0, testStruct2.real); + EXPECT_DOUBLE_EQ(0.0, testStruct2.real); } #endif From e933212f693b879ddcef7172b5c2273673272d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Rombauts?= Date: Tue, 29 Aug 2023 19:11:51 +0200 Subject: [PATCH 8/8] Fix inequality assertions for real numbers failing on Valgrind (2/2) EXPECT_FLOAT_EQ --- tests/Statement_test.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/Statement_test.cpp b/tests/Statement_test.cpp index 05b4ec1..83208e5 100644 --- a/tests/Statement_test.cpp +++ b/tests/Statement_test.cpp @@ -343,7 +343,7 @@ TEST(Statement, bindings) EXPECT_EQ(4, query.getColumn(0).getInt64()); EXPECT_EQ(fourth, query.getColumn(1).getText()); EXPECT_EQ(12345678900000LL, query.getColumn(2).getInt64()); - EXPECT_EQ(0.234f, query.getColumn(3).getDouble()); + EXPECT_FLOAT_EQ(0.234f, (float)query.getColumn(3).getDouble()); } // reset() without clearbindings() @@ -364,7 +364,7 @@ TEST(Statement, bindings) EXPECT_STREQ(buffer, query.getColumn(1).getText()); EXPECT_TRUE (query.isColumnNull(2)); EXPECT_EQ(0, query.getColumn(2).getInt()); - EXPECT_EQ(0.234f, query.getColumn(3).getDouble()); + EXPECT_FLOAT_EQ(0.234f, (float)query.getColumn(3).getDouble()); } @@ -510,7 +510,7 @@ TEST(Statement, bindByName) EXPECT_EQ(second, query.getColumn(1).getText()); EXPECT_EQ(-123, query.getColumn(2).getInt()); EXPECT_EQ(12345678900000LL, query.getColumn(3).getInt64()); - EXPECT_EQ(0.234f, query.getColumn(4).getDouble()); + EXPECT_FLOAT_EQ(0.234f, (float)query.getColumn(4).getDouble()); } // reset() without clearbindings() @@ -531,7 +531,7 @@ TEST(Statement, bindByName) EXPECT_STREQ(buffer, query.getColumn(1).getText()); EXPECT_TRUE (query.isColumnNull(2)); EXPECT_EQ(0, query.getColumn(2).getInt()); - EXPECT_EQ(0.234f, query.getColumn(4).getDouble()); + EXPECT_FLOAT_EQ(0.234f, (float)query.getColumn(4).getDouble()); } // reset() without clearbindings() @@ -622,7 +622,7 @@ TEST(Statement, bindByNameString) EXPECT_EQ(2, query.getColumn(0).getInt64()); EXPECT_EQ(second, query.getColumn(1).getText()); EXPECT_EQ(12345678900000LL, query.getColumn(2).getInt64()); - EXPECT_EQ(0.234f, query.getColumn(3).getDouble()); + EXPECT_FLOAT_EQ(0.234f, (float)query.getColumn(3).getDouble()); EXPECT_EQ(-123, query.getColumn(4).getInt()); } @@ -644,7 +644,7 @@ TEST(Statement, bindByNameString) EXPECT_STREQ(buffer, query.getColumn(1).getText()); EXPECT_TRUE(query.isColumnNull(2)); EXPECT_EQ(0, query.getColumn(2).getInt()); - EXPECT_EQ(0.234f, query.getColumn(3).getDouble()); + EXPECT_FLOAT_EQ(0.234f, (float)query.getColumn(3).getDouble()); } // reset() without clearbindings()