Skip to content

Commit

Permalink
Merge branch 'release/1.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
sjaeckel committed Oct 22, 2019
2 parents 08549ad + 6a02e94 commit 6ca6898
Show file tree
Hide file tree
Showing 251 changed files with 10,950 additions and 37,892 deletions.
177 changes: 98 additions & 79 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,79 +1,98 @@
# suppress compiler/linker output
*.[oa]
*.l[oa]
*.obj
*.gcda
*.gcno
*.gcov
*.lib
[Dd]ebug/
[Rr]elease/
/MSVC_*
.libs/
.coveralls.yml
coverage*/
coverage.info
pre_gen/*

# suppress output of build process and *nix/windows test executables
timing
timing.exe
test
test.exe
mtest
mtest.exe

# ignore eclipse project files
.cproject
.project

# special MS Visual Studio section
# ignore non-compressed browse file (holds information for ClassView, IntelliSense and WizardBar)
*.ncb
# ignore user specific settings
*.user
*.suo
*.userosscache
*.sln.docstates
*.userprefs
# cache/options directory
.vs/
# Backup & report files from converting an old project file to a newer Visual Studio version
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# Visual Studio 6 build log + workspace options file
*.plg
*.opt
# visual studio profiler
*.psess
*.vsp
*.vspx
*.sap


# ignore stuff generated by "make manual" and "make poster"
*.aux
*.dvi
*.idx
*.lof
*.log
*.out
*.toc
*.ilg
*.ind
*.pdf
*.out
tommath.tex
libtommath.pc

# ignore files generated by testme.sh
gcc_errors_*.txt
test_*.txt

*.bak
*.orig
*.asc
*.tar.xz
*.zip
# suppress compiler/linker output
*.[oa]
*.l[oa]
*.obj
*.gcda
*.gcno
*.gcov
*.lib
*.tmp
[Dd]ebug/
[Rr]elease/
/MSVC_*
.libs/
.coveralls.yml
coverage*/
coverage.info
pre_gen/*

# suppress output of build process and *nix/windows test executables
timing
timing.exe
test
test.exe
mtest
mtest.exe
mtest_opponent
mtest_opponent.exe

# ignore eclipse project files
.cproject
.project

# special MS Visual Studio section
# ignore non-compressed browse file (holds information for ClassView, IntelliSense and WizardBar)
*.ncb
# ignore user specific settings
*.user
*.suo
*.userosscache
*.sln.docstates
*.userprefs
# cache/options directory
.vs/
# Backup & report files from converting an old project file to a newer Visual Studio version
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# Visual Studio 6 build log + workspace options file
*.plg
*.opt
# visual studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Linux perf profiler
perf.data
perf.data.old

# ignore mpi.c generated by make
mpi.c

# ignore file generated by make tune
tuning_list
etc/tune

# ignore stuff generated by "make manual" and "make poster"
*.aux
*.dvi
*.idx
*.lof
*.log
*.out
*.toc
*.ilg
*.ind
*.pdf
*.out
tommath.tex
libtommath.pc

# ignore files generated by testme.sh
gcc_errors_*.txt
test_*.txt

.#*
*~
*.bak
*.orig
*.asc
*.tar.xz
*.zip

doc/pics/*.ps

callgraph.txt
193 changes: 169 additions & 24 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,180 @@
language: c
#############################################################################
# #
# Travis-ci test-suite for LibTomMath #
# (https://github.com/libtom/libtommath.git) #
# #
#############################################################################

install:
- sudo apt-get update -qq
- sudo apt-get install gcc-multilib
# Run the tests based on Ubuntu 16.04
dist: xenial

matrix:
fast_finish: true
# 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 valgrind_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\/.*$/
- /^release/
- /^travis/

compiler:
- gcc
- clang
script:
- ./testme.sh --with-cc=$CC ${BUILDOPTIONS}
env:
- |
BUILDOPTIONS="--test-vs-mtest=333333"
- |
BUILDOPTIONS="--test-vs-mtest=333333 --mtest-real-rand"
- |
BUILDOPTIONS="--with-low-mp"
- |
BUILDOPTIONS="--with-m64 --with-m32 --with-mx32"
# 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

after_failure:
- cat test_*.log
- cat gcc_errors_*.log
# 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

# RSA superclass with tests (no sanitizer, but debug info)
- env: COMPILE_DEBUG=1 BUILDOPTIONS='--with-cc=gcc-5 --with-m64 --cflags=-DLTM_NOTHING --cflags=-DSC_RSA_1_WITH_TESTS --with-travis-valgrind'

# Test "autotuning", the automatic evaluation and setting of the Toom-Cook cut-offs.
#- 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_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_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_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}
Loading

0 comments on commit 6ca6898

Please sign in to comment.