mirror of
https://github.com/cuberite/SQLiteCpp.git
synced 2025-08-05 18:26:05 -04:00
Add Valgrind to Travis CI, and improve the build Matrix with more variables
Should detect the slight bug we currently have in our test of Database read header
This commit is contained in:
parent
c06db7f48b
commit
5a1fa743e5
68
.travis.yml
68
.travis.yml
@ -16,25 +16,38 @@ matrix:
|
|||||||
# GCC on Linux
|
# GCC on Linux
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
|
# GCC Debug build with GCov for coverage build
|
||||||
- dist: bionic
|
- dist: bionic
|
||||||
env:
|
env:
|
||||||
- cc=gcc
|
- cc=gcc cxx=g++
|
||||||
- cxx=g++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON GCOV=ON
|
||||||
- COVERALLS=true
|
- COVERALLS=true
|
||||||
|
|
||||||
|
# GCC Debug build with Valgrind instead of Address Sanitizer
|
||||||
|
- dist: bionic
|
||||||
|
env:
|
||||||
|
- cc=gcc cxx=g++
|
||||||
|
- BUILD_TYPE=Debug
|
||||||
|
- VALGRIND=true
|
||||||
|
|
||||||
|
# GCC Release build
|
||||||
|
- dist: bionic
|
||||||
|
env:
|
||||||
|
- cc=gcc cxx=g++
|
||||||
|
- BUILD_TYPE=Release
|
||||||
|
|
||||||
- dist: xenial
|
- dist: xenial
|
||||||
env:
|
env:
|
||||||
- cc=gcc
|
- cc=gcc cxx=g++
|
||||||
- cxx=g++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON
|
||||||
|
|
||||||
- dist: trusty
|
- dist: trusty
|
||||||
env:
|
env:
|
||||||
- cc=gcc
|
- cc=gcc cxx=g++
|
||||||
- cxx=g++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# Clang on Linux
|
# Clang on Linux
|
||||||
@ -42,21 +55,21 @@ matrix:
|
|||||||
|
|
||||||
- dist: bionic
|
- dist: bionic
|
||||||
env:
|
env:
|
||||||
- cc=clang
|
- cc=clang cxx=clang++
|
||||||
- cxx=clang++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON
|
||||||
|
|
||||||
- dist: xenial
|
- dist: xenial
|
||||||
env:
|
env:
|
||||||
- cc=clang
|
- cc=clang cxx=clang++
|
||||||
- cxx=clang++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON
|
||||||
|
|
||||||
- dist: trusty
|
- dist: trusty
|
||||||
env:
|
env:
|
||||||
- cc=clang
|
- cc=clang cxx=clang++
|
||||||
- cxx=clang++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# Clang on OSX
|
# Clang on OSX
|
||||||
@ -65,17 +78,17 @@ matrix:
|
|||||||
# Latest XCode
|
# Latest XCode
|
||||||
- os: osx
|
- os: osx
|
||||||
env:
|
env:
|
||||||
- cc=clang
|
- cc=clang cxx=clang++
|
||||||
- cxx=clang++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON
|
||||||
|
|
||||||
# XCode 8.3
|
# XCode 8.3
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode8.3
|
osx_image: xcode8.3
|
||||||
env:
|
env:
|
||||||
- cc=clang
|
- cc=clang cxx=clang++
|
||||||
- cxx=clang++
|
- BUILD_TYPE=Debug
|
||||||
- CXXFLAGS=""
|
- ASAN=ON
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
# Set the compiler environment variables properly
|
# Set the compiler environment variables properly
|
||||||
@ -83,6 +96,7 @@ before_install:
|
|||||||
- export CXX=${cxx}
|
- export CXX=${cxx}
|
||||||
- ${CC} --version
|
- ${CC} --version
|
||||||
- ${CXX} --version
|
- ${CXX} --version
|
||||||
|
- if [[ "$VALGRIND" == "true" ]]; then sudo apt-get install -qq valgrind ; fi
|
||||||
|
|
||||||
install:
|
install:
|
||||||
# coveralls test coverage:
|
# coveralls test coverage:
|
||||||
@ -92,13 +106,15 @@ install:
|
|||||||
before_script:
|
before_script:
|
||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Debug -DSQLITECPP_USE_ASAN=ON -DSQLITECPP_USE_GCOV=ON -DSQLITECPP_BUILD_EXAMPLES=ON -DSQLITECPP_BUILD_TESTS=ON ..
|
- cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -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)
|
# build examples, and run tests (ie make & make test)
|
||||||
script:
|
script:
|
||||||
- cmake --build .
|
- cmake --build .
|
||||||
- export ASAN_OPTIONS=verbosity=1:debug=1
|
- export ASAN_OPTIONS=verbosity=1:debug=1
|
||||||
- ctest --verbose --output-on-failure
|
- 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
|
# generate and publish GCov coveralls results
|
||||||
after_success:
|
after_success:
|
||||||
|
14
CHANGELOG.md
14
CHANGELOG.md
@ -2,12 +2,12 @@ Mar 30 2012
|
|||||||
- Start of a new thin C++ SQLite wrapper
|
- Start of a new thin C++ SQLite wrapper
|
||||||
|
|
||||||
Apr 2 2012
|
Apr 2 2012
|
||||||
- The wrapper is functionnal
|
- The wrapper is functional
|
||||||
- Added documentation and examples
|
- Added documentation and examples
|
||||||
- Publication on GitHub
|
- Publication on GitHub
|
||||||
|
|
||||||
Version 0.1.0 - Apr 4 2012
|
Version 0.1.0 - Apr 4 2012
|
||||||
- Added a Database::exec() methode to execute simple SQL statement
|
- Added a Database::exec() method to execute simple SQL statement
|
||||||
- Added a version number like in sqlite3.h, starting with 0.1.0
|
- Added a version number like in sqlite3.h, starting with 0.1.0
|
||||||
|
|
||||||
Version 0.2.0 - Apr 11 2012
|
Version 0.2.0 - Apr 11 2012
|
||||||
@ -75,7 +75,7 @@ Version 1.3.0 - November 1 2015
|
|||||||
- Added Backup class
|
- Added Backup class
|
||||||
|
|
||||||
Version 1.3.1 - February 10 2016
|
Version 1.3.1 - February 10 2016
|
||||||
- Swith Linux/Mac build to the provided SQLite3 C library
|
- Switch Linux/Mac build to the provided SQLite3 C library
|
||||||
- Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
|
- Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
|
||||||
- Remove warnings
|
- Remove warnings
|
||||||
- Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)
|
- Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)
|
||||||
@ -157,9 +157,11 @@ Version 2.5.0 - December 31 2019
|
|||||||
- #251 Added example for getHeaderInfo()
|
- #251 Added example for getHeaderInfo()
|
||||||
|
|
||||||
Version 3.0.0 - January 1 2020
|
Version 3.0.0 - January 1 2020
|
||||||
- C++11 minimum
|
- C++11 is now required
|
||||||
- CMake 3.1 minimum
|
- CMake 3.1 minimum
|
||||||
- Visual Studio 2015 minimum
|
- Visual Studio 2015 minimum
|
||||||
- Googletest 1.10
|
- Update Googletest to latest release 1.10
|
||||||
- Remove Statement::isOk() deprecated in 2.2.0 when renamed to Statement::hasRow()
|
- Add Github Actions continuous integration solution
|
||||||
|
- Add Valgrind memcheck tool to Travis CI
|
||||||
|
- Remove Statement::isOk() deprecated in 2.2.0 when renamed to Statement::hasRow()
|
||||||
- Replace Database::backup() "C" implementation by calling the Backup class
|
- Replace Database::backup() "C" implementation by calling the Backup class
|
||||||
|
@ -43,14 +43,14 @@ else (MSVC)
|
|||||||
set(CPPLINT_ARG_OUTPUT "--output=eclipse")
|
set(CPPLINT_ARG_OUTPUT "--output=eclipse")
|
||||||
set(CPPCHECK_ARG_TEMPLATE "--template=gcc")
|
set(CPPCHECK_ARG_TEMPLATE "--template=gcc")
|
||||||
# Useful compile flags and extra warnings
|
# Useful compile flags and extra warnings
|
||||||
add_compile_options(-fstack-protector -Wall -Wextra -Wpedantic -Wno-long-long -Wswitch-enum -Wshadow -Winline)
|
add_compile_options(-fstack-protector)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-c++0x-compat") # C++ only
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Wswitch-enum -Wshadow -Wno-long-long") # C++ only, don't bother with sqlite3
|
||||||
if (CMAKE_COMPILER_IS_GNUCXX)
|
if (CMAKE_COMPILER_IS_GNUCXX)
|
||||||
# GCC flags
|
# GCC flags
|
||||||
option(SQLITECPP_USE_GCOV "USE GCov instrumentation." OFF)
|
option(SQLITECPP_USE_GCOV "USE GCov instrumentation." OFF)
|
||||||
if (SQLITECPP_USE_GCOV)
|
if (SQLITECPP_USE_GCOV)
|
||||||
message (STATUS "Using GCov instrumentation")
|
message (STATUS "Using GCov instrumentation")
|
||||||
add_compile_options (-coverage) # NOTE -fkeep-inline-functions would be usefull but not working with current google test and gcc 4.8
|
add_compile_options (-coverage) # NOTE -fkeep-inline-functions would be useful but not working with current Google test and GCC 4.8
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -coverage")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -coverage")
|
||||||
endif ()
|
endif ()
|
||||||
endif (CMAKE_COMPILER_IS_GNUCXX)
|
endif (CMAKE_COMPILER_IS_GNUCXX)
|
||||||
@ -83,7 +83,7 @@ endif ()
|
|||||||
|
|
||||||
## Build the C++ Wrapper ##
|
## Build the C++ Wrapper ##
|
||||||
|
|
||||||
# adding a new file require explicittly modifing the CMakeLists.txt
|
# adding a new file require explicitly modifying the CMakeLists.txt
|
||||||
# so that CMake knows that it should rebuild the project (it is best practice)
|
# so that CMake knows that it should rebuild the project (it is best practice)
|
||||||
|
|
||||||
# list of sources files of the library
|
# list of sources files of the library
|
||||||
@ -307,7 +307,7 @@ if (SQLITECPP_BUILD_EXAMPLES)
|
|||||||
# add the basic example executable
|
# add the basic example executable
|
||||||
add_executable(SQLiteCpp_example1 ${SQLITECPP_EXAMPLES})
|
add_executable(SQLiteCpp_example1 ${SQLITECPP_EXAMPLES})
|
||||||
target_link_libraries(SQLiteCpp_example1 SQLiteCpp sqlite3)
|
target_link_libraries(SQLiteCpp_example1 SQLiteCpp sqlite3)
|
||||||
# Link target with pthread and dl for linux
|
# Link target with pthread and dl for Linux
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
target_link_libraries(SQLiteCpp_example1 pthread)
|
target_link_libraries(SQLiteCpp_example1 pthread)
|
||||||
if (NOT APPLE)
|
if (NOT APPLE)
|
||||||
@ -329,12 +329,12 @@ if (SQLITECPP_BUILD_TESTS)
|
|||||||
if (GTEST_FOUND)
|
if (GTEST_FOUND)
|
||||||
target_link_libraries(SQLiteCpp_tests GTest::GTest GTest::Main SQLiteCpp sqlite3)
|
target_link_libraries(SQLiteCpp_tests GTest::GTest GTest::Main SQLiteCpp sqlite3)
|
||||||
else (GTEST_FOUND)
|
else (GTEST_FOUND)
|
||||||
# deactivate some warnings for compiling the gtest library
|
# deactivate some warnings for compiling the googletest library
|
||||||
if (NOT MSVC)
|
if (NOT MSVC)
|
||||||
add_compile_options(-Wno-variadic-macros -Wno-long-long -Wno-switch-enum -Wno-float-equal -Wno-conversion-null -Wno-switch-default -Wno-pedantic)
|
add_compile_options(-Wno-variadic-macros -Wno-long-long -Wno-switch-enum -Wno-float-equal -Wno-conversion-null -Wno-switch-default -Wno-pedantic)
|
||||||
endif (NOT MSVC)
|
endif (NOT MSVC)
|
||||||
|
|
||||||
# add the subdirectory containing the CMakeLists.txt for the gtest library
|
# add the subdirectory containing the CMakeLists.txt for the googletest library
|
||||||
if (NOT EXISTS "${PROJECT_SOURCE_DIR}/googletest/CMakeLists.txt")
|
if (NOT EXISTS "${PROJECT_SOURCE_DIR}/googletest/CMakeLists.txt")
|
||||||
message(FATAL_ERROR "Missing 'googletest' submodule! Either use 'git submodule init' and 'git submodule update' to get googletest according to the README, or deactivate unit tests with -DSQLITECPP_BUILD_TESTS=OFF")
|
message(FATAL_ERROR "Missing 'googletest' submodule! Either use 'git submodule init' and 'git submodule update' to get googletest according to the README, or deactivate unit tests with -DSQLITECPP_BUILD_TESTS=OFF")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -72,6 +72,7 @@ Developments and tests are done under the following OSs:
|
|||||||
- Windows 10, and Windows Server 2012 R2 & Windows Server 2016 (AppVeyor)
|
- Windows 10, and Windows Server 2012 R2 & Windows Server 2016 (AppVeyor)
|
||||||
- OS X 10.11 (Travis CI)
|
- OS X 10.11 (Travis CI)
|
||||||
- Github Actions
|
- Github Actions
|
||||||
|
- Valgrind memcheck tool
|
||||||
|
|
||||||
And the following IDEs/Compilers
|
And the following IDEs/Compilers
|
||||||
- GCC 4.8.4, 5.3.0 and 7.1.1 (C++11, C++14, C++17)
|
- GCC 4.8.4, 5.3.0 and 7.1.1 (C++11, C++14, C++17)
|
||||||
|
2
TODO.txt
2
TODO.txt
@ -1,5 +1,3 @@
|
|||||||
Switch to C++11 for v3.0.0
|
|
||||||
|
|
||||||
Add a Tutorial for SQLite newbies
|
Add a Tutorial for SQLite newbies
|
||||||
Add a real example in the form of a small interactive console application
|
Add a real example in the form of a small interactive console application
|
||||||
|
|
||||||
|
2
build.sh
2
build.sh
@ -4,7 +4,7 @@
|
|||||||
# Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt
|
# Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt
|
||||||
# or copy at http://opensource.org/licenses/MIT)
|
# or copy at http://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
# exit on firts error
|
# exit on first error
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user