From d0d68d08f4be9360c5fbeedb2edd08b8e0e8d75e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Wed, 9 Jul 2014 12:37:59 -0700 Subject: [PATCH] fix automated headless testing on travis --- .gitignore | 1 + .travis.yml | 11 ++++++--- Makefile | 4 --- bin/build-shaders.js | 12 +++++---- llmr.gyp | 8 +++--- scripts/deploy_results.sh | 12 +++++++++ scripts/flags.sh | 31 ++++++++++++++++++++++++ scripts/run_tests.sh | 8 +++--- scripts/setup_travis.sh | 39 ++---------------------------- setup-libraries.sh | 14 +++++++++++ src/map/map.cpp | 13 ---------- test/fixtures/styles/0.actual.png | Bin 9451 -> 0 bytes test/fixtures/styles/1.actual.png | Bin 31356 -> 0 bytes 13 files changed, 85 insertions(+), 68 deletions(-) create mode 100755 scripts/deploy_results.sh create mode 100644 scripts/flags.sh delete mode 100644 test/fixtures/styles/0.actual.png delete mode 100644 test/fixtures/styles/1.actual.png diff --git a/.gitignore b/.gitignore index e62b74b4a..7c565ffc1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store *.xcodeproj *.o +*.actual.png /node_modules /mapnik-packaging /macosx/build diff --git a/.travis.yml b/.travis.yml index d88fa71e8..dddd096c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,8 @@ env: - secure: "Cbvap9ubVKgjPe3hUhI6JGeDZzBXHpOG9RaYKh+SdoIPhKnlJiNOYm1egomi+e4uqJInlFKuVHTw7Ng9Cun6Zm0jIxpkSchv1GpsR7hmB3UGnGed19Dw8121FwuUaktN+4YnbVlsyd+u8EHD3+h58t4eELrLrZolM4rS7DL6caA=" before_install: -- source ./scripts/setup_travis.sh +- ./scripts/setup_travis.sh +- source ./scripts/flags.sh install: - make setup @@ -25,8 +26,12 @@ before_script: - rm -rf mapnik-packaging/out/packages script: -- make linux BUILDTYPE=${BUILDTYPE} -- make run-tests BUILDTYPE=${BUILDTYPE} +- make linux -j4 BUILDTYPE=${BUILDTYPE} +- make test -j4 BUILDTYPE=${BUILDTYPE} +- ./scripts/run_tests.sh + +after_script: +- ./scripts/deploy_results.sh notifications: hipchat: diff --git a/Makefile b/Makefile index d7f6f37c4..217132150 100644 --- a/Makefile +++ b/Makefile @@ -27,10 +27,6 @@ build/test/Makefile: src common config.gypi test/test.gyp test: build/test/Makefile $(MAKE) -C build/test BUILDTYPE=$(BUILDTYPE) V=$(V) test -# Runs all test cases -run-tests: test - BUILDTYPE=$(BUILDTYPE) ./scripts/run_tests.sh - test/%: build/test/Makefile $(MAKE) -C build/test BUILDTYPE=$(BUILDTYPE) V=$(V) $* (cd build/$(BUILDTYPE) && exec ./test_$*) diff --git a/bin/build-shaders.js b/bin/build-shaders.js index b5072c370..9679521e6 100755 --- a/bin/build-shaders.js +++ b/bin/build-shaders.js @@ -117,12 +117,14 @@ module.exports = function(shader_type, prefix, suffix) { code += '\n};\n'; code += suffix + '\n'; - var file_path = path.join(process.argv[2], 'include/llmr/shader/shaders.hpp'); - mkdirp.sync(path.dirname(file_path)); - fs.writeFileSync(file_path, header); - var header_path = path.join(process.argv[2], 'src/shader/shaders_' + shader_type + '.cpp'); + var header_path = path.join(process.argv[2], 'include/llmr/shader/shaders.hpp'); mkdirp.sync(path.dirname(header_path)); - fs.writeFileSync(header_path, code); + fs.writeFileSync(header_path, header); + console.warn('wrote file ' + header_path); + var file_path = path.join(process.argv[2], 'src/shader/shaders_' + shader_type + '.cpp'); + mkdirp.sync(path.dirname(file_path)); + fs.writeFileSync(file_path, code); + console.warn('wrote file ' + file_path); }; diff --git a/llmr.gyp b/llmr.gyp index ad92da645..9468a5b5c 100644 --- a/llmr.gyp +++ b/llmr.gyp @@ -15,9 +15,9 @@ 'gcc and thread->clang for + # some limited coverage + if [[ ${BUILDTYPE} == "Debug" ]]; then + if [[ ${CXX} == "g++" ]]; then + export CXXFLAGS="-fsanitize=address ${CXXFLAGS}" + export CFLAGS="-fsanitize=address ${CFLAGS}" + export LDFLAGS="-fsanitize=address ${LDFLAGS}" + elif [[ ${CXX} == "clang++" ]]; then + export CXXFLAGS="-fsanitize=thread -fPIC ${CXXFLAGS}" + export CFLAGS="-fsanitize=thread ${CFLAGS}" + export LDFLAGS="-fsanitize=thread -pie ${LDFLAGS}" + fi + fi +fi + +# turn off a few warnings +export CXXFLAGS="-Wno-unknown-warning-option -Wno-unused-local-typedefs -Wno-unknown-pragmas ${CXXFLAGS}"; diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index 3d0c0bdd9..be65356ba 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -3,8 +3,10 @@ set -e set -o pipefail -cd build/$BUILDTYPE +BUILDTYPE="${BUILDTYPE:-Release}" -for TEST in test_* ; do - ./$TEST +cd build/${BUILDTYPE} + +for TEST in ./test_* ; do + ${TEST} done diff --git a/scripts/setup_travis.sh b/scripts/setup_travis.sh index 3b819ea81..128f6bbf7 100755 --- a/scripts/setup_travis.sh +++ b/scripts/setup_travis.sh @@ -3,15 +3,6 @@ set -e set -o pipefail -# enable testing locally (not on travis) -if [[ "${TRAVIS_OS_NAME:-false}" == false ]]; then - if [[ $(uname -s) == "Darwin" ]]; then - TRAVIS_OS_NAME="osx" - elif [[ $(uname -s) == "Linux" ]]; then - TRAVIS_OS_NAME="linux" - fi -fi - if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then if [[ `lsb_release -r` =~ "12.04" ]]; then @@ -19,36 +10,10 @@ if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then fi sudo apt-get update -y sudo apt-get -y install gcc-4.8 g++-4.8 - sudo apt-get -y install git build-essential zlib1g-dev automake libtool xutils-dev make cmake pkg-config + sudo apt-get -y install git build-essential zlib1g-dev automake libtool xutils-dev make cmake pkg-config python-pip sudo apt-get -y install libxi-dev libglu1-mesa-dev x11proto-randr-dev x11proto-xext-dev libxrandr-dev x11proto-xf86vidmode-dev libxxf86vm-dev libxcursor-dev - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start - - # use g++ that supports c++11 - if [[ ${CXX} == "g++" ]]; then - export CXX="g++-4.8" ; - fi - - # If building in debug then turn on sanitizers. - # They should both work with latest g++/clang++ - # but it's not worth a standalone matrix so here - # we just test address->gcc and thread->clang for - # some limited coverage - if [[ ${BUILDTYPE} == "Debug" ]]; then - if [[ ${CXX} == "g++" ]]; then - export CXXFLAGS="-fsanitize=address ${CXXFLAGS}" - export CFLAGS="-fsanitize=address ${CFLAGS}" - export LDFLAGS="-fsanitize=address ${LDFLAGS}" - elif [[ ${CXX} == "clang++" ]]; then - export CXXFLAGS="-fsanitize=thread -fPIC ${CXXFLAGS}" - export CFLAGS="-fsanitize=thread ${CFLAGS}" - export LDFLAGS="-fsanitize=thread -pie ${LDFLAGS}" - fi - fi + sudo pip install awscli elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then brew install autoconf automake libtool makedepend cmake pkg-config node git fi - -# turn off a few warnings -export CXXFLAGS="-Wno-unknown-warning-option -Wno-unused-local-typedefs -Wno-unknown-pragmas ${CXXFLAGS}"; diff --git a/setup-libraries.sh b/setup-libraries.sh index 3642d91ff..aa0360d98 100755 --- a/setup-libraries.sh +++ b/setup-libraries.sh @@ -96,6 +96,13 @@ cd ../../ elif [ ${UNAME} = 'Linux' ]; then +if [ ! -z "${TRAVIS:-}" ]; then + if aws s3 cp s3://mapbox-gl-testing/dependencies/build-cpp11-libstdcpp-gcc-x86_64-linux.tar.gz ./out/ ; then + rm -rf out/build-cpp11-libstdcpp-gcc-x86_64-linux + tar -xzf out/build-cpp11-libstdcpp-gcc-x86_64-linux.tar.gz + fi +fi + source Linux.sh if [ ! -f out/build-cpp11-libstdcpp-gcc-x86_64-linux/lib/libglfw3.a ] ; then ./scripts/build_glfw.sh ; fi if [ ! -f out/build-cpp11-libstdcpp-gcc-x86_64-linux/lib/libpng.a ] ; then ./scripts/build_png.sh ; fi @@ -104,6 +111,13 @@ source Linux.sh if [ ! -f out/build-cpp11-libstdcpp-gcc-x86_64-linux/lib/libcurl.a ] ; then ./scripts/build_curl.sh ; fi if [ ! -f out/build-cpp11-libstdcpp-gcc-x86_64-linux/lib/libboost_regex.a ] ; then ./scripts/build_boost.sh --with-regex ; fi +if [ ! -z "${TRAVIS:-}" ]; then + if ! tar --compare -zf out/build-cpp11-libstdcpp-gcc-x86_64-linux.tar.gz ; then + tar -zcf out/build-cpp11-libstdcpp-gcc-x86_64-linux.tar.gz out/build-cpp11-libstdcpp-gcc-x86_64-linux + aws s3 cp out/build-cpp11-libstdcpp-gcc-x86_64-linux.tar.gz s3://mapbox-gl-testing/dependencies/ + fi +fi + cd ../../ ./configure \ --pkg-config-root=`pwd`/mapnik-packaging/osx/out/build-cpp11-libstdcpp-gcc-x86_64-linux/lib/pkgconfig \ diff --git a/src/map/map.cpp b/src/map/map.cpp index b04f88a54..516e8fe03 100644 --- a/src/map/map.cpp +++ b/src/map/map.cpp @@ -491,15 +491,6 @@ void Map::render() { painter.drawClippingMasks(style->getActiveSources()); -#if defined(DEBUG) - // Generate debug information - size_t source_id = 0; - for (const std::shared_ptr &source : style->getActiveSources()) { - size_t count = source->getTileCount(); - debug.emplace_back(util::sprintf<100>("source %d: %d\n", source_id, count)); - source_id++; - } -#endif // Actually render the layers if (debug::renderTree) { std::cout << "{" << std::endl; indent++; } renderLayers(style->layers); @@ -515,10 +506,6 @@ void Map::render() { painter.renderMatte(); -#if defined(DEBUG) - painter.renderDebugText(debug); -#endif - // Schedule another rerender when we definitely need a next frame. if (transform.needsTransition() || style->hasTransitions()) { update(); diff --git a/test/fixtures/styles/0.actual.png b/test/fixtures/styles/0.actual.png deleted file mode 100644 index 34e984cce3761739310cf5a73d1c259a95053c34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9451 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 d(39@)YOvR!RUPZ^!M937