Commit Graph

278 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
fc5ed587ca Merge #16871: build: make building protobuf optional in depends
107e030723552cf272dc8da01bb682032a457a3d build: make protobuf optional in depends (fanquake)
ff6122f32b21fa00e9308e098b33b9657debc1d7 doc: clarify protobuf build requirements (fanquake)

Pull request description:

  As mentioned by dongcarl in https://github.com/bitcoin/bitcoin/pull/15584#issuecomment-521780972, make building `protobuf` optional in depends. With this change it will only be built if you pass `PROTOBUF=1`.

ACKs for top commit:
  laanwj:
    code review ACK 107e030723552cf272dc8da01bb682032a457a3d
  Sjors:
    tACK 107e030 on macOS 10.14. When I build depends with `PROTOBUF=1` then `./configure` has `bip70` enabled.

Tree-SHA512: 49bc247a6879aaf55b943a3d0b930544ddef1e69a481955a8bebe0b02c9ad0fe168b93025f34168334cef34bb567478eb98eacab62ba909f2f64fb21119c71b8
2022-01-20 13:09:39 -05:00
gabriel-bjg
f73fce7782
ci: Enable tsan on linux64 build (#4563)
Make fMixing atomic as it has concurrent access
Add tsan suppression for zmq namespace
Suppress deadlock false positive in ConnectTip
Switch ubsan target to linux32
Add new test job for linux64_cxx17 target without any sanitizers
Increase rpc time out for block reward reallocation test
Fix heap use after free in CConnman::GetExtraOutboundCount()
Different builds for linux32 and linux64 tsan and ubsan
Increase timeout for llmq_signing functional test
2022-01-10 11:31:45 -06:00
Kittywhiskers Van Gogh
1c188bcd47 build: relocate *net deployment logic to their own directories 2021-12-21 12:41:00 +05:30
Kittywhiskers Van Gogh
06b595b6ee build: relocate dash-specific CI scripts to its own directory 2021-12-19 14:04:16 +05:30
Kittywhiskers Van Gogh
607707f9f9 build: relocate CI docker container to dedicated directory 2021-12-19 14:04:13 +05:30
PastaPastaPasta
683be4086e
build: enable experimental Cxx20 support (#4600)
* build: Add optional c++20 compilation option

* build: update ax_cxx_compile_stdcxx.m4 to be compatible with c++20

* fix: fix c++20 build error for undefined identifier

* ci: enable c++20 build during ci

* cxx17 -> cxx20

Signed-off-by: pasta <pasta@dashboost.org>
2021-12-12 01:14:17 +03:00
UdjinM6
ac953c5ac7
Apply shellcheck suggestions 2021-12-03 18:13:01 +03:00
UdjinM6
9718bb394b
build/ci: Fix --enable-glibc-back-compat and its usage (#4592)
* build: Fix `--enable-glibc-back-compat`

Compiling on Ubuntu 20.04 results in binaries that can't be run on older systems we still support (e.g. Ubuntu 16.04) and `contrib/devtools/symbol-check.py` complains about it.

Available versions for `log` for example:
$ objdump -T /lib/x86_64-linux-gnu/libm.so.6 | egrep -w 'log'
00000000000431b0 g    DF .text	0000000000000039  GLIBC_2.29  log
0000000000012360 g    DF .text	0000000000000066 (GLIBC_2.2.5) log

(i.e. the default one is 2.29)

This commit fixes the issue by picking the version we support instead of the default one.

Before:
$ objdump -T dashd | egrep -w 'log'
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.29  log

After:
$ objdump -T dashd | egrep -w 'log'
0000000000000000      DF *UND*	0000000000000000  GLIBC_2.2.5 log

* ci: Add `make check-symbols` to the `build` step

* ci: Do not specify `--enable-glibc-back-compat` for non-release builds

* ci: Set correct LDFLAGS for the release build

* doc: Update docs to mention the need for `LDFLAGS=-static-libstdc++` when compiling for same host but different distro

* ci: Add `--with-sanitizers=undefined` back to `linux64` build
2021-11-30 14:13:18 +03:00
Wladimir J. van der Laan
d58ff4eb01 Merge #14505: test: Add linter to make sure single parameter constructors are marked explicit
c4606b84329d760d7cee144bebe05807857edaae Add Travis check for single parameter constructors not marked "explicit" (practicalswift)

Pull request description:

  Make single parameter constructors `explicit` (C++11).

  Rationale from the developer notes:

  > - By default, declare single-argument constructors `explicit`.
  >   - *Rationale*: This is a precaution to avoid unintended conversions that might
  >   arise when single-argument constructors are used as implicit conversion
  >   functions.

ACKs for top commit:
  laanwj:
    ACK c4606b84329d760d7cee144bebe05807857edaae

Tree-SHA512: 3e6fd51935fd93b2604b2188664692973d0897469f814cd745b5147d71b99ea5d73c1081cfde9f6393f51f56969e412fcda35d2d54e938a3235b8d40945f31fd
2021-11-24 14:36:20 -05:00
gabriel-bjg
5cc2202daa
Enable ubsan for linux64 build 2021-10-22 01:01:29 +03:00
MarcoFalke
652a36b0f2 Merge #15943: tests: Fail if RPC has been added without tests
fad0ce59e9 tests: Fail if RPC has been added without tests (MarcoFalke)

Pull request description:

  Need to be run with --coverage

ACKs for commit fad0ce:
  ryanofsky:
    utACK fad0ce59e9154f9b7e61907a71c740a942c60282. New comment in travis.yml is the only change since last review.

Tree-SHA512: b53632dfe9865ec06991bfcba2fd67238bebbb866b355f09624eaf233257b2bca902caac6c24abb358b2f4c1c43f28ca75e30982765911e1a117102df65276d9
2021-10-12 15:56:33 -07:00
PastaPastaPasta
7578684a1b
Cxx17 refac ci focal (#4509)
* ci: use ubuntu focal, bump g++ version, adjustments required for ubuntu focal

* build cross for macOS requires installing libncurses5
2021-10-12 02:57:06 +03:00
PastaPastaPasta
7be48286f4
Cxx17 refac ci build (#4508)
* Merge #18750: build: optionally skip external warnings

ba8950ee0134a7958e3e9b041cd54d222feb09a1 build: optionally skip external warnings (Vasil Dimov)

Pull request description:

  Add an option to `./configure` to suppress compilation warnings from
  external headers. The option is off by default (no change in behavior,
  show warnings from external headers).

  This option is useful if e.g. Boost or Qt is installed outside of
  `/usr/include` (warnings from headers in `/usr/include` are already
  suppressed by default) and those warnings stand in the way of compiling
  Bitcoin Core with `-Werror[=...]` or they just clutter the build output
  too much and make our own warnings hard to spot.

  `-isystem /usr/include` bricks GCC's `#include_next`, so we use
  `-idirafter` instead. This way we don't have to treat `/usr/include`
  specially.

ACKs for top commit:
  practicalswift:
    ACK ba8950ee0134a7958e3e9b041cd54d222feb09a1: diff looks correct!
  hebasto:
    ACK ba8950ee0134a7958e3e9b041cd54d222feb09a1, tested on Linux Mint 20 (x86_64).
  luke-jr:
    utACK ba8950ee0134a7958e3e9b041cd54d222feb09a1

Tree-SHA512: 9b54fae8590be6c79f2688a5aca09e0a9067f481dabecdd49bb278c08a62ac2b0cc704c894fbd53240e77ac84da0c7a237845df0a696cfbdb0359e1c8e2e10c9

* add --enable-suppress-external-warnings to matrix.sh

Co-authored-by: Wladimir J. van der Laan <laanwj@protonmail.com>
2021-10-12 00:56:11 +03:00
UdjinM6
77b2cfc374
ci/lint: Fix lint-shell.sh in CI (#4489)
* lint: Skip shell linting if gawk is not installed

* lint: Skip Gitian descriptor scripts checking if jq is not installed

* ci: Install gawk and jq

`yq` requires `jq`

* Fix shellcheck warnings
2021-10-11 00:41:20 +03:00
MarcoFalke
078ae49dc7
partial merge #19348: test: Bump linter versions
39d526bde48d98af4fa27906e85db0399b6aa8b1 test: Bump linter versions (Duncan Dean)

Pull request description:

  As per #19346, `mypy==0.700` was incompatible with Python 3.8.

  I've bumped the versions of all the linters to their latest stable versions.

  Checked with both Python 3.7 and 3.8 and everything still seems to work fine.

ACKs for top commit:
  hebasto:
    ACK 39d526bde48d98af4fa27906e85db0399b6aa8b1, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: f3ee7fda8095aa25aa68685e863076d52a6b82649770d24b0064d652763c0ceb8ebcbf9024fc74fca45c754e67b2a831dd070b3af23bc099140e6d27e89a5319
2021-10-05 20:34:01 +03:00
MarcoFalke
60b3c5a64e
Merge #15257: Scripts and tools: Bump flake8 to 3.7.8
3d0a82cff8cbb809876e82dbe62d14d2adc07d94 devtools: Accomodate block-style copyright blocks (Ben Woosley)
0ef0e51fe4bb592e67255776b5a0ba04679fb8c4 lint: Bump flake8 to 3.7.8 (Ben Woosley)
838920704ad90a71cf288b700052503db8abb17e lint: Disable flake8 W504 warning (Ben Woosley)
b21680baf5391a602b295b9d7d0ef66553661cb9 test/contrib: Fix invalid escapes in regex strings (Ben Woosley)

Pull request description:

  This is a second go at #15221, fixing new lints in:
  W504 line break after binary operator
  W605 invalid escape sequence
  F841 local variable 'e' is assigned to but never used

  This time around:
  * One commit per rule, for easier review
  * I went with the PEP-8 style of breaking before binary operators
  * I looked into the raw regex newline issue, and found that raw strings with newlines embedded do work appropriately. E.g. run `re.match(r" \n ", " \n ")` to check this for yourself. `re.MULTILINE` exists to modify `^` and `$` in multiline scenarios, but  all of these searches are per-line.

ACKs for top commit:
  practicalswift:
    ACK 3d0a82cff8cbb809876e82dbe62d14d2adc07d94 -- diff looks correct

Tree-SHA512: bea0c144cadd72e4adf2e9a4b4ee0535dd91a8e694206924cf8a389dc9253f364a717edfe9abda88108fbb67fda19b9e823f46822d7303c0aaa72e48909a6105
2021-10-05 20:34:01 +03:00
MarcoFalke
dbfa92990a
Merge #21096: Re-add dead code detection
3f8776a1391c3978ed66144df15fd9bcb9edd35d Re-add dead code detection (flack)

Pull request description:

  This re-adds unreachable code detection for Python based on `vulture`.

  Effectively, this reverts f4beb4996d27f2cdaf4f0a63e7dc044bf17decce. The difference to the previous version is that this runs with the `--min-confidence 100` setting. From https://pypi.org/project/vulture/:

  > Use `--min-confidence 100` to only report code that is guaranteed to be unused within the analyzed files.

  So this should avoid the previous issues where static analysis had wrong positives due to the dynamic nature of Python code by only reporting things that are unambiguous (such as code after a `return` statement). As such, there is not suppressions list.

  My motivation was mainly #21081 which would have been caught by this (as can be seen by the CI run failing). This is still marked as draft because #21081 is needed to get the linter to pass. Also, there is a second problem that this found (see https://github.com/bitcoin/bitcoin/pull/19509/files#r571454691). From what I can tell, this is a spurious type comment that could just be removed (or if that line has no side effects it could also be deleted altogether?). I could add a commit here to fix it, but I wanted to see if there is interest in having this linter again in the first place

ACKs for top commit:
  practicalswift:
    ACK 3f8776a1391c3978ed66144df15fd9bcb9edd35d

Tree-SHA512: 52314ad4f627d969de1eb15375ca677ed86a2e816fe773756a1ce22421214ba407b5a09a4bf701a3aab1a10c7b336f548e4cef3327edf154acba55e987db21f6
2021-10-05 20:34:00 +03:00
MarcoFalke
313d79e319
Merge #16961: test: Remove python dead code linter
f4beb4996d27f2cdaf4f0a63e7dc044bf17decce test: Remove python dead code linter (Wladimir J. van der Laan)

Pull request description:

  Primarily I'd like to remove this because it is very imprecise, due to Python's dynamic nature, giving it a large list of false positives that need to be listed as exceptions. See for example #16906.

  It's also a frequent source of complaints. I'm doubtful of the usefulness of checking for dead code in a linter in the first place.
  Having some dead code in the test framework for a while is not a
  disaster.

ACKs for top commit:
  sdaftuar:
    utACK f4beb4996d27f2cdaf4f0a63e7dc044bf17decce
  practicalswift:
    ACK f4beb4996d27f2cdaf4f0a63e7dc044bf17decce -- diff looks correct
  jamesob:
    ACK f4beb4996d

Tree-SHA512: 329b1555210311d5d15799fd2cb794b3208b0ac4d8a2ffaf4dece1bcc3e0e8b1fe952d5e7a394f94a98919cab579fb579eae7db2a796cc9a1a42ef495dd17507
2021-10-05 20:34:00 +03:00
MarcoFalke
a8f615748c
Merge #16907: test: lint: Add DisabledOpcodeTemplates to whitelist
fac35b21e2c2d798face7e289dcff4c1cce0e1a6 test: lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke)

Pull request description:

  Fixes #16906

Top commit has no ACKs.

Tree-SHA512: 98b175bb062425fd3a8bd0d0258f4c0e0d5106980f1e037df7c2b2b2e5aa6031b11b582c026265d7b2de56049ccbadb0b7add9130d323f15886f681c6268ba0a
2021-10-05 20:34:00 +03:00
fanquake
53b2f81892
Merge #16186: doc/lint: Fix spelling errors identified by codespell 1.15.0
b748bf6f50dda6bb57eadf697edc320b2695e01a Fix spelling errors identified by codespell 1.15.0 (Ben Woosley)

Pull request description:

  Note all changes are to comments / documentation.

  After this commit, the only remaining output is:

  ```
    $ test/lint/lint-spelling.sh
    src/test/base32_tests.cpp:14: fo  ==> of, for
    src/test/base64_tests.cpp:14: fo  ==> of, for
    ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/lint-spelling.ignore-words.txt
  ```

  Note:
  * I ignore several valid alternative spellings ~, but changed homogenous
  to homogeneous as the latter is a more specific term according to the
  Google dictionary definitions I found~
  * homogenous is present in tinyformat, hence should be addressed upstream
  * process' is correct only if there are plural processes

ACKs for commit b748bf:
  practicalswift:
    ACK b748bf6f50dda6bb57eadf697edc320b2695e01a
  fanquake:
    ACK b748bf6f50

Tree-SHA512: 9add7044643ce015e0a44d8b27a3f300d72c485ffff550fb6491a17f14528085289ec5caddfe02f291ea9b2cded38a0dd3079652a054e2d7fe2ff4f7b53db5d7
2021-10-05 20:34:00 +03:00
MarcoFalke
26449bcccf
Merge #15166: qa: Pin shellcheck version
a517541794 Remove no longer needed shellcheck suppressions (practicalswift)
0b7196ecad Fix warnings introduced in shellcheck v0.6.0 (practicalswift)
07a53dce9f Remove repeated suppression. Fix indentation. (practicalswift)
638e53b472 Pin shellcheck version to v0.6.0 (practicalswift)

Pull request description:

  Pin `shellcheck` version.

Tree-SHA512: 996e438e424020fe888de1d77ffd33fa32848332febfffbc21a842784aee339332c79c41687c9c577ba1206eb20674623157d584a072e8ae88ae086ee2277bc8
2021-10-05 20:33:59 +03:00
Kittywhiskers Van Gogh
5856f2c124 merge bitcoin#22993: set OSX_MIN_VERSION to 10.15 2021-10-05 08:04:26 +05:30
Kittywhiskers Van Gogh
fd03a23e85 merge bitcoin#20470: Replace genisoimage with xorriso 2021-10-05 08:04:26 +05:30
Kittywhiskers Van Gogh
056590a1da merge #17361: Lint Gitian descriptors with ShellCheck 2021-09-03 21:35:53 +05:30
Kittywhiskers Van Gogh
d451833380 merge #20419: set minimum supported macOS to 10.14 2021-09-03 21:35:53 +05:30
Kittywhiskers Van Gogh
6349b7e401 merge #19240: macOS toolchain simplification and bump 2021-09-03 17:49:55 +05:30
Wladimir J. van der Laan
07a7fda225
Merge #15939: gitian: Remove Windows 32 bit build
fa193dc8e6f3b96fa2dba2f1c1668f7720fed320 doc: Remove win32 from the release process (MarcoFalke)
faf666f8148eeb305a9c4f78459aff2c7268016b Remove Windows 32 bit build (MarcoFalke)

Pull request description:

  The Windows 32 bit build has been removed from https://bitcoincore.org/en/download/, so unless there are complaints, we don't need to build it even

ACKs for commit fa193d:
  fanquake:
    utACK fa193dc8e6

Tree-SHA512: d6f2976a2e0c407698f720b00ac23ec4056626de4eff8621f4c5581120af0460afd1bdef72329cc0e7d92afca48d94ae5fce6777cb36bfabb60b8034ff08fd88
2021-09-02 22:27:58 +03:00
UdjinM6
ede5e9f1f8
ci: Add --enable-werror flag to macos CI build 2021-09-02 03:05:02 +03:00
UdjinM6
27b25fdf77
Merge pull request #4354 from PastaPastaPasta/add-dash-cpp-linter
lint: Add dash cpp linter and partially backport 19844
2021-09-02 03:02:13 +03:00
Kittywhiskers Van Gogh
a358d2e593 merge #16392: macOS toolchain update 2021-09-02 01:55:01 +05:30
pasta
277c2093d7
lint: add dash extended cpp linter
Signed-off-by: pasta <pasta@dashboost.org>
2021-09-01 14:08:52 -04:00
Kittywhiskers Van Gogh
ced48380b8 partial merge #17550: set minimum supported macOS to 10.12 2021-08-31 11:16:04 +05:30
MarcoFalke
2048e40075 Merge #15411: travis: Combine --disable-bip70 into existing job
eeeee58bc9 travis: Combine --disable-bip70 into existing job (MarcoFalke)

Pull request description:

  We already have too many jobs, so instead of creating a separate job for the `--disable-bip70` configue option, combine it into an existing job

Tree-SHA512: 9e2fae73d90cb55b588c545bc118a14eba064f17fffd9b302c3fdbb8715e2319db03eac92ae51b3c16481f28a004a1c964dab75ca80a213e87574da8f73e3207
2021-08-27 18:27:57 -07:00
MarcoFalke
12047d77d0 Merge #14365: tests: Add Python dead code linter (vulture) to Travis
c82190cdb6 tests: Add Python dead code linter (vulture) (practicalswift)
590a57fdec tests: Remove unused testing code (practicalswift)

Pull request description:

  Add Python dead code linter (`vulture`) to Travis.

  Rationale for allowing dead code only after explicit opt-in (via `--ignore-names`):
  * Less is more :-)
  * Unused code is by definition "untested"
  * Unused code can be an indication of bugs/logical errors. By making the contributor aware of newly introduced unused code it gives him/her an opportunity to investigate if the unused code they introduce is malignant or benign :-)
  * Unused code is hard to spot for humans and is thus often missed during manual review
  * [YAGNI](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it)

  Based on #14312 to make linter job pass.

Tree-SHA512: 4c581df7c34986e226e4ade479e0d3c549daf38f4a4dc4564b25564d63e773a1830ba55d1289c771b1fa325483e8855b82b56e61859fe8e4b7dfa54034b093b6
2021-08-12 14:42:32 -03:00
UdjinM6
6bdd8451e0
Install codespell==1.13.0 in Docker 2021-07-19 12:52:01 -05:00
pasta
c12d3fd2cb
fix misc. spelling errors
Signed-off-by: pasta <pasta@dashboost.org>
2021-07-19 12:51:30 -05:00
Pasta
27223b7bcc
Apply fake8 version pinning in Dockerfile.builder 2021-07-19 12:27:20 -05:00
UdjinM6
b797fbd827
ci: Add --enable-werror to arm and c++17 builds
Kind of similar to changes in 18145
2021-07-13 19:43:27 +03:00
MarcoFalke
4c2211dd41 Partial merge #13863: travis: move script sections to files in .travis/ subject to shellcheck
414326952c use export LC_ALL=C.UTF-8 (Julian Fleischer)
728c82d029 make script exit if a command fails (Julian Fleischer)
506890b24d move remaining travis build steps into individual files (Julian Fleischer)
272306ea57 number .travis/ script according to build lifecycle and add README to explain (Julian Fleischer)
519e2739cf move lint stage up to resemble travis build ui (Julian Fleischer)
86d34f0e65 abort script in END_FOLD on non-zero exit code (Julian Fleischer)
4f2f88c7b0 move script sections info individual files and comply with shellcheck (Julian Fleischer)

Pull request description:

  This PR is extracted from https://github.com/bitcoin/bitcoin/pull/13816 to make that one easier to review. It follows on https://github.com/bitcoin/bitcoin/pull/13849 and https://github.com/bitcoin/bitcoin/pull/13851

  In here the shell script parts from `travis.yml` are extracted into `.travis/before_install.sh`, `.travis/install.sh`, `.travis/before_script.sh`, `.travis/script.sh`, and `.travis/lint.sh`.

  This has the benefit that `test/lint/lint-shell.sh` will also shellcheck these parts. Also it makes the individual script parts more readable.

Tree-SHA512: c497e1687ceb1c1d795de177d3fc35af908bc8e3f781a871afabdecf031e581d4db229290627249e35ef7c09952bc34884e4734ea91d40f57b4a9efb85bba2e3
2021-07-08 13:09:43 -04:00
Wladimir J. van der Laan
7327a0b2ec Merge #14036: travis: Run unit tests --with-sanitizers=undefined
fad8afa3883675880dfa7fa6664fe658f10b11b5 travis: Run unit tests --with-sanitizers=undefined (MarcoFalke)
0d00fd5901102d9ca2b99d6f17a3bd96c946e3b7 depends: allow CC/CXX to be overridden during configure (Cory Fields)

Pull request description:

  See issue #12691

Tree-SHA512: 0772e8e037411cb4664270945a0fc9c0c1ed24eeaf5308460baee707868f7b700d8e740a6babb1d02bc818a8a4b71d9e33601ab2cc850ff315755fcf3d79d29e

# Conflicts:
#	.travis.yml
2021-07-08 13:09:43 -04:00
Wladimir J. van der Laan
37edce56fb
Merge #13859: qa: Add emojis to test_runner path and wallet filename
5e1777777790e855a9f3c8604208bc9bd6c8c99f qa: Create unicode tempdir in test_runner (MarcoFalke)

Pull request description:

  Now that wallet filenames are properly quoted when used for rpc (#13823), we can add some unicode symbols to the test_runner path. Thus, the "extern" wallet that uses a full path has a unicode symbol in its name.

  Should add unicode coverage to
  * `listwallets`
  * `wallet.getwalletinfo`
  * `(un)loadwallet`

Tree-SHA512: 1633fde56f8748df0cfef9c31a878c105dfaac85d1041b292261f44c4d40e96942aacbf7d6e839e8bbf979dc131d81c24ceb521e927fc8a5a71ba093f36b891b
2021-07-02 12:59:29 +03:00
UdjinM6
704d34b2e4
bls|ci: Fix C++17 build, add it to CI (#4055)
* ci: Add C++17 build

* bls: Add explicit CBLSSecretKey copy ctor and operator=
2021-04-28 16:44:01 +02:00
MarcoFalke
39ff085409
Merge #13617: release: require macOS 10.10+
3828a79711 scripted-diff: prefer MAC_OSX over __APPLE__ (fanquake)
fa6e841e89 gui: remove macOS ProgressBar workaround (fanquake)
68c272527f gui: remove SubstituteFonts (fanquake)
6c6dbd8af5 doc: mention that macOS 10.10 is now required (fanquake)
84b0cfa8b6 release: bump minimum required macOS to 10.10 (fanquake)
26b15df99d depends: set OSX_MIN_VERSION to 10.10 (fanquake)

Pull request description:

  Closes #13362

  d99abfddb0c8f2111340a6127e77cc686e0043d8
  This workaround should no longer be required, as it should have only been in use when compiled with the 10.7 SDK, which we haven't been building with for a while now.

  5bc5ae30982a0f0f6a9804b05d99434af770c724
  The bugreport linked with this code is for an unrelated? issue, however from what I can tell the correct QTBUG is this one https://bugreports.qt.io/browse/QTBUG-20880. Reading though the discussion there, it seems that the way progress bars are animated changed in macOS 10.10.
  Qt was patched [here (5.5+)](https://codereview.qt-project.org/#/c/112379/):
  > Disable progress bar animations on 10.10 Yosemite and higher - the native style does not animate them any more. Keep the indeterminate progress bar animation.

  Given all of that, I don't think this is worth keeping around, as it would seem to only be useful in the case that a macOS user is compiling with a Qt < 5.5. That should be pretty unlikely, as we don't support downloaded Qt binaries, and brew currently provides [5.11.1](571b46213c/Formula/qt.rb).

Tree-SHA512: 4278cb30cc9bcb313e166129ecf032c808995f8b51a3123637c47860a0010ac88f86f82ec44792153b6b1e5cca595f25013b2eaeae80194647b9ce4f7eaf32c1
2020-12-18 01:14:34 +03:00
UdjinM6
251a9622f5
ci: Fix build matrix (#3825)
Should enable crash hooks, not stacktraces.
2020-11-28 19:08:30 +00:00
UdjinM6
0bfd3ad923
Use PYTHONIOENCODING in test_integrationtests.sh to override encoding for combine_logs.py
See https://docs.python.org/3/using/cmdline.html?highlight=pythonioencoding#envvar-PYTHONIOENCODING for more info.
2020-11-07 17:19:09 -05:00
UdjinM6
3cc35ea470
Add -DARENA_DEBUG flag 2020-10-26 20:35:28 -04:00
UdjinM6
db206a0e7c
Fix test_integrationtests.sh 2020-07-30 10:51:51 -05:00
UdjinM6
f7218d1899 Make shellcheck happy 2020-07-29 11:20:12 -05:00
UdjinM6
35fbb5992f More of "export LC_ALL=C" 2020-07-29 11:04:30 -05:00
Wladimir J. van der Laan
7be2b2456a Merge #13281: test: Move linters to test/lint, add readme
fa3c910bfeab00703c947c5200a64c21225b50ef test: Move linters to test/lint, add readme (MarcoFalke)

Pull request description:

  This moves the checks and linters from `devtools` to a subfolder in `test`. (Motivated by my opinion that the dev tools are mostly for generating code and updating the repo whereas the linters are read-only checks.)

  Also, adds a readme to clarify that checks and linters are only meant to prevent bugs and user facing issues, not merely stylistic preference or inconsistencies. (This is motivated by the diversity in developers and work flows as well as existing code styles. It would be too disruptive to change all existing code to a single style or too burdensome to force all developers to adhere to a single style. Also note that our style guide is changing, so locking in at the wrong style "too early" would only waste resources.)

Tree-SHA512: 9b10e89f2aeaf0c8a9ae248aa891d74e0abf0569f8e5dfd266446efa8bfaf19f0ea0980abf0b0b22f0d8416ee90d7435d21a9f9285b66df43f370b7979173406
2020-07-29 10:59:04 -05:00
MarcoFalke
4a5dd0d80f Merge #12871: Add shell script linting: Check for shellcheck warnings in shell scripts
1499fdc350 Add shell script linting: Check for shellcheck warnings in shell scripts (practicalswift)

Pull request description:

  Add shell script linting: Check for `shellcheck` warnings in shell scripts.

Tree-SHA512: c7f3f5ed9933415666d2a02f5658cdc62b959ce8112f46b6327ff5f77bb5a66710704c0cde5fd8e719d1fa1fc4f0375a0c115faced166b78e81b75dfb862f08e
Signed-off-by: pasta <pasta@dashboost.org>
2020-07-28 21:35:31 -05:00
MarcoFalke
35c791c37d Merge #13406: travis: Change Mac goal to all deploy
3d69853090 travis: Change Mac goal to all deploy so that travis can build all executables for Mac. (Chun Kuan Lee)

Pull request description:

  Currently, travis only build bitcoin-qt for Mac with make deploy, so  I think that we can add a make step to build cli, daemon, test and bench executables.

Tree-SHA512: 346c207836ee7313a57e0cd03367ada7e95c182d0f58b06c4ee5b8f2865ba4ee077b030a5494b58a808c015afe0569fa3252d0a5a687c47b7094dc77599ce50e
Signed-off-by: pasta <pasta@dashboost.org>

# Conflicts:
#	.travis.yml
2020-07-07 11:37:31 -05:00
Pasta
b40dc8f1ec fix lint-python.sh after 11835 and 12295
Signed-off-by: Pasta <pasta@dashboost.org>
2020-06-17 14:29:55 -05:00
Alexander Block
3fa94aac56 Implement epoll support 2020-04-20 15:38:19 +02:00
Alexander Block
6994d5f8e0 Randomly switch socketevents mode in CI tests 2020-04-17 22:09:52 +02:00
Alexander Block
ff6f391aea
Refactor Gitlab builds to use multiple stages (#3377)
* Remove unused jenkins stuff

* Install all dependencies in builder image

Instead of only target specific dependencies.

* Use docker builder image for builds

* Optimize apt installations

* Move building of dependencies into separate stage

The build-depends-xxx jobs will create artifacts (depends/$HOST) which are
then pulled in by the build jobs with the help of "needs"

* Remove use of caches from develop branch

* Use gitlab specific extends instead of YAML anchors

* Move before_script of build_template into base_template

* Add hack for parallel installation of i686 and arm cross compilation

* Install python3-setuptools in builder image

* Remove unnecessary change-dir

* Use variables to pass BUILD_TARGET instead of relying on the job name

* Move integration tests into separate stage

* Don't use --quiet for integration tests on Gitlab
2020-03-28 00:58:51 +03:00
UdjinM6
ffcb2f63a1
More of 11300 2020-01-10 10:34:04 -06:00
UdjinM6
66dd61d54d
More of 10753 2020-01-10 10:34:03 -06:00
MarcoFalke
ef59dce92e Merge #14630: test_runner: Remove travis specific code
fa43626611 test_runner: Remove travis specific code (MarcoFalke)

Pull request description:

  The tests are no longer run on travis, but in a docker, developer machines or a windows vm.

  The code was essentially dead for months now. Fix that by explicitly passing in `--ci` to the test runner on our docker and appveyor windows vm.

Tree-SHA512: 5d48693c03e8eb27536658ccf9ba738fe93a72abd4b72c80caac084b5b2cdffa77a1031a671eeefe70b71d63500f55917803d4be54d01849722afdccb700a9e6
2020-01-07 23:12:29 +01:00
Wladimir J. van der Laan
430c0380fa Merge #13105: [qa] Add --failfast option to functional test runner
58f9a0a Use --failfast when running functional tests on Travis (James O'Beirne)
bf720c1 Add --failfast option to functional test runner (James O'Beirne)

Pull request description:

  Add the option (`--failfast`) to stop the functional test runner's execution when it encounters the first failure.

  Also cleans up run_test's arguments list ([no more mutable default for `args`](http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments)) and call site.

Tree-SHA512: e854b1b1634bf613ae8ae88e715df1460982fa68db9d785aafeb5eccf5bf324c7f20dded2ca6840ebf18a28347ecac2138d6c7592507b34939b02609ef55e1b3
2020-01-07 23:12:11 +01:00
Alexander Block
ca63ad3482 Use -Wno-psabi for arm builds on Travis/Gitlab (#3264)
This avoids spamming logs with "note: parameter passing for argument of type " warnings.
2020-01-02 20:36:29 +03:00
Alexander Block
df04cdcd23 Fix Dash specific docs and scripts 2019-11-04 13:29:32 +01:00
Alexander Block
24fee30513
Add support for Gitlab CI (#3149)
* Add .gitlab-ci.yml

* Use | instead of > for multiline commands

This honor new-lines and makes ; unnecessary

* Use ubuntu:bionic as base image

* Move cache initialization before apt-get installs

* Cache apt packages

* Move installation of wget and unzip up as we need it for the cache

* Prevent apt from deleting caches

* Collect test logs into artifact

* Make combine_logs.py always look for the template in the correct dir

* Move final cache stuff into after_script

* Reintroduce PYTHON_DEBUG=1, but only for .travis.yml

* Install jinja2 in Travis builder image

* Enable ChainLocks after quorums have been created

Creating 4 quorums causes a lot of blocks to be created and signed by
ChainLocks, which then causes timeouts later.

* Increase timeout in wallet-dump.py test

The first dumpwallet is quite slow sometimes, which then makes the
later called dumpwallet throw a wallet locked exception.
2019-10-16 11:48:46 +02:00
UdjinM6
d9e98e31ea
Fix scripted diff check condition (#3128) 2019-10-01 17:16:26 +03:00
Pasta
5df0a96f7e
adjust build_src.sh 10189
Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-19 12:44:42 -05:00
Pasta
73a5d9bfdd
add --quiet to test_runner.py, replicates bitcoin#10105
Signed-off-by: Pasta <pasta@dashboost.org>
2019-06-18 01:24:59 -05:00
Alexander Block
f1fe24b676 Only gracefully timeout Travis when integration tests need to be run (#2933)
* Split RUN_TESTS into RUN_UNITTESTS and RUN_INTEGRATIONTESTS

* Only gracefully timeout when RUN_INTEGRATIONTESTS=true
2019-05-23 00:21:21 +03:00
PastaPastaPasta
6edbc9cebd Merge bitcoin#9956: Reorganise qa directory (#2912)
* Merge #9956: Reorganise qa directory

63d66ba Move src/test/bitcoin-util-test.py to test/util/bitcoin-util-test.py (John Newbery)
5b0bff4 Rename --enable-extended-rpc-tests to --enable-extended-functional-tests (John Newbery)
a9bd622 Rename test/pull-tester/rpc-tests.py to test/functional/test_runner.py (John Newbery)
c28ee91 Rename rpc-tests directory to functional (John Newbery)
00902c4 Rename qa directory to test (John Newbery)

Tree-SHA512: ee7125c0c647d81590177beef2c8852c4ef76fdcf888096d9d4d360562a01d8d3b453345c3040487b2a043935bd1e7e80018f34462d6e02262bedbe23edcc576

resolve build errors

Signed-off-by: Pasta <Pasta@dash.org>

update test_runner.py in testintegrations.sh

Signed-off-by: Pasta <Pasta@dash.org>

* moved dash specific tests

Signed-off-by: Pasta <Pasta@dash.org>

* dashify README.md

Signed-off-by: Pasta <Pasta@dash.org>

* removed autoix*.py

Signed-off-by: Pasta <Pasta@dash.org>

* change back file perms

* dedashify

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-19 23:20:34 +03:00
UdjinM6
ace96a941a
Drop xvfb and run tests in linux64_nowallet 2019-05-06 14:51:48 -05:00
pasta
720f13d694
add a comment linking to xvfb documentation 2019-05-06 14:51:46 -05:00
Jonas Schnelli
aee4472ace
Merge #9974: Add basic Qt wallet test
9576b01 Enable xvfb in travis to allow running test_bitcoin-qt (Russell Yanofsky)
9e6817e Add new test_bitcoin-qt static library dependencies (Russell Yanofsky)
2754ef1 Add simple qt wallet test sending a transaction (Russell Yanofsky)
b61b34c Add braces to if statements in Qt test_main (Russell Yanofsky)
cc9503c Make qt test compatible with TestChain100Setup framework (Russell Yanofsky)
91e3035 Make test_bitcoin.cpp compatible with Qt Test framework (Russell Yanofsky)

Tree-SHA512: da491181848b8c39138e997ae5ff2df0b16eef2d9cdd0a965229b1a28d4fa862d5f1ef314a1736e5050e88858f329124d15c689659fc6e50fefde769ba24e523

remove line, testing

bitcoin -> dash, testing

bitcoin -> dash, testing

resolve name conflict, testing

bitcoin -> dash

re-add test fixture line

code review, fix tests

Signed-off-by: Pasta <Pasta@dash.org>

move ExceptionInitializer into test_dash_main.cpp

remove witness from nulldummy.py

Signed-off-by: Pasta <Pasta@dash.org>

change error text to match expected

Signed-off-by: Pasta <Pasta@dash.org>
2019-05-06 14:51:43 -05:00
UdjinM6
f87035d146
Fix qt tests and actually run them (#2801)
* Fix qt tests and run them when compiling with DDEBUG_LOCKORDER flag

* Drop "NO_QT=1"
2019-03-25 19:24:24 +03:00
Alexander Block
3ead8cd85d
Fix potential travis failures due to network failures (#2795)
* Manually pull builder base image and let travis retry it on failure

* Split base package installation in Dockerfile.builder into multiple RUN lines

This allows better local cache usage on failure and retry.

* Use travis_retry for docker build
2019-03-22 11:51:33 +01:00
UdjinM6
9df6acdc2b
Disable in-wallet miner for win/macos Travis/Gitian builds (#2778)
* Add new configure option to disable in-wallet miner

* Use new option to disable in-wallet miner for win/macos Travis/Gitian builds
2019-03-19 10:43:37 +03:00
Alexander Block
48d92f116e Implement optional pretty printed stacktraces (#2420)
* Add libbacktrace to depends

This is currently only useful to extract symbols. It fails to gather
stacktraces when compiled with MinGW, so we can only use it to get symbol
information from a stack trace which we gathered outside of libbacktrace.

* Add -mbig-obj to CXXFLAGS for MinGW builds

* Implement stacktraces for C++ exceptions

This is a hack and should only be used for debugging. It works by wrapping
the C++ ABI __wrap___cxa_allocate_exception. The wrapper records a backtrace
and stores it in a global map. Later the stacktrace can be retrieved with
GetExceptionStacktraceStr.

This commit also adds handlers to pretty print uncaught exceptions and
signals.

* Use GetPrettyExceptionStr for all unhandled exceptions

* Use --enable-stacktraces in CI for linux32/linux64

* Register exception translators to pretty print exceptions in unit tests

* Catch and print python exceptions when stopping nodes

Otherwise the code at the bottom is never executed when nodes crash,
leading to no output of debug.log files on Travis.

* Remove now unneeded/unused TestCrash methods
2019-02-21 21:37:15 +03:00
Alexander Block
f65e74682a Pass "-parallel=3" to reduce load on Travis nodes while testing 2018-11-15 08:04:58 +01:00
Alexander Block
f3dcb6916c Add cmake to ci/Dockerfile.builder 2018-10-04 16:46:48 +02:00
Alexander Block
f3e380659a Move to in-docker CI builds and add Jenkins support (#2178)
* GCC-7 and glibc-2.27 compat code

* Statically link libstdc++ for GCC based builds

Makes sure binaries which are built on a newer build host still work
on older distros.

* Use python3 when installing MacOS native tools

* Move actual build logic out of Travis and upgrade to gcc-7

Travis will now simply call a few scripts which do the actual work.
These scripts will first create a "builder image" which contains the
necessary environment for the actual build. Then scripts are called
inside this builder image to do the build.

This should make us more independant from Travis and also allows us
to do local CI testing.

The build matrix is also moved out of .travis.yml and instead moved
into ci/matrix.sh. This script is sourced with only "BUILD_TARGET" being
set so that it internally can figure out which other environment
variables need to be set.

This commit also upgrades the used GCC version to 7. This is due to the
use of ubuntu:bionic as base image for the builder image.

* Add Jenkinsfiles for regular CI and nightly gitian builds

* Automatically download OSX SDK in gitian-build.sh

* Remove bogus "export MAKEJOBS=-j5"

* Forward cache/src dirs into builder container

Fixes caching issues on Travis.

* fix

* Fail build immediately when building depends took too long
2018-07-12 16:28:59 +03:00