From 0645fa79a29f0b52e5e2395b5a51560822500673 Mon Sep 17 00:00:00 2001 From: FrancisANDRE Date: Fri, 11 Mar 2016 12:09:49 +0100 Subject: [PATCH 01/10] Add fast fail. Restore arm-linux-gnueabi-g++. Signed-off-by: FrancisANDRE --- .travis.yml | 40 +++++++++++++--------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 06d21f48f..1f6dfd804 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,6 +45,8 @@ before_script: - if [ "$TRAVIS_OS_NAME" == "linux" ]; then mysql -u root -e 'create database pocotestdb;'; fi matrix: + fast_finish: true + include: - env: TEST_NAME="OSX clang (make) bundled" os: osx @@ -53,25 +55,21 @@ matrix: - export CC="clang" - export CXX="clang++" - clang++ -x c++ /dev/null -dM -E - - ./configure --everything --omit=Data/ODBC,Data/MySQL,Data/SQLite,Data/PostgreSQL && make -s -j2 - - sudo make install - - ./travis/OSX/runtests.sh + - ./configure --everything --omit=Data/ODBC,Data/MySQL,Data/SQLite,Data/PostgreSQL && make -s -j2 && sudo make install && ./travis/OSX/runtests.sh - env: TEST_NAME="Linux gcc 4.6 (make) bundled" compiler: gcc script: - export CC="gcc" - export CXX="g++" - - ./configure --everything && make -s -j2 - - ./travis/Linux/runtests.sh + - ./configure --everything && make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.8 (make) bundled" compiler: gcc script: - export CC="gcc-4.8" - export CXX="g++-4.8" - - ./configure --everything && make -s -j2 - - ./travis/Linux/runtests.sh + - ./configure --everything && make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.6 (make) unbundled" compiler: gcc @@ -79,8 +77,7 @@ matrix: - export CC="gcc" - export CXX="g++" - sudo apt-get install -qq -y libpcre3-dev libssl-dev libexpat1-dev - - ./configure --everything --unbundled && make -s -j2 - - ./travis/Linux/runtests.sh + - ./configure --everything --unbundled && make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.8 (make) unbundled" compiler: gcc @@ -88,19 +85,17 @@ matrix: - sudo apt-get install -qq -y libpcre3-dev libssl-dev libexpat1-dev - export CC="gcc-4.8" - export CXX="g++-4.8" - - ./configure --everything --unbundled && make -s -j2 - - ./travis/Linux/runtests.sh + - ./configure --everything --unbundled && make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux clang 3.4 (make)" compiler: clang script: - - ./configure --everything --config=Linux-clang && make -s -j2 - - ./travis/Linux/runtests.sh + - ./configure --everything --config=Linux-clang && make -s -j2 install && - ./travis/Linux/runtests.sh #FIXME the -m64 option bring by the Linux config is not supported by arm-linux-gnueabi-g++ which makes this test failing - #FIXME - env: TEST_NAME="arm-linux-gnueabi- (make)" - #FIXME script: - #FIXME - ./configure --omit=Data/ODBC,Data/MySQL,Crypto,NetSSL,PageCompiler && make -s -j2 CROSS_COMPILE=arm-linux-gnueabi- POCO_TARGET_OSARCH=armv7l + - env: TEST_NAME="arm-linux-gnueabi- (make)" + script: + - ./configure --omit=Data/ODBC,Data/MySQL,Data/PostgreSQL,Crypto,NetSSL,PageCompiler && make -s -j2 install CROSS_COMPILE=arm-linux-gnueabi- POCO_TARGET_OSARCH=armv7l - env: TEST_NAME="Linux gcc 4.6 (CMake)" compiler: gcc @@ -134,7 +129,7 @@ matrix: - source ./travis/ignored.sh - export POCO_BASE=`pwd` - mkdir cmake-build && cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. - - make -s -j2 && cd .. + - make -s -j2 install && cd .. - env: TEST_NAME="Linux arm-linux-gnueabihf-g++ (CMake)" script: @@ -143,17 +138,8 @@ matrix: - source ./travis/ignored.sh - export POCO_BASE=`pwd` - mkdir cmake-build && cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. - - make -s -j2 && cd .. + - make -s -j2 install && cd .. - # TODO osx build - # TODO run test suite - # script: - # - ./configure && make -s -i -j2 - # - sudo ifconfig -a - # - sudo ifconfig venet0 multicast - # - sudo ifconfig -a - # - export POCO_BASE=`pwd` - # - sudo -E build/script/runtests.sh # QA jobs for code analytics and metrics # build documentation and release From b2453077809dc9445fccf93aab8530fc2535e6ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A4us=20Mendel?= Date: Fri, 11 Mar 2016 10:14:43 -0300 Subject: [PATCH 02/10] Poco.Foundation now links with pthreads on Unix platforms Some of the libraries relies on functions from Poco.Foundation that are implemented using pthreads and were leading to link errors. --- Foundation/CMakeLists.txt | 6 +++--- PageCompiler/CMakeLists.txt | 2 +- PageCompiler/File2Page/CMakeLists.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index a583c8985..7d572f319 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -111,14 +111,14 @@ endif(ANDROID) # TODO: Why is this here? add_definitions( -DPCRE_STATIC) -# For SetAffinity +# For POSIX threads on Unix if(UNIX AND NOT APPLE) + # We still need pthreads on Unix + set(SYSLIBS ${SYSLIBS} ${CMAKE_THREAD_LIBS_INIT}) INCLUDE (CheckFunctionExists) INCLUDE (CheckCXXSourceCompiles) INCLUDE (CheckLibraryExists) CHECK_LIBRARY_EXISTS(pthread pthread_setaffinity_np "pthread.h" HAVE_PTHREAD_SETAFFINITY_NP) - #set(CMAKE_EXTRA_INCLUDE_FILES pthread.h) - #CHECK_FUNCTION_EXISTS(pthread_setaffinity_np HAVE_PTHREAD_SETAFFINITY_NP) if(NOT HAVE_PTHREAD_SETAFFINITY_NP) message(STATUS "Platform has not PTHREAD_SETAFFINITY_NP") else(HAVE_PTHREAD_SETAFFINITY_NP) diff --git a/PageCompiler/CMakeLists.txt b/PageCompiler/CMakeLists.txt index 5d0a479e5..2f8af6c87 100644 --- a/PageCompiler/CMakeLists.txt +++ b/PageCompiler/CMakeLists.txt @@ -10,7 +10,7 @@ set_target_properties( "${POCO_EXENAME}" OUTPUT_NAME cpspc ) -target_link_libraries( "${POCO_EXENAME}" ${CMAKE_THREAD_LIBS_INIT} Net Util XML JSON Foundation) +target_link_libraries( "${POCO_EXENAME}" Net Util XML JSON Foundation) install( TARGETS "${POCO_EXENAME}" EXPORT "${POCO_EXENAME}Targets" diff --git a/PageCompiler/File2Page/CMakeLists.txt b/PageCompiler/File2Page/CMakeLists.txt index 68c32362b..cb6d9694b 100644 --- a/PageCompiler/File2Page/CMakeLists.txt +++ b/PageCompiler/File2Page/CMakeLists.txt @@ -10,7 +10,7 @@ set_target_properties( "${POCO_EXENAME}" OUTPUT_NAME f2cpsp ) -target_link_libraries( "${POCO_EXENAME}" ${CMAKE_THREAD_LIBS_INIT} Net Util XML JSON Foundation) +target_link_libraries( "${POCO_EXENAME}" Net Util XML JSON Foundation) install( TARGETS "${POCO_EXENAME}" EXPORT "${POCO_EXENAME}Targets" From b3423e660141b81be67d1292b00777432ceb23ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A4us=20Mendel?= Date: Fri, 11 Mar 2016 10:17:33 -0300 Subject: [PATCH 03/10] Fixed compilation on IBM XLC due to incorrect function call Templated functions dependent of a templated class must be prefixed with the "template" keyword. --- Foundation/include/Poco/Dynamic/Pair.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/include/Poco/Dynamic/Pair.h b/Foundation/include/Poco/Dynamic/Pair.h index b16f833b2..aab63f993 100644 --- a/Foundation/include/Poco/Dynamic/Pair.h +++ b/Foundation/include/Poco/Dynamic/Pair.h @@ -98,7 +98,7 @@ public: std::string toString() { std::string str; - Var(*this).convert(str); + Var(*this).template convert(str); return str; } From 473de6d1b136b2fba82858944690d50c1a1ff60f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A4us=20Mendel?= Date: Fri, 11 Mar 2016 10:21:40 -0300 Subject: [PATCH 04/10] Fixed compilation on IBM AIX due to name clash with UTF32Char Both poco and AIX's system header defines UTF32Char type which lead to a name clash and compilation error. --- Foundation/testsuite/src/UnicodeConverterTest.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/Foundation/testsuite/src/UnicodeConverterTest.cpp b/Foundation/testsuite/src/UnicodeConverterTest.cpp index e638513a4..db01d83f9 100644 --- a/Foundation/testsuite/src/UnicodeConverterTest.cpp +++ b/Foundation/testsuite/src/UnicodeConverterTest.cpp @@ -20,13 +20,6 @@ #include "Poco/UTFString.h" -using Poco::UnicodeConverter; -using Poco::UTF16Char; -using Poco::UTF16String; -using Poco::UTF32Char; -using Poco::UTF32String; - - UnicodeConverterTest::UnicodeConverterTest(const std::string& rName): CppUnit::TestCase(rName) { } @@ -39,14 +32,13 @@ UnicodeConverterTest::~UnicodeConverterTest() void UnicodeConverterTest::testUTF16() { - - runTests(); + runTests(); } void UnicodeConverterTest::testUTF32() { - runTests(); + runTests(); } From 3efe787a6415175b16af899f7ebf4386ecafad7e Mon Sep 17 00:00:00 2001 From: FrancisANDRE Date: Fri, 11 Mar 2016 14:25:23 +0100 Subject: [PATCH 05/10] Use sudo for installing Poco libs. Signed-off-by: FrancisANDRE --- .travis.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1f6dfd804..d1057f79e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -62,14 +62,14 @@ matrix: script: - export CC="gcc" - export CXX="g++" - - ./configure --everything && make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything && sudo make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.8 (make) bundled" compiler: gcc script: - export CC="gcc-4.8" - export CXX="g++-4.8" - - ./configure --everything && make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything && sudo make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.6 (make) unbundled" compiler: gcc @@ -77,7 +77,7 @@ matrix: - export CC="gcc" - export CXX="g++" - sudo apt-get install -qq -y libpcre3-dev libssl-dev libexpat1-dev - - ./configure --everything --unbundled && make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything --unbundled && sudo make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.8 (make) unbundled" compiler: gcc @@ -85,17 +85,17 @@ matrix: - sudo apt-get install -qq -y libpcre3-dev libssl-dev libexpat1-dev - export CC="gcc-4.8" - export CXX="g++-4.8" - - ./configure --everything --unbundled && make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything --unbundled && sudo make -s -j2 install && ./travis/Linux/runtests.sh - env: TEST_NAME="Linux clang 3.4 (make)" compiler: clang script: - - ./configure --everything --config=Linux-clang && make -s -j2 install && - ./travis/Linux/runtests.sh + - ./configure --everything --config=Linux-clang && sudo make -s -j2 install && - ./travis/Linux/runtests.sh #FIXME the -m64 option bring by the Linux config is not supported by arm-linux-gnueabi-g++ which makes this test failing - env: TEST_NAME="arm-linux-gnueabi- (make)" script: - - ./configure --omit=Data/ODBC,Data/MySQL,Data/PostgreSQL,Crypto,NetSSL,PageCompiler && make -s -j2 install CROSS_COMPILE=arm-linux-gnueabi- POCO_TARGET_OSARCH=armv7l + - ./configure --omit=Data/ODBC,Data/MySQL,Data/PostgreSQL,Crypto,NetSSL,PageCompiler && sudo make -s -j2 install CROSS_COMPILE=arm-linux-gnueabi- POCO_TARGET_OSARCH=armv7l - env: TEST_NAME="Linux gcc 4.6 (CMake)" compiler: gcc @@ -128,8 +128,8 @@ matrix: - export CXX="arm-linux-gnueabi-g++" - source ./travis/ignored.sh - export POCO_BASE=`pwd` - - mkdir cmake-build && cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. - - make -s -j2 install && cd .. + - mkdir cmake-build + - cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. && sudo make -s -j2 install && cd .. - env: TEST_NAME="Linux arm-linux-gnueabihf-g++ (CMake)" script: @@ -137,8 +137,8 @@ matrix: - export CXX="arm-linux-gnueabihf-g++" - source ./travis/ignored.sh - export POCO_BASE=`pwd` - - mkdir cmake-build && cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. - - make -s -j2 install && cd .. + - mkdir cmake-build + - cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. && sudo make -s -j2 install && cd .. # QA jobs for code analytics and metrics From 8895045fb59965551ae44be16a10d91fb7c471d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A4us=20Mendel?= Date: Fri, 11 Mar 2016 10:30:15 -0300 Subject: [PATCH 06/10] Made all testsuite link with pthreads on Unix systems This fixes the linker errors due to missing pthreads library on AIX. --- Data/SQLite/testsuite/CMakeLists.txt | 2 +- Data/testsuite/CMakeLists.txt | 2 +- JSON/testsuite/CMakeLists.txt | 2 +- MongoDB/testsuite/CMakeLists.txt | 2 +- Net/testsuite/CMakeLists.txt | 2 +- NetSSL_OpenSSL/testsuite/CMakeLists.txt | 2 +- PageCompiler/CMakeLists.txt | 2 +- PageCompiler/File2Page/CMakeLists.txt | 2 +- Redis/testsuite/CMakeLists.txt | 2 +- Util/testsuite/CMakeLists.txt | 2 +- XML/testsuite/CMakeLists.txt | 2 +- Zip/testsuite/CMakeLists.txt | 3 +-- 12 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Data/SQLite/testsuite/CMakeLists.txt b/Data/SQLite/testsuite/CMakeLists.txt index 536c8742d..57463122a 100644 --- a/Data/SQLite/testsuite/CMakeLists.txt +++ b/Data/SQLite/testsuite/CMakeLists.txt @@ -18,4 +18,4 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoDataSQLite PocoData PocoFoundation CppUnit ) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoDataSQLite PocoData PocoFoundation CppUnit ) diff --git a/Data/testsuite/CMakeLists.txt b/Data/testsuite/CMakeLists.txt index b20cff408..acb3d1313 100644 --- a/Data/testsuite/CMakeLists.txt +++ b/Data/testsuite/CMakeLists.txt @@ -23,4 +23,4 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS OFF add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoData PocoUtil PocoXML PocoFoundation CppUnit) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoData PocoUtil PocoXML PocoFoundation CppUnit) diff --git a/JSON/testsuite/CMakeLists.txt b/JSON/testsuite/CMakeLists.txt index 7ef42b406..e5899d562 100644 --- a/JSON/testsuite/CMakeLists.txt +++ b/JSON/testsuite/CMakeLists.txt @@ -18,7 +18,7 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoJSON PocoFoundation CppUnit ) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoJSON PocoFoundation CppUnit ) # The test is run in the build directory. So the test data is copied there too add_custom_command(TARGET ${TESTUNIT} POST_BUILD diff --git a/MongoDB/testsuite/CMakeLists.txt b/MongoDB/testsuite/CMakeLists.txt index d65c57f61..c4a4293d3 100644 --- a/MongoDB/testsuite/CMakeLists.txt +++ b/MongoDB/testsuite/CMakeLists.txt @@ -20,4 +20,4 @@ set(TESTUNIT "${LIBNAME}-testrunner") add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoMongoDB PocoFoundation CppUnit ) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoMongoDB PocoFoundation CppUnit ) diff --git a/Net/testsuite/CMakeLists.txt b/Net/testsuite/CMakeLists.txt index 6f3585ccc..ac0458bcb 100644 --- a/Net/testsuite/CMakeLists.txt +++ b/Net/testsuite/CMakeLists.txt @@ -18,4 +18,4 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoNet PocoUtil PocoXML PocoFoundation CppUnit) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoNet PocoUtil PocoXML PocoFoundation CppUnit) diff --git a/NetSSL_OpenSSL/testsuite/CMakeLists.txt b/NetSSL_OpenSSL/testsuite/CMakeLists.txt index 5819a70d9..9f37754be 100644 --- a/NetSSL_OpenSSL/testsuite/CMakeLists.txt +++ b/NetSSL_OpenSSL/testsuite/CMakeLists.txt @@ -18,7 +18,7 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoNetSSL PocoCrypto PocoNet PocoUtil PocoXML PocoFoundation CppUnit) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoNetSSL PocoCrypto PocoNet PocoUtil PocoXML PocoFoundation CppUnit) # The test is run in the build directory. So the test data is copied there too add_custom_command(TARGET ${TESTUNIT} POST_BUILD diff --git a/PageCompiler/CMakeLists.txt b/PageCompiler/CMakeLists.txt index 2f8af6c87..5d0a479e5 100644 --- a/PageCompiler/CMakeLists.txt +++ b/PageCompiler/CMakeLists.txt @@ -10,7 +10,7 @@ set_target_properties( "${POCO_EXENAME}" OUTPUT_NAME cpspc ) -target_link_libraries( "${POCO_EXENAME}" Net Util XML JSON Foundation) +target_link_libraries( "${POCO_EXENAME}" ${CMAKE_THREAD_LIBS_INIT} Net Util XML JSON Foundation) install( TARGETS "${POCO_EXENAME}" EXPORT "${POCO_EXENAME}Targets" diff --git a/PageCompiler/File2Page/CMakeLists.txt b/PageCompiler/File2Page/CMakeLists.txt index cb6d9694b..68c32362b 100644 --- a/PageCompiler/File2Page/CMakeLists.txt +++ b/PageCompiler/File2Page/CMakeLists.txt @@ -10,7 +10,7 @@ set_target_properties( "${POCO_EXENAME}" OUTPUT_NAME f2cpsp ) -target_link_libraries( "${POCO_EXENAME}" Net Util XML JSON Foundation) +target_link_libraries( "${POCO_EXENAME}" ${CMAKE_THREAD_LIBS_INIT} Net Util XML JSON Foundation) install( TARGETS "${POCO_EXENAME}" EXPORT "${POCO_EXENAME}Targets" diff --git a/Redis/testsuite/CMakeLists.txt b/Redis/testsuite/CMakeLists.txt index 2cd26aefe..16d9408a1 100644 --- a/Redis/testsuite/CMakeLists.txt +++ b/Redis/testsuite/CMakeLists.txt @@ -20,4 +20,4 @@ set(TESTUNIT "${LIBNAME}-testrunner") add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoRedis PocoFoundation CppUnit ) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoRedis PocoFoundation CppUnit ) diff --git a/Util/testsuite/CMakeLists.txt b/Util/testsuite/CMakeLists.txt index c65d4565d..1b6d16cbb 100644 --- a/Util/testsuite/CMakeLists.txt +++ b/Util/testsuite/CMakeLists.txt @@ -24,4 +24,4 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoUtil PocoJSON PocoXML PocoFoundation CppUnit) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoUtil PocoJSON PocoXML PocoFoundation CppUnit) diff --git a/XML/testsuite/CMakeLists.txt b/XML/testsuite/CMakeLists.txt index 30b18a41f..318192e60 100644 --- a/XML/testsuite/CMakeLists.txt +++ b/XML/testsuite/CMakeLists.txt @@ -18,4 +18,4 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -target_link_libraries( ${TESTUNIT} PocoXML PocoFoundation CppUnit) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoXML PocoFoundation CppUnit) diff --git a/Zip/testsuite/CMakeLists.txt b/Zip/testsuite/CMakeLists.txt index dd7ee3a7b..317694ce9 100644 --- a/Zip/testsuite/CMakeLists.txt +++ b/Zip/testsuite/CMakeLists.txt @@ -18,8 +18,7 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${TESTUNIT} -all) -#set_target_properties( ${TESTUNIT} PROPERTIES COMPILE_FLAGS ${RELEASE_CXX_FLAGS} ) -target_link_libraries( ${TESTUNIT} PocoZip PocoNet PocoFoundation CppUnit ) +target_link_libraries( ${TESTUNIT} ${CMAKE_THREAD_LIBS_INIT} PocoZip PocoNet PocoFoundation CppUnit ) # The test is run in the build directory. So the test data is copied there too add_custom_command(TARGET ${TESTUNIT} POST_BUILD From ce8e88cc4bc58ccafdd44fe34b771ea6917eb58d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A4us=20Mendel?= Date: Fri, 11 Mar 2016 10:35:23 -0300 Subject: [PATCH 07/10] Fixed ${CMAKE_THREAD_LIBS_INIT} being empty during the compilation The directive checking for the native threads library must be called before everything else. --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 550b2759c..95d9eaedd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,6 +139,9 @@ include(DefinePlatformSpecifc) # Collect the built libraries and include dirs, the will be used to create the PocoConfig.cmake file set(Poco_COMPONENTS "") +# Pthreads/threads support +find_package(Threads REQUIRED) + if (ENABLE_TESTS) add_subdirectory(CppUnit) endif () @@ -169,9 +172,6 @@ add_subdirectory(Net) list(APPEND Poco_COMPONENTS "Net") endif() -# Pthreads/threads support -find_package(Threads REQUIRED) - #NetSSL From c4ca7bb7328b974d738ee4524b4e6c7e69975097 Mon Sep 17 00:00:00 2001 From: Guenter Obiltschnig Date: Fri, 11 Mar 2016 14:46:32 +0100 Subject: [PATCH 08/10] another attempt at #1187: retry mysql_stmt_prepare if server has gone away --- Data/MySQL/src/StatementExecutor.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Data/MySQL/src/StatementExecutor.cpp b/Data/MySQL/src/StatementExecutor.cpp index ad8290797..3f3857d84 100644 --- a/Data/MySQL/src/StatementExecutor.cpp +++ b/Data/MySQL/src/StatementExecutor.cpp @@ -55,8 +55,17 @@ void StatementExecutor::prepare(const std::string& query) return; } - if (mysql_stmt_prepare(_pHandle, query.c_str(), static_cast(query.length())) != 0) - throw StatementException("mysql_stmt_prepare error", _pHandle, query); + int rc = mysql_stmt_prepare(_pHandle, query.c_str(), static_cast(query.length())); + if (rc != 0) + { + // retry if connection lost + int err = mysql_errno(_pSessionHandle); + if (err == 2006 /* CR_SERVER_GONE_ERROR */ || err == 2013 /* CR_SERVER_LOST */) + { + rc = mysql_stmt_prepare(_pHandle, query.c_str(), static_cast(query.length())); + } + } + if (rc != 0) throw StatementException("mysql_stmt_prepare error", _pHandle, query); _query = query; _state = STMT_COMPILED; From ff32e89a278f8e99e0fc651e8825a8a121bb00a9 Mon Sep 17 00:00:00 2001 From: FrancisANDRE Date: Fri, 11 Mar 2016 14:50:05 +0100 Subject: [PATCH 09/10] Restore travis/script/runtests Signed-off-by: FrancisANDRE --- .travis.yml | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index d1057f79e..c57356e7b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,6 +43,8 @@ before_script: - chmod 755 ./travis/Linux/runtests.sh - chmod 755 ./travis/OSX/runtests.sh - if [ "$TRAVIS_OS_NAME" == "linux" ]; then mysql -u root -e 'create database pocotestdb;'; fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then mysql --version; fi + - if [ "$TRAVIS_OS_NAME" == "linux" ]; then postgres --version; fi matrix: fast_finish: true @@ -55,21 +57,24 @@ matrix: - export CC="clang" - export CXX="clang++" - clang++ -x c++ /dev/null -dM -E - - ./configure --everything --omit=Data/ODBC,Data/MySQL,Data/SQLite,Data/PostgreSQL && make -s -j2 && sudo make install && ./travis/OSX/runtests.sh + - ./configure --everything --omit=Data/ODBC,Data/MySQL,Data/SQLite,Data/PostgreSQL && make -s -j2 && sudo make install + - ./travis/OSX/runtests.sh - env: TEST_NAME="Linux gcc 4.6 (make) bundled" compiler: gcc script: - export CC="gcc" - export CXX="g++" - - ./configure --everything && sudo make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything && make -s -j2 + - ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.8 (make) bundled" compiler: gcc script: - export CC="gcc-4.8" - export CXX="g++-4.8" - - ./configure --everything && sudo make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything && make -s -j2 + - ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.6 (make) unbundled" compiler: gcc @@ -77,7 +82,8 @@ matrix: - export CC="gcc" - export CXX="g++" - sudo apt-get install -qq -y libpcre3-dev libssl-dev libexpat1-dev - - ./configure --everything --unbundled && sudo make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything --unbundled && make -s -j2 + - ./travis/Linux/runtests.sh - env: TEST_NAME="Linux gcc 4.8 (make) unbundled" compiler: gcc @@ -85,17 +91,19 @@ matrix: - sudo apt-get install -qq -y libpcre3-dev libssl-dev libexpat1-dev - export CC="gcc-4.8" - export CXX="g++-4.8" - - ./configure --everything --unbundled && sudo make -s -j2 install && ./travis/Linux/runtests.sh + - ./configure --everything --unbundled && make -s -j2 + - ./travis/Linux/runtests.sh - env: TEST_NAME="Linux clang 3.4 (make)" compiler: clang script: - - ./configure --everything --config=Linux-clang && sudo make -s -j2 install && - ./travis/Linux/runtests.sh + - ./configure --everything --config=Linux-clang && make -s -j2 + - ./travis/Linux/runtests.sh - #FIXME the -m64 option bring by the Linux config is not supported by arm-linux-gnueabi-g++ which makes this test failing - - env: TEST_NAME="arm-linux-gnueabi- (make)" + - env: TEST_NAME="Linux arm-linux-gnueabi- (make)" + compiler: gcc script: - - ./configure --omit=Data/ODBC,Data/MySQL,Data/PostgreSQL,Crypto,NetSSL,PageCompiler && sudo make -s -j2 install CROSS_COMPILE=arm-linux-gnueabi- POCO_TARGET_OSARCH=armv7l + - ./configure --omit=Data/ODBC,Data/MySQL,Data/PostgreSQL,Crypto,NetSSL,PageCompiler && make -s -j2 CROSS_COMPILE=arm-linux-gnueabi- POCO_TARGET_OSARCH=armv7l - env: TEST_NAME="Linux gcc 4.6 (CMake)" compiler: gcc @@ -115,7 +123,7 @@ matrix: - export POCO_BASE=`pwd` - mkdir cmake-build && cd cmake-build && cmake -DENABLE_TESTS=ON .. && make -s -j2 && ctest -VV -E Data && cd .. - - env: TEST_NAME="clang 3.4 (CMake)" + - env: TEST_NAME="Linux clang 3.4 (CMake)" compiler: clang script: - source ./travis/ignored.sh @@ -129,7 +137,7 @@ matrix: - source ./travis/ignored.sh - export POCO_BASE=`pwd` - mkdir cmake-build - - cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. && sudo make -s -j2 install && cd .. + - cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. && make -s -j2 && cd .. - env: TEST_NAME="Linux arm-linux-gnueabihf-g++ (CMake)" script: @@ -138,7 +146,7 @@ matrix: - source ./travis/ignored.sh - export POCO_BASE=`pwd` - mkdir cmake-build - - cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. && sudo make -s -j2 install && cd .. + - cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. && make -s -j2 && cd .. # QA jobs for code analytics and metrics From 57bc0cc4cf5f34159cdc3b7ef4231cb6ef4913c5 Mon Sep 17 00:00:00 2001 From: FrancisANDRE Date: Fri, 11 Mar 2016 15:34:12 +0100 Subject: [PATCH 10/10] Display postgres and mysql version. Signed-off-by: FrancisANDRE --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index c57356e7b..21752b173 100644 --- a/.travis.yml +++ b/.travis.yml @@ -131,6 +131,7 @@ matrix: - mkdir cmake-build && cd cmake-build && cmake -DENABLE_TESTS=ON .. && make -s -j2 && ctest -VV -E Data && cd .. - env: TEST_NAME="Linux arm-linux-gnueabi-g++ (CMake)" + compiler: gcc script: - export CC="arm-linux-gnueabi-gcc" - export CXX="arm-linux-gnueabi-g++" @@ -140,6 +141,7 @@ matrix: - cd cmake-build && cmake -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_TESTS=ON .. && make -s -j2 && cd .. - env: TEST_NAME="Linux arm-linux-gnueabihf-g++ (CMake)" + compiler: gcc script: - export CC="arm-linux-gnueabihf-gcc" - export CXX="arm-linux-gnueabihf-g++"