Edit

kc3-lang/libtommath/.travis.yml

Branch :

  • Show log

    Commit

  • Author : Steffen Jaeckel
    Date : 2019-05-21 15:20:05
    Hash : 2555884f
    Message : really last one - reorder once more so all long-running jobs start in the beginning [skip ci]

  • .travis.yml
  • #############################################################################
    #                                                                           #
    #      Travis-ci test-suite for LibTomMath                                  #
    #      (https://github.com/libtom/libtommath.git)                           #
    #                                                                           #
    #############################################################################
    
    # Run the tests based on Ubuntu 16.04
    dist: xenial
    
    # Compilation failures are in gcc_errors_*.log
    # Failed tests in test_*.log
    # Files do not exist in case of success
    after_failure:
      - cat test_*.log
      - cat gcc_errors_*.log
    
    # In case of a Travis error a success might get signaled
    # even without any test run. This file also keeps any notes
    # printed from the tests which might come handy from time
    # to time.
    # Valgrid will print its output to stderr which will not show up
    # in test_*.log. testme.sh accepts one additional option to
    # valgrind and "--valgrind-options=--log-fd=1" sends the output
    # of Valgrind to stdout instead.
    after_success:
      - cat test_*.log
    
    # Tests restricted to the following branches of LTM.
    branches:
      only:
        - master
        - develop
        - /^release/
        - /^travis/
    
    # Additional installs: Valgrind for memory tests.
    install:
      - sudo apt-get update -qq
      - sudo apt-get install valgrind
      - apt-cache search gcc | grep '^gcc-[0-9\.]* '
      - apt-cache search clang | grep compiler
    
    # The language is C and it will load the respective dependencies
    language: c
    
    # The actual workspace. Will run the individual jobs in parallel
    # which also means that the jobs must be able to run in parallel.
    # Either specify sets which will be combined or, as in this case,
    # specify all builds individually. The number of jobs is currently
    # restricted to 200 jobs at most.
    matrix:
      # Will mark as finished if all of the remaining tests are allowed to fail
      # or one test has failed already.
      fast_finish: true
    
      # The individual jobs
      include:
        # The environment given to the programs in the build
        # We have only one program and the variable $BUILDOPTIONS
        # has only the options to that program: testme.sh
    
        # Check source code format
        - env: BUILDOPTIONS='--format'
          addons:
            apt:
              packages:
                - astyle
    
        # Run always with valgrind (no sanitizer, but debug info)
        - env: COMPILE_DEBUG=1 BUILDOPTIONS='--with-cc=gcc-4.9 --with-m64 --with-valgrind'
          addons:
            apt:
              packages:
                - gcc-4.9
    
        # GCC for the 32-bit architecture (no valgrind)
        - env: BUILDOPTIONS='--with-cc=gcc-5 --with-m32'
          addons:
            apt:
              packages:
                - libc6-dev-i386
                - gcc-multilib
    
        # clang for the 32-bit architecture (no valgrind)
        - env: BUILDOPTIONS='--with-cc=clang-7 --with-m32'
          addons:
            apt:
              packages:
                - libc6-dev-i386
                - gcc-multilib
    
        # Test "autotuning", the automatic evaluation and setting of the Toom-Cook cut-offs.
        #- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_8BIT  --with-travis-valgrind --make-option=tune'
        #- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_16BIT --with-travis-valgrind --make-option=tune'
        #- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_32BIT --with-travis-valgrind --make-option=tune'
        #- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-travis-valgrind --make-option=tune'
        #- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_8BIT  --with-travis-valgrind --make-option=tune'
        #- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_16BIT --with-travis-valgrind --make-option=tune'
        #- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_32BIT --with-travis-valgrind --make-option=tune'
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --with-travis-valgrind --make-option=tune'
    
        # GCC for the x86-64 architecture testing against a different Bigint-implementation
        # with 333333 different inputs.
        #- env: BUILDOPTIONS='--with-cc=gcc-5 --test-vs-mtest=333333 --with-travis-valgrind'
        # ...  and a better random source.
        - env: BUILDOPTIONS='--with-cc=gcc-5 --test-vs-mtest=333333 --mtest-real-rand --with-travis-valgrind'
    
        # clang for the x86-64 architecture testing against a different Bigint-implementation
        # with 333333 different inputs
        - env: BUILDOPTIONS='--with-cc=clang-7 --test-vs-mtest=333333 --with-travis-valgrind'
        # ...  and a better random source.
        #- env: BUILDOPTIONS='--with-cc=clang-7 --test-vs-mtest=333333 --mtest-real-rand --with-travis-valgrind'
    
        # GCC for the x64_32 architecture (32-bit longs and 32-bit pointers)
        # TODO: Probably not possible to run anything in x32 in Travis
        #       but needs to be checked to be sure.
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-mx32'
          addons:
            apt:
              packages:
                - libc6-dev-x32
                - gcc-multilib
    
        # GCC for the x86-64 architecture (64-bit longs and 64-bit pointers)
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-m64 --with-travis-valgrind'
        - env: BUILDOPTIONS='--with-cc=gcc-4.7 --with-m64 --with-travis-valgrind'
          addons:
            apt:
              packages:
                - gcc-4.7
        - env: BUILDOPTIONS='--with-cc=gcc-4.8 --with-m64 --with-travis-valgrind'
          addons:
            apt:
              packages:
                - gcc-4.8
    
        # clang for x86-64 architecture (64-bit longs and 64-bit pointers)
        - env: SANITIZER=1 CONV_WARNINGS=relaxed BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-travis-valgrind'
        - env: SANITIZER=1 CONV_WARNINGS=strict BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-travis-valgrind'
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-6.0 --with-m64 --with-travis-valgrind'
          addons:
            apt:
              packages:
                - clang-6.0
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-5.0 --with-m64 --with-travis-valgrind'
          addons:
            apt:
              packages:
                - clang-5.0
        - env: BUILDOPTIONS='--with-cc=clang-4.0 --with-m64 --with-travis-valgrind'
          addons:
            apt:
              packages:
                - clang-4.0
    
        # GCC for the x86-64 architecture with restricted limb sizes
        # formerly started with the option "--with-low-mp" to testme.sh
        # but testing all three in one run took to long and timed out.
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_8BIT  --with-travis-valgrind'
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_16BIT --with-travis-valgrind'
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_32BIT --with-travis-valgrind'
    
        # clang for the x86-64 architecture with restricted limb sizes
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_8BIT  --with-travis-valgrind'
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_16BIT --with-travis-valgrind'
        - env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_32BIT --with-travis-valgrind'
    
    # Notifications go to
    # An email address is also possible.
    notifications:
      irc: "chat.freenode.net#libtom-notifications"
    
    # The actual script the jobs run.
    # Because of a default timeout of 10 minutes it was necessary to use
    # a Travis tool to extend that timeout to 40 minutes. 50 minutes
    # seem to be the max and 20 the default if travis_wait is called without
    # any options.
    script:
      - ./testme.sh ${BUILDOPTIONS}