dist: trusty
language: cpp
os:
  - linux
compiler:
  - clang
  - gcc
sudo: required
addons:
  apt:
    sources:
    - ubuntu-toolchain-r-test
    - llvm-toolchain-trusty-5.0
    packages:
    - g++
    - clang
    - cmake
    - cmake-data
    - libssl-dev 
    - gdb
before_install:
# - $CC --version 
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then  if [ "$CXX" = "g++" ]; then export CXX="g++" CC="gcc" EXTRA_LDFLAGS="-fuse-ld=gold"; else export CXX="clang++" CC="clang"; fi; fi
# - $CC --version
  - cmake --version
before_script:
  # First build external lib
  - ./ci/build_picotls.sh
  - sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6'
script:
  # Now build picotls examples and test
  - echo $CC
  - echo $CXX
  - if [ "$CC" == "clang" ]; then scan-build cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=/usr/share/clang/scan-build/ccc-analyzer .; fi
  - if [ "$CC" == "clang" ]; then scan-build make; fi
  - cmake .
  - if [ "$CC" == "gcc" ]; then make clean; fi
  - make
  - ulimit -c unlimited -S
  - ./picoquic_ct -n && RESULT=$?
  # Early out if the program exited successfully
  - if [[ ${RESULT} == 0 ]]; then exit 0; fi;
  - for i in $(find ./ -maxdepth 1 -name 'core*' -print); do gdb $(pwd)/picoquic_ct core* -ex "thread apply all bt" -ex "set pagination 0" -batch; done;