Skip to content

Commit

Permalink
Merge #502: [0.17 MERGE] Merge up to Core 3832c25
Browse files Browse the repository at this point in the history
634e395 MERGE FIX: Prevent mainnet unit tests from thinking they have signed blocks after custom tests (Gregory Sanders)
c42c823 MERGE FIX: Pegin witness test cleanup (Gregory Sanders)
6c1c652 MERGE FIX: move pegin witness test to beginning to maybe avoid dirtying other tests (Gregory Sanders)
a36ee6c MERGE FIX: Augment IsValidPeginWitness with err string return (Gregory Sanders)
9d9ee3d MERGE FIX: Adapt bitcoin_functional sync to regtest2 (Gregory Sanders)
7c97d6a MERGE FIX: sync up bitcoin_functional (Gregory Sanders)
9494052 MERGE FIX: enable parent chain in fedpeg-based unit tests (Gregory Sanders)
c73e564 MERGE FIX: instantiate consensus.has_parent_chain for all chains (Gregory Sanders)
4f4fe8f MERGE FIX: ConnectTip: ub fix for bench (Gregory Sanders)
80857b3 MERGE FIX: TEST: fixup bitcoin functional (Gregory Sanders)
e0a8aba MERGE FIX: Properly parse sendtomainchain args from -cli (Gregory Sanders)
4202671 MERGE FIX: spelling linter fixes (Gregory Sanders)
0179972 MERGE FIX: fixup travis bitcoin_functional run (Gregory Sanders)
90f7d18 MERGE-FIX: functional tests (Gregory Sanders)
51584e7 MERGE-FIX: various compilation fixes (Gregory Sanders)
d641c29 travis: Run feature_dbcrash functional tests in cron job (Chun Kuan Lee)
c0d947d tests: Reorder tests and move most of extended tests up to normal tests (Chun Kuan Lee)
cccc362 build: Remove libssl from LDADD unless gui (MarcoFalke)
8e1c13e doc: Document -checklevel levels (Wladimir J. van der Laan)
c1dde3a No longer shutdown after encrypting the wallet (Andrew Chow)
d7637c5 After encrypting the wallet, reload the database environment (Andrew Chow)
5d296ac Add function to close all Db's and reload the databae environment (Andrew Chow)
a769461 Move BerkeleyEnvironment deletion from internal method to callsite (Andrew Chow)
9dcb676 [qa] Use correct python index slices in example test (Suhas Daftuar)
fa8433e qa: Remove unneded import_deterministic_coinbase_privkeys overwrite, add comments (MarcoFalke)
e413c2d qa: Fix codespell error and have lint-spelling error instead of warn (MarcoFalke)
14b29a7 Fix reference to lint-locale-dependence.sh (Hennadii Stepanov)
e221368 utils: Convert fs error messages from multibyte to utf-8 (Chun Kuan Lee)
e4ef4b4 [build] remove #ifdef ENABLE_WALLET from interfaces/node (John Newbery)
fa6ab8a rpc: Return more specific reject reason for submitblock (MarcoFalke)
b16ab9a Report progress in ReplayBlocks while rolling forward (João Barbosa)
b6a2533 Remove redundant BIP174 test from rpc_psbt.json (araspitzu)
fac9539 qa: Run all tests even if wallet is not compiled (MarcoFalke)
faa669c qa: Premine to deterministic address with -disablewallet (MarcoFalke)
d38bf91 Call unicode API on Windows (Chun Kuan Lee)
d0b1cee doc: `-help-debug` implies `-help` (Wladimir J. van der Laan)
9a565a8 Pass export privkey DER compression flag correctly (liuyujun)
fae3fbd logging: Replace LogPrint macros with regular functions (MarcoFalke)
e0664f7 build: Move interfaces/* to libbitcoin_server (Wladimir J. van der Laan)
23db954 utils: run commands using utf-8 string on Windows (Chun Kuan Lee)
7d038dc [build] remove ENABLE_WALLET ifdef from httprpc.cpp (John Newbery)
3076556 [build] Move dummy wallet into its own .cpp file. (John Newbery)
bb6ca65 gui: get special folder in unicode (Chun Kuan Lee)
1c5d225 Drop boost::scoped_array (Chun Kuan Lee)
e7a7245 Scripts and tools: increased timeout downloading (Emanuele Cisbani)
a679109 Speed up knapsack_solver_test by not recreating wallet 100 times. (lucash.dev@gmail.com)
893628b Drop minor GetSerializeSize template (Ben Woosley)
da74db0 Drop unused GetType() from CSizeComputer (Ben Woosley)
b9babc8 utils: Use _wfopen and _wreopen on Windows (Chun Kuan Lee)
fa7e969 qt: Also log and print messages or questions like bitcoind (MarcoFalke)
dd031e3 noui: Move handlers to header file (MarcoFalke)
fa263bc qa: Fix silent merge conflict in wallet_importmulti (MarcoFalke)
98ea64c Let wallet importmulti RPC accept labels for standard scriptPubKeys (Russell Yanofsky)
faa1a74 tx pool: Use class methods to hide raw map iterator impl details (MarcoFalke)
d9d7957 Preserve a format of RPC command definitions (Kostiantyn Stepaniuk)
9256f7d build: avoid getifaddrs when unavailable (Cory Fields)
fa462b3 wallet: Set encrypted_batch to nullptr after delete. Avoid double free in the case of NDEBUG. (practicalswift)
faea5bf doc: release notes for -enablebip61 default change (MarcoFalke)
fa14b54 p2p: Disable BIP 61 by default (MarcoFalke)
7177e09 depends: Remove unused Qt 4 dependencies (Chun Kuan Lee)
dc287c9 Squashed 'src/univalue/' changes from 51d3ab34ba..7890db99d6 (MarcoFalke)
946107a Only log "Using PATH_TO_bitcoin.conf" message on startup if conf file exists. (Alexander Leishman)
bc8aa2b don't translate command line options (Michael Polzer)
fac3e22 qa: Read reject reasons from debug log, not p2p messages (MarcoFalke)
b2f49bd Integration of property based testing into Bitcoin Core (Chris Stewart)
65a449f Explain when reindex-chainstate can be used instead of reindex (Sjors Provoost)
e351a16 Remove reference to deprecated RPC call in build instructions (Michael Goldstein)
a6f16f1 Docs: Add disable-wallet section to OSX build instructions (Michael Goldstein)
f7e9e70 [rpc] Remove deprecated sigrawtransaction rpc method. (John Newbery)
90c8340 [RPC] Remove warning about wallet addresses in createmultisig() (John Newbery)
df905e3 [rpc] Remove deprecated validateaddress usage. (John Newbery)
fab5267 doxygen: Remove misleading checkpoints comment in CMainParams (MarcoFalke)
2b5d6f8 Replace duplcate reference with reference to reference doc (Pieter Wuille)
89709db Adjust TODO link (Pieter Wuille)
9254ffc Add descriptor reference documentation (Pieter Wuille)
ed2332a test: Add test for config file parsing errors (MarcoFalke)
a66c0f7 util: Report parse errors in configuration file (Wladimir J. van der Laan)
f8a81f7 lint: Add spell check linter (codespell) (practicalswift)
ada3562 Fix typos reported by codespell (practicalswift)
e9a78e9 doc: Change documentation for =0 for non-boolean options (Wladimir J. van der Laan)
341f7c7 macOS fix: Check for correct version of flake8 to avoid spurious warnings. The brew installed flake8 version is Python 2 based and does not work. (practicalswift)
908a559 macOS fix: Add excludes for checks added in the newer shellcheck version installed by brew (practicalswift)
ec4d57b macOS fix: Work around empty (sub)expression error when using BSD grep (practicalswift)
b57d7d9 macOS fix: Avoid mapfile due to ancient version of bash shipped with macOS (practicalswift)
e4a79b4 appveyor: Use clcache to speed up build (Chun Kuan Lee)
f34c8c4 Make objects in range declarations immutable by default. Avoid unnecessary copying of objects in range declarations. (practicalswift)
ee3a494 gui: Favor macOS show / hide action in dock menu (João Barbosa)
e8c4a1e Add new regtest ports in doc following #10825 ports reattributions (Antoine Riard)
8ecaee1 Increase signal to noise in appveyor build output by reducing the MSVC warning count from 12 to 4 (12 is assuming the changes in #14086 are also implemented). (practicalswift)
5d62dcf lint: Make sure we read the command line inputs using utf-8 decoding in python (Chun Kuan Lee)
c7f7fa4 Trivial: update clang thread-safety docs url (Ben Woosley)
68bfc0b doc: correct GetDifficulty doc after #13288 (fanquake)
83d5305 Switch nPrevNodeCount to vNodesSize. (Patrick Strateman)
fb97437 added note that control port must be enabled and how to do that in torrc config file (Jordan Baczuk)
8dfc2f3 Test rpc_help.py failed: Check whether ZMQ is enabled or not. (Kvaciral)
190bf62 scripted-diff: Small locking rename (Russell Yanofsky)
9c4dc59 Use LOCK macros for non-recursive locks (Russell Yanofsky)
1382913 Make LOCK, LOCK2, TRY_LOCK work with CWaitableCriticalSection (Russell Yanofsky)
ba1f095 MOVEONLY Move AnnotatedMixin declaration (Russell Yanofsky)
41b88e9 Add unit test for DEBUG_LOCKORDER code (Russell Yanofsky)
62b6f0f Add EXCLUSIVE_LOCKS_REQUIRED to CWallet::ListCoins (Russell Yanofsky)
545e85e Add AssertLockHeld assertions in CWallet::ListCoins (Russell Yanofsky)
ca1a093 Add regression test: Don't assert(...) with side effects (practicalswift)
4c3c9c3 Don't assert(...) with side effects (practicalswift)
b602c9b tests: Add missing locking annotations and locks (practicalswift)
f055995 blockfilter: Omit empty scripts from filter contents. (Jim Posen)
75ea00f Remove unused fsbridge::freopen (practicalswift)
cceedbc Don't close old debug log file handle prematurely when trying to re-open (on SIGHUP) (practicalswift)
fa782a3 qa: Use named args in some tests (MarcoFalke)
b4d3309 scripted-diff: Use named arguments in feature_block (MarcoFalke)
749ba35 scripted-diff: Pass node into p2p_segwit acceptance tests (MarcoFalke)
8550f1f Add README.md to linux release tarballs (Hennadii Stepanov)
c516c3a [contrib] Support ARM and RISC-V symbol check (Chun Kuan Lee)
c9c32e6 [wallet] Kill accounts (John Newbery)
1e29379 Fix potential deadlock (practicalswift)
d58dc9f Add lock annotations (cs_args) (practicalswift)
db5e9d3 Add missing locks (cs_args) (practicalswift)
0e534d4 Fix incorrect Doxygen comments (practicalswift)
fa309dc validation: Log FormatStateMessage on ConnectBlock error in ConnectTip (MarcoFalke)
fa58777 scripted-diff: Remove unused first argument to addUnchecked (MarcoFalke)
fe5c497 tx pool: Use the entry's hash instead of the one passed to addUnchecked (MarcoFalke)
ddd395f Mark CTxMemPoolEntry members that should not be modified const (MarcoFalke)
6af6d9b test: Add tests for RPC help (João Barbosa)
1d9aa00 Explicitly initialize prevector _union (Ben Woosley)
b193d5a Removes the Boost case_conv.hpp dependency. (251)
7a208d9 Implements custom tolower and toupper functions. (251)
e2ba043 Implements ParseNetwork unit test. (251)
1661a47 add unicode compatible file_lock for Windows (Chun Kuan Lee)
1cc5897 tests: Fix accidental trunction from int to bool (practicalswift)
61fe653 fix walletcreatefundedpsbt deriv paths, add test (Gregory Sanders)
fae0400 qa: Add some actual witness in rpc_rawtransaction (MarcoFalke)
917353c Make SignPSBTInput operate on a private SignatureData object (Pieter Wuille)
cad5dd2 Pass HD path data through SignatureData (Pieter Wuille)
03a9958 Implement key origin lookup in CWallet (Pieter Wuille)
3b01efa [MOVEONLY] Move ParseHDKeypath to utilstrencodings (Pieter Wuille)
81e1dd5 Generalize PublicOnlySigningProvider into HidingSigningProvider (Pieter Wuille)
84f1f1b Make SigningProvider expose key origin information (Pieter Wuille)
611ab30 Introduce KeyOriginInfo for fingerprint + path (Pieter Wuille)
16e288a test padding non micro timestamps (John Newbery)
995dd89 [Tests] Make combine_logs.py handle multi-line logs (John Newbery)
4c530e0 travis: add  CXXFLAGS=-Wnopsabi at ARM job (Chun Kuan Lee)
dd777f3 Remove unused variable (practicalswift)
cdf4089 Remove redundant assignments (dead stores) (practicalswift)
1ac3c98 Mark single-argument constructors "explicit" (practicalswift)
bb08423 [doc] Add release notes for 'account' API removal (John Newbery)
1f4b865 [wallet] Re-sort wallet RPC commands (John Newbery)
f0dc850 [wallet] Remove wallet account RPCs (John Newbery)
c410f41 [tests] Remove wallet accounts test (John Newbery)
c55c5f2 fix missing differentiation between UNIT and FUNCTIONAL tests in travis build (Julian Fleischer)
4143269 use export LC_ALL=C.UTF-8 (Julian Fleischer)
728c82d make script exit if a command fails (Julian Fleischer)
506890b move remaining travis build steps into individual files (Julian Fleischer)
272306e number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer)
519e273 move lint stage up to resemble travis build ui (Julian Fleischer)
86d34f0 abort script in END_FOLD on non-zero exit code (Julian Fleischer)
4f2f88c move script sections info individual files and comply with shellcheck (Julian Fleischer)
a9910d8 contrib: Adjust output to current test format (Akio Nakamura)
5778bf9 Report minfeefilter value in getpeerinfo rpc (Anthony Towns)
3842732 test: Add testing of value_ret for SelectCoinsBnB (Ben Woosley)
497e90c Remove default argument to prevector constructor to remove ambiguity (Ben Woosley)
f1640d0 Make IS_TRIVIALLY_CONSTRUCTIBLE consistent on GCC < 5 (Ben Woosley)
fad8afa travis: Run unit tests --with-sanitizers=undefined (MarcoFalke)
0d00fd5 depends: allow CC/CXX to be overridden during configure (Cory Fields)
7d0a8ad Docs: Fix help message typo optiona -> optional (Ben Woosley)
faf4a9b qa: Stop txindex thread before calling destructor (MarcoFalke)
0b16f67 auto generate MSVC project files (Chun Kuan Lee)
254c85b bench: Benchmark GCS filter creation and matching. (Jim Posen)
f33b717 blockfilter: Optimization on compilers with int128 support. (Jim Posen)
97b64d6 blockfilter: Unit test against BIP 158 test vectors. (Jim Posen)
a4afb9c blockfilter: Additional helper methods to compute hash and header. (Jim Posen)
cd09c79 blockfilter: Serialization methods on BlockFilter. (Jim Posen)
c1855f6 blockfilter: Construction of basic block filters. (Jim Posen)
53e7874 blockfilter: Simple test for GCSFilter construction and Match. (Jim Posen)
558c536 blockfilter: Implement GCSFilter Match methods. (Jim Posen)
cf70b55 blockfilter: Implement GCSFilter constructors. (Jim Posen)
c454f0a blockfilter: Declare GCSFilter class for BIP 158 impl. (Jim Posen)
9b622dc streams: Unit tests for BitStreamReader and BitStreamWriter. (Jim Posen)
fe943f9 streams: Implement BitStreamReader/Writer classes. (Jim Posen)
87f2d9e streams: Unit test for VectorReader class. (Jim Posen)
947133d streams: Create VectorReader stream interface for vectors. (Jim Posen)
737670c Use assert when running from multithreaded code as BOOST_CHECK_* are not thread safe (Jesse Cohen)
9e2de6b Move cs_main locking annotations from .cpp to .h (practicalswift)
9e0a514 Add compile time checking for all cs_main runtime locking assertions (practicalswift)
870bd4c Update functional RBF test to check replaceable flag (dexX7)
820d31f Add "bip125-replaceable" flag to mempool RPCs (dexX7)
03a2d68 Tests: add usage note to check-rpc-mappings.py (Mason Simon)
ddddce0 util: Replace boost::signals2 with std::function (MarcoFalke)
fa6c3de p2p: Clarify control flow in ProcessMessage() (MarcoFalke)
984d72e Return the script type from Solver (Ben Woosley)
23f4343 Add CMerkleTx::IsImmatureCoinBase method (Ben Woosley)
fa3e9f7 qa: Add TestNode::assert_debug_log (MarcoFalke)
00f58f8 rpc: Avoid locking cs_main in some wallet RPC (João Barbosa)
fa74d3d qa: Remove unused deserialization code in msg_version (MarcoFalke)
fa5099c p2p: Remove dead code for nVersion=10300 (MarcoFalke)
8563341 Bugfix: NSIS: Exclude Makefile* from docs (Luke Dashjr)
46f8345 contrib: Support github pull request gitian-build (Chun Kuan Lee)
317f2cb test: Check RPC settxfee errors (João Barbosa)
48618da Add checks for settxfee reasonableness (Anthony Towns)
321159e don't report minversion wallet entry as unknown (Gregory Sanders)
19efc01 Add PSBT documentation (Pieter Wuille)
18c49eb http: Add const modifier to HTTPRequest methods (João Barbosa)
3567b24 test: Add lint to prevent SIGNAL/SLOT connect style (João Barbosa)
f78558f qt: Use new Qt5 connect syntax (João Barbosa)

Pull request description:

Tree-SHA512: 6da8dacc63f7ca6f28ed6aa0143cc65383d9ac17fcad26c17b683397701ba170b3987fa0f246ef8408766975d7b80b62c5ff8a20cfcb78ce54d65b8a620e9e91
  • Loading branch information
stevenroose committed Feb 12, 2019
2 parents 4d70732 + 634e395 commit e51ed82
Show file tree
Hide file tree
Showing 445 changed files with 6,222 additions and 5,129 deletions.
123 changes: 47 additions & 76 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ language: minimal
cache:
ccache: true
directories:
- depends/built
- depends/sdk-sources
- $HOME/.ccache
- depends/built
- depends/sdk-sources
- $HOME/.ccache
stages:
- lint
- test
env:
global:
- MAKEJOBS=-j3
- RUN_TESTS=false
- RUN_UNIT_TESTS=true
- RUN_FUNCTIONAL_TESTS=true
- RUN_BENCH=false # Set to true for any one job that has debug enabled, to quickly check bench is not crashing or hitting assertions
- DOCKER_NAME_TAG=ubuntu:18.04
- LC_ALL=C.UTF-8
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
- CCACHE_SIZE=100M
- CCACHE_TEMPDIR=/tmp/.ccache-temp
Expand All @@ -28,63 +28,50 @@ env:
- WINEDEBUG=fixme-all
- DOCKER_PACKAGES="build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache"
before_install:
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
- BEGIN_FOLD () { echo ""; CURRENT_FOLD_NAME=$1; echo "travis_fold:start:${CURRENT_FOLD_NAME}"; }
- END_FOLD () { RET=$?; echo "travis_fold:end:${CURRENT_FOLD_NAME}"; return $RET; }
- set -o errexit; source .travis/test_03_before_install.sh
install:
- travis_retry docker pull $DOCKER_NAME_TAG
- env | grep -E '^(CCACHE_|WINEDEBUG|LC_ALL|BOOST_TEST_RANDOM|CONFIG_SHELL)' | tee /tmp/env
- if [[ $HOST = *-mingw32 ]]; then DOCKER_ADMIN="--cap-add SYS_ADMIN"; fi
- DOCKER_ID=$(docker run $DOCKER_ADMIN -idt --mount type=bind,src=$TRAVIS_BUILD_DIR,dst=$TRAVIS_BUILD_DIR --mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR -w $TRAVIS_BUILD_DIR --env-file /tmp/env $DOCKER_NAME_TAG)
- DOCKER_EXEC () { docker exec $DOCKER_ID bash -c "cd $PWD && $*"; }
- if [ -n "$DPKG_ADD_ARCH" ]; then DOCKER_EXEC dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
- travis_retry DOCKER_EXEC apt-get update
- travis_retry DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES $DOCKER_PACKAGES
- set -o errexit; source .travis/test_04_install.sh
before_script:
- DOCKER_EXEC echo \> \$HOME/.bitcoin # Make sure default datadir does not exist and is never read by creating a dummy file
- mkdir -p depends/SDKs depends/sdk-sources
- if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
- if [[ $HOST = *-mingw32 ]]; then DOCKER_EXEC update-alternatives --set $HOST-g++ \$\(which $HOST-g++-posix\); fi
- if [ -z "$NO_DEPENDS" ]; then DOCKER_EXEC CONFIG_SHELL= make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS; fi
- set -o errexit; source .travis/test_05_before_script.sh
script:
- export TRAVIS_COMMIT_LOG=`git log --format=fuller -1`
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
- if [ -z "$NO_DEPENDS" ]; then DOCKER_EXEC ccache --max-size=$CCACHE_SIZE; fi
- BEGIN_FOLD autogen; test -n "$CONFIG_SHELL" && DOCKER_EXEC "$CONFIG_SHELL" -c "./autogen.sh" || DOCKER_EXEC ./autogen.sh; END_FOLD
- mkdir build && cd build
- BEGIN_FOLD configure; DOCKER_EXEC ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false); END_FOLD
- BEGIN_FOLD distdir; DOCKER_EXEC make distdir VERSION=$HOST; END_FOLD
- cd bitcoin-$HOST
- BEGIN_FOLD configure; DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false); END_FOLD
- BEGIN_FOLD build; DOCKER_EXEC make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && DOCKER_EXEC make $GOAL V=1 ; false ); END_FOLD
- if [ "$RUN_TESTS" = "true" ]; then BEGIN_FOLD unit-tests; DOCKER_EXEC LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1; END_FOLD; fi
- if [ "$RUN_BENCH" = "true" ]; then BEGIN_FOLD bench; DOCKER_EXEC LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib $OUTDIR/bin/bench_bitcoin -scaling=0.001 ; END_FOLD; fi
- if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then extended="--extended --exclude feature_pruning,feature_dbcrash"; fi
- if [ "$RUN_TESTS" = "true" ]; then BEGIN_FOLD functional-tests; DOCKER_EXEC test/functional/test_runner.py --combinedlogslen=4000 --coverage --quiet --failfast ${extended}; END_FOLD; fi
- if [ "$RUN_BITCOIN_TESTS" = "true" ]; then BEGIN_FOLD bitcoin-functional-tests; DOCKER_EXEC test/bitcoin_functional/functional/test_runner.py --combinedlogslen=4000 --coverage --quiet --failfast ${extended}; END_FOLD; fi
- set -o errexit; source .travis/test_06_script.sh
after_script:
- echo $TRAVIS_COMMIT_RANGE
- echo $TRAVIS_COMMIT_LOG
- echo $TRAVIS_COMMIT_RANGE
- echo $TRAVIS_COMMIT_LOG
jobs:
include:
# lint stage
- stage: lint
env:
sudo: false
cache: false
language: python
python: '3.6'
install:
- set -o errexit; source .travis/lint_04_install.sh
before_script:
- set -o errexit; source .travis/lint_05_before_script.sh
script:
- set -o errexit; source .travis/lint_06_script.sh
# ARM
- stage: test
env: >-
HOST=arm-linux-gnueabihf
PACKAGES="g++-arm-linux-gnueabihf"
DEP_OPTS="NO_QT=1"
RUN_UNIT_TESTS=false
RUN_FUNCTIONAL_TESTS=false
GOAL="install"
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1"
# This could be removed once the ABI change warning does not show up by default
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports CXXFLAGS=-Wno-psabi"
# Win32
- stage: test
env: >-
HOST=i686-w64-mingw32
DPKG_ADD_ARCH="i386"
DEP_OPTS="NO_QT=1"
PACKAGES="python3 nsis g++-mingw-w64-i686 wine-binfmt wine32"
RUN_TESTS=true
GOAL="install"
BITCOIN_CONFIG="--enable-reduce-exports"
# Win64
Expand All @@ -93,7 +80,6 @@ jobs:
HOST=x86_64-w64-mingw32
DEP_OPTS="NO_QT=1"
PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64"
RUN_TESTS=true
GOAL="install"
BITCOIN_CONFIG="--enable-reduce-exports"
# 32-bit + dash
Expand All @@ -102,7 +88,6 @@ jobs:
HOST=i686-pc-linux-gnu
PACKAGES="g++-multilib python3-zmq"
DEP_OPTS="NO_QT=1"
RUN_TESTS=true
GOAL="install"
BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++"
CONFIG_SHELL="/bin/dash"
Expand All @@ -112,35 +97,32 @@ jobs:
HOST=x86_64-unknown-linux-gnu
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools protobuf-compiler libdbus-1-dev libharfbuzz-dev libprotobuf-dev"
DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1 ALLOW_HOST_PACKAGES=1"
RUN_TESTS=true
RUN_BENCH=true
GOAL="install"
BITCOIN_CONFIG="--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --enable-debug CXXFLAGS=\"-g0 -O2\""
# x86_64 Linux (Qt5 & system libs)
# x86_64 Linux (no depends, only system libs)
- stage: test
env: >-
HOST=x86_64-unknown-linux-gnu
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
NO_DEPENDS=1
RUN_TESTS=true
GOAL="install"
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER"
# x86_64 Linux w/ Bitcoin functional tests (Qt5 & system libs)
# x86_64 Linux (sanitizers)
- stage: test
env: >-
HOST=x86_64-unknown-linux-gnu
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
PACKAGES="clang python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
NO_DEPENDS=1
RUN_BITCOIN_TESTS=true
RUN_BENCH=true
RUN_FUNCTIONAL_TESTS=false # Disabled for now, can be combined with the other x86_64 linux NO_DEPENDS job when functional tests pass the sanitizers
GOAL="install"
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER"
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER --with-sanitizers=undefined CC=clang CXX=clang++"
# x86_64 Linux, No wallet
- stage: test
env: >-
HOST=x86_64-unknown-linux-gnu
PACKAGES="python3"
DEP_OPTS="NO_WALLET=1"
RUN_TESTS=true
GOAL="install"
BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
# Cross-Mac
Expand All @@ -149,28 +131,17 @@ jobs:
HOST=x86_64-apple-darwin14
PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python3-setuptools-git"
OSX_SDK=10.11
RUN_UNIT_TESTS=false
RUN_FUNCTIONAL_TESTS=false
GOAL="all deploy"
BITCOIN_CONFIG="--enable-gui --enable-reduce-exports --enable-werror"
- stage: lint
env:
sudo: false
cache: false
language: python
python: '3.6'
install:
- travis_retry pip install flake8==3.5.0
before_script:
- git fetch --unshallow
script:
- if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then test/lint/commit-script-check.sh $TRAVIS_COMMIT_RANGE; fi
- test/lint/git-subtree-check.sh src/crypto/ctaes
- test/lint/git-subtree-check.sh src/secp256k1
- test/lint/git-subtree-check.sh src/univalue
- test/lint/git-subtree-check.sh src/leveldb
- test/lint/check-doc.py
- test/lint/check-rpc-mappings.py .
- test/lint/lint-all.sh
- if [ "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_EVENT_TYPE" = "cron" ]; then
while read LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys &&
travis_wait 50 contrib/verify-commits/verify-commits.py;
fi
# x86_64 Linux w/ Bitcoin functional tests (Qt5 & system libs)
- stage: test
env: >-
HOST=x86_64-unknown-linux-gnu
PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libssl1.0-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libprotobuf-dev protobuf-compiler libqrencode-dev"
NO_DEPENDS=1
RUN_BITCOIN_TESTS=true
GOAL="install"
BITCOIN_CONFIG="--enable-zmq --with-incompatible-bdb --enable-glibc-back-compat --enable-reduce-exports --with-gui=qt5 CPPFLAGS=-DDEBUG_LOCKORDER"
8 changes: 8 additions & 0 deletions .travis/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## travis build scripts

The `.travis` directory contains scripts for each build step in each build stage.
Currently the travis build defines two stages `lint` and `test`. Each stage has
it's own [lifecycle](https://docs.travis-ci.com/user/customizing-the-build/#the-build-lifecycle).
Every script in here is named and numbered according to which stage and lifecycle
step it belongs to.

10 changes: 10 additions & 0 deletions .travis/lint_04_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C

travis_retry pip install codespell==1.13.0
travis_retry pip install flake8==3.5.0
9 changes: 9 additions & 0 deletions .travis/lint_05_before_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C

git fetch --unshallow
24 changes: 24 additions & 0 deletions .travis/lint_06_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C

if [ "$TRAVIS_EVENT_TYPE" = "pull_request" ]; then
test/lint/commit-script-check.sh $TRAVIS_COMMIT_RANGE
fi

test/lint/git-subtree-check.sh src/crypto/ctaes
test/lint/git-subtree-check.sh src/secp256k1
test/lint/git-subtree-check.sh src/univalue
test/lint/git-subtree-check.sh src/leveldb
test/lint/check-doc.py
test/lint/check-rpc-mappings.py .
test/lint/lint-all.sh

if [ "$TRAVIS_REPO_SLUG" = "bitcoin/bitcoin" -a "$TRAVIS_EVENT_TYPE" = "cron" ]; then
while read -r LINE; do travis_retry gpg --keyserver hkp://subset.pool.sks-keyservers.net --recv-keys $LINE; done < contrib/verify-commits/trusted-keys &&
travis_wait 50 contrib/verify-commits/verify-commits.py;
fi
25 changes: 25 additions & 0 deletions .travis/test_03_before_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C.UTF-8

PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
export PATH

BEGIN_FOLD () {
echo ""
CURRENT_FOLD_NAME=$1
echo "travis_fold:start:${CURRENT_FOLD_NAME}"
}

END_FOLD () {
RET=$?
echo "travis_fold:end:${CURRENT_FOLD_NAME}"
if [ $RET != 0 ]; then
echo "${CURRENT_FOLD_NAME} failed with status code ${RET}"
fi
}

26 changes: 26 additions & 0 deletions .travis/test_04_install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C.UTF-8

travis_retry docker pull "$DOCKER_NAME_TAG"
env | grep -E '^(CCACHE_|WINEDEBUG|LC_ALL|BOOST_TEST_RANDOM|CONFIG_SHELL)' | tee /tmp/env
if [[ $HOST = *-mingw32 ]]; then
DOCKER_ADMIN="--cap-add SYS_ADMIN"
fi
DOCKER_ID=$(docker run $DOCKER_ADMIN -idt --mount type=bind,src=$TRAVIS_BUILD_DIR,dst=$TRAVIS_BUILD_DIR --mount type=bind,src=$CCACHE_DIR,dst=$CCACHE_DIR -w $TRAVIS_BUILD_DIR --env-file /tmp/env $DOCKER_NAME_TAG)

DOCKER_EXEC () {
docker exec $DOCKER_ID bash -c "cd $PWD && $*"
}

if [ -n "$DPKG_ADD_ARCH" ]; then
DOCKER_EXEC dpkg --add-architecture "$DPKG_ADD_ARCH"
fi

travis_retry DOCKER_EXEC apt-get update
travis_retry DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES $DOCKER_PACKAGES

25 changes: 25 additions & 0 deletions .travis/test_05_before_script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
#
# Copyright (c) 2018 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

export LC_ALL=C.UTF-8

DOCKER_EXEC echo \> \$HOME/.bitcoin # Make sure default datadir does not exist and is never read by creating a dummy file

mkdir -p depends/SDKs depends/sdk-sources

if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then
curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz
fi
if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then
tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz
fi
if [[ $HOST = *-mingw32 ]]; then
DOCKER_EXEC update-alternatives --set $HOST-g++ \$\(which $HOST-g++-posix\)
fi
if [ -z "$NO_DEPENDS" ]; then
DOCKER_EXEC CONFIG_SHELL= make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
fi

Loading

0 comments on commit e51ed82

Please sign in to comment.