1#!/bin/bash 2# Script run in the travis CI 3set -ex 4 5if [ "x$CPPUTEST_HOME" = "x" ] ; then 6 export CPPUTEST_HOME=$TRAVIS_BUILD_DIR 7fi 8 9if [ "x$BUILD" = "xautotools" ]; then 10 autoreconf -i .. 11 ../configure 12 make tdd 13fi 14 15if [ "x$BUILD" = "xmakefileworker" ]; then 16 make -C $CPPUTEST_HOME -f Makefile_using_MakefileWorker test_all 17fi 18 19if [ "x$BUILD" = "xcmake" ]; then 20 BUILD_ARGS=("-DWERROR=ON") 21 22 if [ -n "$CPP_STD" ]; then 23 BUILD_ARGS+=("-DCMAKE_CXX_STANDARD=$CPP_STD") 24 fi 25 26 cmake --version 27 cmake "${BUILD_ARGS[@]}" .. 28 make 29 ctest -V 30fi 31 32if [ "x$BUILD" = "xautotools_gtest" ]; then 33 autoreconf -i .. 34 ../configure 35 make check_gtest 36fi 37 38if [ "x$BUILD" = "xcmake_gtest" ]; then 39 pwd 40 wget https://github.com/google/googletest/archive/release-1.6.0.zip -O gtest-1.6.0.zip && unzip gtest-1.6.0.zip; 41 wget https://github.com/google/googlemock/archive/release-1.6.0.zip -O gmock-1.6.0.zip && unzip gmock-1.6.0.zip; 42 unzip gtest-1.6.0.zip -d $TRAVIS_BUILD_DIR 43 unzip gmock-1.6.0.zip -d $TRAVIS_BUILD_DIR 44 cd $TRAVIS_BUILD_DIR 45 mv googletest-release-1.6.0 googlemock-release-1.6.0/gtest 46 cd googlemock-release-1.6.0 47 autoreconf -i; ./configure CXXFLAGS=-DGTEST_USE_OWN_TR1_TUPLE=1 && make 48 cd - 49 export GMOCK_HOME=$TRAVIS_BUILD_DIR/googlemock-release-1.6.0 50 export GTEST_HOME=$TRAVIS_BUILD_DIR/googlemock-release-1.6.0/gtest 51 cmake . -DGMOCK=ON 52 make 53 ctest -V 54fi 55 56if [ "x$BUILD" = "xtest_report" ]; then 57 autoreconf -i .. 58 ../configure 59 make check 60 ./CppUTestTests -ojunit 61 ./CppUTestExtTests -ojunit 62 cp ../scripts/generate_junit_report_ant.xml . 63 ant -f generate_junit_report_ant.xml 64fi 65 66if [ "x$BUILD" = "xcmake_coverage" ]; then 67 pip install --user cpp-coveralls gcovr 68 69 cmake .. -DCMAKE_BUILD_TYPE=Debug -DC++11=ON -DCOVERAGE=ON -DLONGLONG=ON 70 make 71 ctest 72 73 coveralls -b . -r .. -i "src" -i "include" --gcov-options="-lbc" || true 74fi 75 76if [ "x$BUILD" = "xautotools_cmake_install_test" ]; then 77 autoreconf -i .. 78 ../configure 79 rm -rf install_autotools 80 mkdir -p install_autotools 81 make DESTDIR=install_autotools install 82 83 cmake .. 84 rm -rf install_cmake 85 mkdir -p install_cmake 86 make DESTDIR=install_cmake install 87 88 # Hack: autotools cannot make CMake package. We cached and copied them. Here we check they are still the same 89 for cmakefile in CppUTestConfig.cmake CppUTestConfigVersion.cmake CppUTestTargets-relwithdebinfo.cmake CppUTestTargets.cmake; do 90 cat install_autotools/usr/local/lib/CppUTest/cmake/$cmakefile 91 cat install_cmake/usr/local/lib/CppUTest/cmake/$cmakefile 92 diff -Bw install_autotools/usr/local/lib/CppUTest/cmake/$cmakefile install_cmake/usr/local/lib/CppUTest/cmake/$cmakefile || exit 1 93 done 94 95 export INSTALL_DIFF=`diff -rwBq install_autotools install_cmake -X CppUTestGeneratedConfig.h -X libCppUTest.a -X libCppUTestExt.a` 96 if [ "x$INSTALL_DIFF" != "x" ]; then 97 echo "FAILED: CMake install and Autotools install is not the same!\n" 98 echo "Difference\n" 99 echo "-------------------------------\n" 100 echo "$INSTALL_DIFF" 101 echo "-------------------------------\n" 102 exit 1; 103 fi 104fi 105 106if [ "x$BUILD" = "xdocker_ubuntu_autotools" ]; then 107 $CPPUTEST_HOME/scripts/create_docker_images_and_containers ubuntu 108 docker start -i cpputest_ubuntu 109fi 110 111if [ "x$BUILD" = "xdocker_ubuntu_dos" ]; then 112 $CPPUTEST_HOME/scripts/create_docker_images_and_containers dos 113 docker start -i cpputest_dos 114fi 115 116if [ "x$BUILD" = "xmake_dos" ]; then 117 if [ ! -d watcom ]; then 118 git clone https://github.com/cpputest/watcom-compiler.git watcom 119 fi 120 export PATH=$PATH:$PWD/watcom/binl 121 export WATCOM=$PWD/watcom 122 export CC=wcl 123 export CXX=wcl 124 $CC --version 125 make -f $CPPUTEST_HOME/platforms/Dos/Makefile clean 126 make -f $CPPUTEST_HOME/platforms/Dos/Makefile 127 $CPPUTEST_HOME/platforms/Dos/alltests.sh 128fi 129 130if [ "x$BUILD" = "xextensive_check" ]; then 131 autoreconf -i .. 132 ../configure 133 make check_all 134fi 135 136if [ "x$BUILD" = "xautotools_dist" ]; then 137 autoreconf -i .. 138 ../configure 139 140 if [ "x$TRAVIS_OS_NAME" = "xosx" ]; then 141 COPYFILE_DISABLE=1 make dist VERSION=latest 142 COPYFILE_DISABLE=1 make dist-zip VERSION=latest 143 else 144 make dist VERSION=latest 145 make dist-zip VERSION=latest 146 fi 147fi 148 149if [ "x$BUILD" = "xautotools_install_and_test_examples" ]; then 150 autoreconf -i .. 151 ../configure 152 153 make tdd 154 sudo make install 155 make -C $CPPUTEST_HOME/examples -f $CPPUTEST_HOME/examples/Makefile_ExamplesWithCppUTestInstalled.mk 156fi 157 158if [ "x$BUILD" = "xvc_windows" ]; then 159 export PATH=$MSBUILD_PATH:$PATH 160 cmake .. 161 MSBuild.exe ALL_BUILD.vcxproj 162 ./tests/CppUTest/CppUTestTests.exe 163 ./tests/CppUTestExt/CppUTestExtTests.exe 164fi 165 166if [ "x$BUILD" = "xcmake_windows" ]; then 167 choco install make 168 BUILD_ARGS=("-DWERROR=ON") 169 170 if [ -n "$CPP_STD" ]; then 171 BUILD_ARGS+=("-DCMAKE_CXX_STANDARD=$CPP_STD") 172 fi 173 174 cmake --version 175 cmake -G 'Unix Makefiles' "${BUILD_ARGS[@]}" .. 176 make 177 ctest -V 178fi 179