Merge branch 'poco-1.9.1' of https://github.com/pocoproject/poco.git into poco-1.9.1

This commit is contained in:
Francis ANDRE 2018-03-09 15:54:11 +01:00
commit 499c573445
6 changed files with 108 additions and 11 deletions

2
.gitmodules vendored
View File

@ -1,6 +1,8 @@
[submodule "openssl"] [submodule "openssl"]
path = openssl path = openssl
url = https://github.com/pocoproject/openssl url = https://github.com/pocoproject/openssl
branch = develop
[submodule "gradle"] [submodule "gradle"]
path = gradle path = gradle
url = https://github.com/pocoproject/gradle url = https://github.com/pocoproject/gradle

View File

@ -21,7 +21,7 @@ services:
addons: addons:
postgresql: "9.4" postgresql: "9.4"
notifications: notifications:
slack: pocoproject:ItIUZvs8aJGyPdaKxIKMnS1t slack: pocoproject:ItIUZvs8aJGyPdaKxIKMnS1t
@ -33,12 +33,105 @@ before_script:
matrix: matrix:
include: include:
- env: TEST_NAME="android API level 19"
language: android
jdk: openjdk8
android:
components:
- tools
- platform-tools
- tools
- build-tools-23.0.3
- extra-android-support
- extra-android-m2repository
- android-19
- android-24
- sys-img-armeabi-v7a-android-24
# Unfortunaly travis use the old android sdk tool instead of using the new sdkmanager.
# In this deprecated android sdk tool there is no ndk-bundle or cmake package!
licenses:
- '.+'
before_install:
- export TERM=dumb
- sudo apt-get update -qq
# I don't understand why redis and mongodb are not installed although services added above !
- sudo apt-get install -qq -y mongodb-server redis-server
- /usr/bin/redis-server &
- sudo /usr/bin/mongod --config /etc/mongodb.conf &
- touch ~/.android/repositories.cfg
- mkdir -p /usr/local/android-sdk/licenses
- echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > /usr/local/android-sdk/licenses/android-sdk-license
- echo -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> /usr/local/android-sdk/licenses/android-sdk-license
# Install NDK and cmake via android sdkmanager.
- /usr/local/android-sdk/tools/bin/sdkmanager --update > /dev/null
- /usr/local/android-sdk/tools/bin/sdkmanager "emulator" "ndk-bundle" "cmake;3.6.4111459" > /dev/null
before_script:
- export TERM=dumb
- export _NO_CHECK_SIGNATURE=true
- echo no | /usr/local/android-sdk/tools/bin/avdmanager create avd -n test -k "system-images;android-24;default;armeabi-v7a"
- /usr/local/android-sdk/emulator/emulator -avd test -no-audio -no-window -dns-server 8.8.8.8 &
- android-wait-for-emulator
- /usr/local/android-sdk/platform-tools/adb shell input keyevent 82 &
script:
# Mandatory cmake parameter to set API level and platform for the android toolchain:
# /usr/local/android-sdk/cmake/3.6.4111459/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/usr/local/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-22
# See also in /usr/local/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake
# Using the ninja build command. Is much faster then make build command.
- mkdir cmake-build && cd cmake-build && /usr/local/android-sdk/cmake/3.6.4111459/bin/cmake -G'Android Gradle - Ninja' -DANDROID_ABI=armeabi-v7a -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/usr/local/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-19 -DCMAKE_MAKE_PROGRAM=/usr/local/android-sdk/cmake/3.6.4111459/bin/ninja -DANDROID_STL="c++_static" -DANDROID_CPP_FEATURES="exceptions rtti" -DENABLE_TESTS=ON -DENABLE_LONG_RUNNING_TESTS=OFF -DOLD_REDIS_VERSION=ON .. && /usr/local/android-sdk/cmake/3.6.4111459/bin/cmake --build . --target all && /usr/local/android-sdk/cmake/3.6.4111459/bin/ctest --output-on-failure
- env: TEST_NAME="android API level 24"
language: android
jdk: openjdk8
android:
components:
- tools
- platform-tools
- tools
- build-tools-23.0.3
- extra-android-support
- extra-android-m2repository
- android-24
- sys-img-armeabi-v7a-android-24
# Unfortunaly travis use the old android sdk tool instead of using the new sdkmanager.
# In this deprecated android sdk tool there is no ndk-bundle or cmake package!
licenses:
- '.+'
before_install:
- export TERM=dumb
- sudo apt-get update -qq
# I don't understand why redis and mongodb are not installed although services added above !
- sudo apt-get install -qq -y mongodb-server redis-server
- /usr/bin/redis-server &
- sudo /usr/bin/mongod --config /etc/mongodb.conf &
- touch ~/.android/repositories.cfg
- mkdir -p /usr/local/android-sdk/licenses
- echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > /usr/local/android-sdk/licenses/android-sdk-license
- echo -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> /usr/local/android-sdk/licenses/android-sdk-license
# Install NDK and cmake via android sdkmanager.
- /usr/local/android-sdk/tools/bin/sdkmanager --update > /dev/null
- /usr/local/android-sdk/tools/bin/sdkmanager "emulator" "ndk-bundle" "cmake;3.6.4111459" > /dev/null
before_script:
- export TERM=dumb
- export _NO_CHECK_SIGNATURE=true
- echo no | /usr/local/android-sdk/tools/bin/avdmanager create avd -n test -k "system-images;android-24;default;armeabi-v7a"
- /usr/local/android-sdk/emulator/emulator -avd test -no-audio -no-window -dns-server 8.8.8.8 &
- android-wait-for-emulator
- /usr/local/android-sdk/platform-tools/adb shell input keyevent 82 &
script:
# Mandatory cmake parameter to set API level and platform for the android toolchain:
# /usr/local/android-sdk/cmake/3.6.4111459/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/usr/local/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-22
# See also in /usr/local/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake
# Using the ninja build command. Is much faster then make build command.
- mkdir cmake-build && cd cmake-build && /usr/local/android-sdk/cmake/3.6.4111459/bin/cmake -G'Android Gradle - Ninja' -DANDROID_ABI=armeabi-v7a -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/usr/local/android-sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-24 -DCMAKE_MAKE_PROGRAM=/usr/local/android-sdk/cmake/3.6.4111459/bin/ninja -DANDROID_STL="c++_static" -DANDROID_CPP_FEATURES="exceptions rtti" -DENABLE_TESTS=ON -DENABLE_LONG_RUNNING_TESTS=OFF -DOLD_REDIS_VERSION=ON .. && /usr/local/android-sdk/cmake/3.6.4111459/bin/cmake --build . --target all && /usr/local/android-sdk/cmake/3.6.4111459/bin/ctest --output-on-failure
- env: TEST_NAME="gcc (make)" - env: TEST_NAME="gcc (make)"
compiler: gcc compiler: gcc
script: script:
- ./configure --everything --omit=PDF && make -s -j2 - ./configure --everything --omit=PDF && make -s -j2
- ./travis/runtests.sh - ./travis/runtests.sh
- env: TEST_NAME="clang (make)" - env: TEST_NAME="clang (make)"
compiler: clang compiler: clang
script: script:
@ -98,7 +191,7 @@ matrix:
script: script:
- . env.sh && mkdoc all && mkrel all - . env.sh && mkdoc all && mkrel all
- ls -l releases - ls -l releases
# QA jobs for code analytics and metrics # QA jobs for code analytics and metrics
# static code analysis with cppcheck (we can add --enable=all later) # static code analysis with cppcheck (we can add --enable=all later)
- env: TEST_NAME="cppcheck" - env: TEST_NAME="cppcheck"
@ -107,15 +200,15 @@ matrix:
# search for TODO within source tree # search for TODO within source tree
- env: TEST_NAME="TODO" - env: TEST_NAME="TODO"
script: grep -r TODO * script: grep -r TODO *
# search for FIXME within source tree # search for FIXME within source tree
- env: TEST_NAME="FIXME" - env: TEST_NAME="FIXME"
script: grep -r FIXME * script: grep -r FIXME *
# search for HACK within source tree # search for HACK within source tree
- env: TEST_NAME="HACK" - env: TEST_NAME="HACK"
script: grep -r HACK * script: grep -r HACK *
# some statistics about the code base # some statistics about the code base
- env: TEST_NAME="sloccount" - env: TEST_NAME="sloccount"
script: sloccount . script: sloccount .

View File

@ -27,7 +27,7 @@ POCO_SOURCES_AUTO_PLAT( TEST_SRCS WINCE
add_executable( ${TESTUNIT} ${TEST_SRCS} ) add_executable( ${TESTUNIT} ${TEST_SRCS} )
if(ANDROID) if(ANDROID)
add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;TestApp" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/${TESTUNIT} -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake) COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/data;${CMAKE_BINARY_DIR}/bin/TestApp" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/${TESTUNIT} -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake)
else() else()
add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND ${TESTUNIT} -all) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND ${TESTUNIT} -all)
set_tests_properties(${LIBNAME} PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=.") # The SharedLibaryTest has to look for shared libraries in the working directory set_tests_properties(${LIBNAME} PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=.") # The SharedLibaryTest has to look for shared libraries in the working directory

View File

@ -204,9 +204,12 @@ CppUnit::Test* ClassLoaderTest::suite()
{ {
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ClassLoaderTest"); CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ClassLoaderTest");
#if (POCO_OS != POCO_OS_ANDROID)
// FIXME exclude from android build temporarly to fix the bug. See issue https://github.com/pocoproject/poco/issues/2209
CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader1); CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader1);
CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader2); CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader2);
CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader3); CppUnit_addTest(pSuite, ClassLoaderTest, testClassLoader3);
#endif
return pSuite; return pSuite;
} }

View File

@ -141,9 +141,12 @@ CppUnit::Test* SharedLibraryTest::suite()
{ {
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("SharedLibraryTest"); CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("SharedLibraryTest");
#if (POCO_OS != POCO_OS_ANDROID)
// FIXME exclude from android build temporarly to fix the bug. See issue https://github.com/pocoproject/poco/issues/2209
CppUnit_addTest(pSuite, SharedLibraryTest, testSharedLibrary1); CppUnit_addTest(pSuite, SharedLibraryTest, testSharedLibrary1);
CppUnit_addTest(pSuite, SharedLibraryTest, testSharedLibrary2); CppUnit_addTest(pSuite, SharedLibraryTest, testSharedLibrary2);
CppUnit_addTest(pSuite, SharedLibraryTest, testSharedLibrary3); CppUnit_addTest(pSuite, SharedLibraryTest, testSharedLibrary3);
#endif
return pSuite; return pSuite;
} }

View File

@ -20,10 +20,6 @@ add_executable( ${TESTUNIT} ${TEST_SRCS} )
if(ANDROID) if(ANDROID)
add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/any.pem;${CMAKE_CURRENT_SOURCE_DIR}/rootcert.pem;${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/${TESTUNIT} -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake) COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} "-DTEST_FILES=${CMAKE_CURRENT_SOURCE_DIR}/any.pem;${CMAKE_CURRENT_SOURCE_DIR}/rootcert.pem;${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml" -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/${TESTUNIT} -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake)
add_custom_command(TARGET ${TESTUNIT} POST_BUILD
COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DFILES="${CMAKE_CURRENT_SOURCE_DIR}/any.pem" -P ${CMAKE_SOURCE_DIR}/cmake/PushOnAndroid.cmake
COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DFILES="${CMAKE_CURRENT_SOURCE_DIR}/rootcert.pem" -P ${CMAKE_SOURCE_DIR}/cmake/PushOnAndroid.cmake
COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DFILES="${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml" -P ${CMAKE_SOURCE_DIR}/cmake/PushOnAndroid.cmake)
else() else()
add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND ${TESTUNIT} -all) add_test(NAME ${LIBNAME} WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND ${TESTUNIT} -all)
# The test is run in the build directory. So the test data is copied there too # The test is run in the build directory. So the test data is copied there too