1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
#!/bin/bash
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
###########################################################################
set -eo pipefail
./buildconf
if [ "$T" = "coverage" ]; then
./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-code-coverage --enable-werror --with-libssh2
make
make TFLAGS=-n test-nonflaky
make "TFLAGS=-n -e" test-nonflaky
tests="1 200 300 500 700 800 900 1000 1100 1200 1302 1400 1502 3000"
make "TFLAGS=-n -t $tests" test-nonflaky
coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -i src -e lib -e tests -e docs -b $PWD/src
coveralls --gcov /usr/bin/gcov-8 --gcov-options '\-lp' -e src -i lib -e tests -e docs -b $PWD/lib
fi
if [ "$T" = "torture" ]; then
./configure --enable-debug --disable-shared --disable-threaded-resolver --enable-code-coverage --enable-werror --with-libssh2
make
make TFLAGS=-n test-nonflaky
make "TFLAGS=-n -e" test-nonflaky
tests="1 200 300 500 700 800 900 1000 1100 1200 1302 1400 1502 3000"
make "TFLAGS=-n --shallow=40 -t $tests" test-nonflaky
fi
if [ "$T" = "debug" ]; then
./configure --enable-debug --enable-werror $C
make
make examples
if [ -z $NOTESTS ]; then
make test-nonflaky
fi
fi
if [ "$T" = "debug-wolfssl" ]; then
./configure --enable-debug --enable-werror $C
make
make "TFLAGS=-n !313" test-nonflaky
fi
if [ "$T" = "debug-mesalink" ]; then
./configure --enable-debug --enable-werror $C
make
make "TFLAGS=-n !313 !3001" test-nonflaky
fi
if [ "$T" = "novalgrind" ]; then
./configure --enable-werror $C
make
make examples
make TFLAGS=-n test-nonflaky
fi
if [ "$T" = "normal" ]; then
if [ $TRAVIS_OS_NAME = linux ]; then
# Remove system curl to make sure we don't rely on it.
# Only done on Linux since we're not permitted to on mac.
sudo rm -f /usr/bin/curl
fi
./configure --enable-warnings --enable-werror $C
make
make examples
if [ -z $NOTESTS ]; then
make test-nonflaky
fi
if [ -n "$CHECKSRC" ]; then
make checksrc
fi
fi
if [ "$T" = "tidy" ]; then
./configure --enable-warnings --enable-werror $C
make
make tidy
fi
if [ "$T" = "iconv" ]; then
source scripts/travis/iconv-env.sh
./configure --enable-debug --enable-werror $C
make
make examples
make test-nonflaky
fi
if [ "$T" = "cmake" ]; then
cmake -H. -Bbuild -DCURL_WERROR=ON $C
cmake --build build
env TFLAGS="!1139" cmake --build build --target test-nonflaky
fi
if [ "$T" = "distcheck" ]; then
# find BOM markers and exit if we do
! git grep `printf '\xef\xbb\xbf'`
./configure
make
./maketgz 99.98.97
# verify in-tree build - and install it
tar xf curl-99.98.97.tar.gz
cd curl-99.98.97
./configure --prefix=$HOME/temp
make
make TFLAGS=1 test
make install
# basic check of the installed files
cd ..
bash scripts/installcheck.sh $HOME/temp
rm -rf curl-99.98.97
# verify out-of-tree build
tar xf curl-99.98.97.tar.gz
touch curl-99.98.97/docs/{cmdline-opts,libcurl}/Makefile.inc
mkdir build
cd build
../curl-99.98.97/configure
make
make TFLAGS='-p 1 1139' test
# verify cmake build
cd ..
rm -rf curl-99.98.97
tar xf curl-99.98.97.tar.gz
cd curl-99.98.97
mkdir build
cd build
cmake ..
make
cd ../..
fi
if [ "$T" = "fuzzer" ]; then
# Download the fuzzer to a temporary folder
./tests/fuzz/download_fuzzer.sh /tmp/curl_fuzzer
export CURLSRC=$PWD
# Run the mainline fuzzer test
pushd /tmp/curl_fuzzer
./mainline.sh ${CURLSRC}
popd
fi
if [ "$T" = "scan-build" ]; then
scan-build ./configure --enable-debug --enable-werror $C
scan-build --status-bugs make
scan-build --status-bugs make examples
fi
|