summaryrefslogtreecommitdiff
path: root/travis.sh
diff options
context:
space:
mode:
authorJoshua Haberman <jhaberman@gmail.com>2019-04-24 17:36:17 +0000
committerJoshua Haberman <jhaberman@gmail.com>2019-04-24 17:36:17 +0000
commit985145ca16e4926420416e3a5f41f3e6e736c590 (patch)
tree5828b42ca49dbf656b651770714375620a720639 /travis.sh
parentd6e466e943f4454396a3d1f8001e927bfb740213 (diff)
Fixed amalgamation and CMake build.
Diffstat (limited to 'travis.sh')
-rwxr-xr-xtravis.sh196
1 files changed, 0 insertions, 196 deletions
diff --git a/travis.sh b/travis.sh
deleted file mode 100755
index e8323df..0000000
--- a/travis.sh
+++ /dev/null
@@ -1,196 +0,0 @@
-#!/bin/bash
-
-install_protoc() {
- sudo apt-get install protobuf-compiler
- protoc --version || true
-}
-
-# Bare build: no dependencies installed, no JIT enabled.
-bare_install() {
- :
-}
-bare_script() {
- make -j12 tests
- make test
-}
-
-# Bare JIT build: no dependencies installed, but JIT enabled.
-barejit_install() {
- :
-}
-barejit_script() {
- make -j12 tests WITH_JIT=yes
- make test
-}
-
-# Build with strict warnings.
-warnings_install() {
- :
-}
-warnings_script() {
- make -j12 default WITH_MAX_WARNINGS=yes
- make -j12 tests WITH_MAX_WARNINGS=yes
- make test
-}
-
-# A 32-bit build. Can only test the core because any dependencies
-# need to be available as 32-bit libs also, which gets hairy fast.
-# Can't enable the JIT because it only supports x64.
-core32_install() {
- sudo apt-get update -qq
- sudo apt-get install libc6-dev-i386 g++-multilib
-}
-core32_script() {
- make -j12 tests USER_CPPFLAGS="$USER_CPPFLAGS -m32"
- make test
-}
-
-# A build of Lua and running of Lua tests.
-lua_install() {
- sudo apt-get update -qq
- sudo apt-get install lua5.2 liblua5.2-dev
-}
-lua_script() {
- make -j12 testlua USER_CPPFLAGS="$USER_CPPFLAGS `pkg-config lua5.2 --cflags`"
-}
-
-# Test that generated files don't need to be regenerated.
-#
-# We would include the Ragel output here too, but we can't really guarantee
-# that its output will be stable for multiple versions of the tool, and we
-# don't want the test to be brittle.
-genfiles_install() {
- sudo apt-get update -qq
- sudo apt-get install lua5.2 liblua5.2-dev
-
- # Need a recent version of protoc to compile proto3 files.
- # .travis.yml will add this to our path
- mkdir protoc
- cd protoc
- wget https://github.com/google/protobuf/releases/download/v3.0.0-beta-2/protoc-3.0.0-beta-2-linux-x86_64.zip
- unzip protoc-3.0.0-beta-2-linux-x86_64.zip
- cd ..
-}
-genfiles_script() {
- protoc --version || true
-
- # Avoid regenerating descriptor.pb, since its output can vary based on the
- # version of protoc.
- touch upb/descriptor/descriptor.pb
-
- make -j12 genfiles USER_CPPFLAGS="$USER_CPPFLAGS `pkg-config lua5.2 --cflags`"
- # Will fail if any differences were observed.
- git diff --exit-code
-}
-
-# Tests the ndebug build.
-ndebug_install() {
- sudo apt-get update -qq
- sudo apt-get install lua5.2 liblua5.2-dev libprotobuf-dev
- install_protoc
-}
-ndebug_script() {
- # Override of USER_CPPFLAGS removes -UNDEBUG.
- export USER_CPPFLAGS="`pkg-config lua5.2 --cflags` -g -fomit-frame-pointer"
- make -j12 tests testlua WITH_JIT=yes
- make test
-}
-
-# Tests the amalgamated build (this ensures that the different .c files
-# don't have symbols or macros that conflict with each other.
-amalgamated_install() {
- :
-}
-amalgamated_script() {
- # Override of USER_CPPFLAGS removes -UNDEBUG.
- export USER_CPPFLAGS="-UNDEBUG"
- make amalgamated
-}
-
-# A run that executes with coverage support and uploads to coveralls.io
-coverage_install() {
- sudo apt-get update -qq
- sudo apt-get install libprotobuf-dev lua5.2 liblua5.2-dev
- install_protoc
- sudo pip install cpp-coveralls
-}
-coverage_script() {
- export USER_CPPFLAGS="--coverage -O0 `pkg-config lua5.2 --cflags`"
- make -j12 tests testlua WITH_JIT=yes
- make test
-}
-coverage_after_success() {
- coveralls --exclude dynasm --exclude tests --exclude upb/bindings/linux --gcov-options '\-lp'
-}
-
-set -e
-set -x
-
-if [ "$1" == "local" ]; then
- run_config() {
- make clean
- echo
- echo "travis.sh: TESTING CONFIGURATION $1 ==============================="
- echo
- UPB_TRAVIS_BUILD=$1 ./travis.sh script
- }
- # Run all configurations serially locally to test before pushing a pull
- # request.
- export CC=gcc
- export CXX=g++
- run_config "bare"
- run_config "barejit"
- run_config "core32"
- run_config "lua"
- run_config "ndebug"
- run_config "genfiles"
- run_config "amalgamated"
- exit
-fi
-
-$CC --version
-$CXX --version
-
-# Uncomment to enable uploading failure logs to S3.
-# UPLOAD_TO_S3=true
-
-if [ "$1" == "after_failure" ] && [ "$UPLOAD_TO_S3" == "true" ]; then
- # Upload failing tree to S3.
- curl -sL https://raw.githubusercontent.com/travis-ci/artifacts/master/install | bash
- PATH="$PATH:$HOME/bin"
- export ARTIFACTS_BUCKET=haberman-upb-travis-artifacts2
- ARCHIVE=failing-artifacts.tar.gz
- tar zcvf $ARCHIVE $(git ls-files -o)
- artifacts upload $ARCHIVE
- exit
-fi
-
-if [ "$1" == "after_success" ] && [ "$UPB_TRAVIS_BUILD" != "coverage" ]; then
- # after_success is only used for coverage.
- exit
-fi
-
-if [ "$CC" != "gcc" ] && [ "$UPB_TRAVIS_BUILD" == "coverage" ]; then
- # coverage build only works for GCC.
- exit
-fi
-
-# Enable asserts and ref debugging (though some configurations override this).
-export USER_CPPFLAGS="-UNDEBUG -DUPB_DEBUG_REFS -DUPB_THREAD_UNSAFE -DUPB_DEBUG_TABLE -g"
-
-if [ "$CC" == "gcc" ]; then
- # For the GCC build test loading JIT code via SO. For the Clang build test
- # loading it in the normal way.
- export USER_CPPFLAGS="$USER_CPPFLAGS -DUPB_JIT_LOAD_SO"
-fi
-
-# TODO(haberman): Test UPB_DUMP_BYTECODE? We don't right now because it is so
-# noisy.
-
-# Enable verbose build.
-export Q=
-
-# Make any compiler warning fail the build.
-export UPB_FAIL_WARNINGS=true
-
-eval ${UPB_TRAVIS_BUILD}_${1}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback