Skip to content

Commit 6ca6898

Browse files
committed
Merge branch 'release/1.2.0'
2 parents 08549ad + 6a02e94 commit 6ca6898

251 files changed

Lines changed: 10950 additions & 37892 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 98 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,98 @@
1-
# suppress compiler/linker output
2-
*.[oa]
3-
*.l[oa]
4-
*.obj
5-
*.gcda
6-
*.gcno
7-
*.gcov
8-
*.lib
9-
[Dd]ebug/
10-
[Rr]elease/
11-
/MSVC_*
12-
.libs/
13-
.coveralls.yml
14-
coverage*/
15-
coverage.info
16-
pre_gen/*
17-
18-
# suppress output of build process and *nix/windows test executables
19-
timing
20-
timing.exe
21-
test
22-
test.exe
23-
mtest
24-
mtest.exe
25-
26-
# ignore eclipse project files
27-
.cproject
28-
.project
29-
30-
# special MS Visual Studio section
31-
# ignore non-compressed browse file (holds information for ClassView, IntelliSense and WizardBar)
32-
*.ncb
33-
# ignore user specific settings
34-
*.user
35-
*.suo
36-
*.userosscache
37-
*.sln.docstates
38-
*.userprefs
39-
# cache/options directory
40-
.vs/
41-
# Backup & report files from converting an old project file to a newer Visual Studio version
42-
_UpgradeReport_Files/
43-
Backup*/
44-
UpgradeLog*.XML
45-
UpgradeLog*.htm
46-
# Visual Studio 6 build log + workspace options file
47-
*.plg
48-
*.opt
49-
# visual studio profiler
50-
*.psess
51-
*.vsp
52-
*.vspx
53-
*.sap
54-
55-
56-
# ignore stuff generated by "make manual" and "make poster"
57-
*.aux
58-
*.dvi
59-
*.idx
60-
*.lof
61-
*.log
62-
*.out
63-
*.toc
64-
*.ilg
65-
*.ind
66-
*.pdf
67-
*.out
68-
tommath.tex
69-
libtommath.pc
70-
71-
# ignore files generated by testme.sh
72-
gcc_errors_*.txt
73-
test_*.txt
74-
75-
*.bak
76-
*.orig
77-
*.asc
78-
*.tar.xz
79-
*.zip
1+
# suppress compiler/linker output
2+
*.[oa]
3+
*.l[oa]
4+
*.obj
5+
*.gcda
6+
*.gcno
7+
*.gcov
8+
*.lib
9+
*.tmp
10+
[Dd]ebug/
11+
[Rr]elease/
12+
/MSVC_*
13+
.libs/
14+
.coveralls.yml
15+
coverage*/
16+
coverage.info
17+
pre_gen/*
18+
19+
# suppress output of build process and *nix/windows test executables
20+
timing
21+
timing.exe
22+
test
23+
test.exe
24+
mtest
25+
mtest.exe
26+
mtest_opponent
27+
mtest_opponent.exe
28+
29+
# ignore eclipse project files
30+
.cproject
31+
.project
32+
33+
# special MS Visual Studio section
34+
# ignore non-compressed browse file (holds information for ClassView, IntelliSense and WizardBar)
35+
*.ncb
36+
# ignore user specific settings
37+
*.user
38+
*.suo
39+
*.userosscache
40+
*.sln.docstates
41+
*.userprefs
42+
# cache/options directory
43+
.vs/
44+
# Backup & report files from converting an old project file to a newer Visual Studio version
45+
_UpgradeReport_Files/
46+
Backup*/
47+
UpgradeLog*.XML
48+
UpgradeLog*.htm
49+
# Visual Studio 6 build log + workspace options file
50+
*.plg
51+
*.opt
52+
# visual studio profiler
53+
*.psess
54+
*.vsp
55+
*.vspx
56+
*.sap
57+
58+
# Linux perf profiler
59+
perf.data
60+
perf.data.old
61+
62+
# ignore mpi.c generated by make
63+
mpi.c
64+
65+
# ignore file generated by make tune
66+
tuning_list
67+
etc/tune
68+
69+
# ignore stuff generated by "make manual" and "make poster"
70+
*.aux
71+
*.dvi
72+
*.idx
73+
*.lof
74+
*.log
75+
*.out
76+
*.toc
77+
*.ilg
78+
*.ind
79+
*.pdf
80+
*.out
81+
tommath.tex
82+
libtommath.pc
83+
84+
# ignore files generated by testme.sh
85+
gcc_errors_*.txt
86+
test_*.txt
87+
88+
.#*
89+
*~
90+
*.bak
91+
*.orig
92+
*.asc
93+
*.tar.xz
94+
*.zip
95+
96+
doc/pics/*.ps
97+
98+
callgraph.txt

.travis.yml

Lines changed: 169 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,180 @@
1-
language: c
1+
#############################################################################
2+
# #
3+
# Travis-ci test-suite for LibTomMath #
4+
# (https://github.com/libtom/libtommath.git) #
5+
# #
6+
#############################################################################
27

3-
install:
4-
- sudo apt-get update -qq
5-
- sudo apt-get install gcc-multilib
8+
# Run the tests based on Ubuntu 16.04
9+
dist: xenial
610

7-
matrix:
8-
fast_finish: true
11+
# Compilation failures are in gcc_errors_*.log
12+
# Failed tests in test_*.log
13+
# Files do not exist in case of success
14+
after_failure:
15+
- cat test_*.log
16+
- cat valgrind_test.log
17+
- cat gcc_errors_*.log
18+
19+
# In case of a Travis error a success might get signaled
20+
# even without any test run. This file also keeps any notes
21+
# printed from the tests which might come handy from time
22+
# to time.
23+
# Valgrid will print its output to stderr which will not show up
24+
# in test_*.log. testme.sh accepts one additional option to
25+
# valgrind and "--valgrind-options=--log-fd=1" sends the output
26+
# of Valgrind to stdout instead.
27+
after_success:
28+
- cat test_*.log
29+
30+
# Tests restricted to the following branches of LTM.
931
branches:
1032
only:
1133
- master
1234
- develop
13-
- /^release\/.*$/
35+
- /^release/
36+
- /^travis/
1437

15-
compiler:
16-
- gcc
17-
- clang
18-
script:
19-
- ./testme.sh --with-cc=$CC ${BUILDOPTIONS}
20-
env:
21-
- |
22-
BUILDOPTIONS="--test-vs-mtest=333333"
23-
- |
24-
BUILDOPTIONS="--test-vs-mtest=333333 --mtest-real-rand"
25-
- |
26-
BUILDOPTIONS="--with-low-mp"
27-
- |
28-
BUILDOPTIONS="--with-m64 --with-m32 --with-mx32"
38+
# Additional installs: Valgrind for memory tests.
39+
install:
40+
- sudo apt-get update -qq
41+
- sudo apt-get install valgrind
42+
- apt-cache search gcc | grep '^gcc-[0-9\.]* '
43+
- apt-cache search clang | grep compiler
2944

30-
after_failure:
31-
- cat test_*.log
32-
- cat gcc_errors_*.log
45+
# The language is C and it will load the respective dependencies
46+
language: c
3347

48+
# The actual workspace. Will run the individual jobs in parallel
49+
# which also means that the jobs must be able to run in parallel.
50+
# Either specify sets which will be combined or, as in this case,
51+
# specify all builds individually. The number of jobs is currently
52+
# restricted to 200 jobs at most.
53+
matrix:
54+
# Will mark as finished if all of the remaining tests are allowed to fail
55+
# or one test has failed already.
56+
fast_finish: true
57+
58+
# The individual jobs
59+
include:
60+
# The environment given to the programs in the build
61+
# We have only one program and the variable $BUILDOPTIONS
62+
# has only the options to that program: testme.sh
63+
64+
# Check source code format
65+
- env: BUILDOPTIONS='--format'
66+
addons:
67+
apt:
68+
packages:
69+
- astyle
70+
71+
# Run always with valgrind (no sanitizer, but debug info)
72+
- env: COMPILE_DEBUG=1 BUILDOPTIONS='--with-cc=gcc-4.9 --with-m64 --with-valgrind'
73+
addons:
74+
apt:
75+
packages:
76+
- gcc-4.9
77+
78+
# GCC for the 32-bit architecture (no valgrind)
79+
- env: BUILDOPTIONS='--with-cc=gcc-5 --with-m32'
80+
addons:
81+
apt:
82+
packages:
83+
- libc6-dev-i386
84+
- gcc-multilib
85+
86+
# clang for the 32-bit architecture (no valgrind)
87+
- env: BUILDOPTIONS='--with-cc=clang-7 --with-m32'
88+
addons:
89+
apt:
90+
packages:
91+
- libc6-dev-i386
92+
- gcc-multilib
93+
94+
# RSA superclass with tests (no sanitizer, but debug info)
95+
- env: COMPILE_DEBUG=1 BUILDOPTIONS='--with-cc=gcc-5 --with-m64 --cflags=-DLTM_NOTHING --cflags=-DSC_RSA_1_WITH_TESTS --with-travis-valgrind'
96+
97+
# Test "autotuning", the automatic evaluation and setting of the Toom-Cook cut-offs.
98+
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_16BIT --with-travis-valgrind --make-option=tune'
99+
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_32BIT --with-travis-valgrind --make-option=tune'
100+
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-travis-valgrind --make-option=tune'
101+
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_16BIT --with-travis-valgrind --make-option=tune'
102+
#- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_32BIT --with-travis-valgrind --make-option=tune'
103+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --with-travis-valgrind --make-option=tune'
104+
105+
# GCC for the x86-64 architecture testing against a different Bigint-implementation
106+
# with 333333 different inputs.
107+
#- env: BUILDOPTIONS='--with-cc=gcc-5 --test-vs-mtest=333333 --with-travis-valgrind'
108+
# ... and a better random source.
109+
- env: BUILDOPTIONS='--with-cc=gcc-5 --test-vs-mtest=333333 --mtest-real-rand --with-travis-valgrind'
110+
111+
# clang for the x86-64 architecture testing against a different Bigint-implementation
112+
# with 333333 different inputs
113+
- env: BUILDOPTIONS='--with-cc=clang-7 --test-vs-mtest=333333 --with-travis-valgrind'
114+
# ... and a better random source.
115+
#- env: BUILDOPTIONS='--with-cc=clang-7 --test-vs-mtest=333333 --mtest-real-rand --with-travis-valgrind'
116+
117+
# GCC for the x64_32 architecture (32-bit longs and 32-bit pointers)
118+
# TODO: Probably not possible to run anything in x32 in Travis
119+
# but needs to be checked to be sure.
120+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-mx32'
121+
addons:
122+
apt:
123+
packages:
124+
- libc6-dev-x32
125+
- gcc-multilib
126+
127+
# GCC for the x86-64 architecture (64-bit longs and 64-bit pointers)
128+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --with-m64 --with-travis-valgrind'
129+
- env: BUILDOPTIONS='--with-cc=gcc-4.7 --with-m64 --with-travis-valgrind'
130+
addons:
131+
apt:
132+
packages:
133+
- gcc-4.7
134+
- env: BUILDOPTIONS='--with-cc=gcc-4.8 --with-m64 --with-travis-valgrind'
135+
addons:
136+
apt:
137+
packages:
138+
- gcc-4.8
139+
140+
# clang for x86-64 architecture (64-bit longs and 64-bit pointers)
141+
- env: SANITIZER=1 CONV_WARNINGS=relaxed BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-travis-valgrind'
142+
- env: SANITIZER=1 CONV_WARNINGS=strict BUILDOPTIONS='--with-cc=clang-7 --with-m64 --with-travis-valgrind'
143+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-6.0 --with-m64 --with-travis-valgrind'
144+
addons:
145+
apt:
146+
packages:
147+
- clang-6.0
148+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-5.0 --with-m64 --with-travis-valgrind'
149+
addons:
150+
apt:
151+
packages:
152+
- clang-5.0
153+
- env: BUILDOPTIONS='--with-cc=clang-4.0 --with-m64 --with-travis-valgrind'
154+
addons:
155+
apt:
156+
packages:
157+
- clang-4.0
158+
159+
# GCC for the x86-64 architecture with restricted limb sizes
160+
# formerly started with the option "--with-low-mp" to testme.sh
161+
# but testing all three in one run took to long and timed out.
162+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_16BIT --with-travis-valgrind'
163+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=gcc-5 --cflags=-DMP_32BIT --with-travis-valgrind'
164+
165+
# clang for the x86-64 architecture with restricted limb sizes
166+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_16BIT --with-travis-valgrind'
167+
- env: SANITIZER=1 BUILDOPTIONS='--with-cc=clang-7 --cflags=-DMP_32BIT --with-travis-valgrind'
168+
169+
# Notifications go to
170+
# An email address is also possible.
34171
notifications:
35172
irc: "chat.freenode.net#libtom-notifications"
173+
174+
# The actual script the jobs run.
175+
# Because of a default timeout of 10 minutes it was necessary to use
176+
# a Travis tool to extend that timeout to 40 minutes. 50 minutes
177+
# seem to be the max and 20 the default if travis_wait is called without
178+
# any options.
179+
script:
180+
- ./testme.sh ${BUILDOPTIONS}

0 commit comments

Comments
 (0)