Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-01-02 | test: bump codespell linter version to 2.0.0 | Sebastian Falbesoner | |
2020-06-22 | test: Bump linter versions | Duncan Dean | |
Updates Python linters, spellchecking, and ShellCheck versions. The PR links are updated for the dependency versions in test/README.md. ShellCheck SC2230 removed to align with with new behaviour in v0.7.1. Fixes #19346. | |||
2020-06-05 | doc: Add mypy to test dependencies | Hennadii Stepanov | |
2020-05-18 | docs: Add notes on how to diasble rpc timeout in functional tests while ↵ | codeShark149 | |
attatching gdb. | |||
2020-03-10 | test: Explain why test logging should be used | MarcoFalke | |
2019-11-06 | script: Lint Gitian descriptors with ShellCheck | Hennadii Stepanov | |
2019-11-02 | doc: Add ShellCheck to lint tests dependencies | Hennadii Stepanov | |
2019-10-17 | doc: Describe log files + consistent paths in test READMEs | Martin Erlandsson | |
2019-09-26 | doc: Improve test READMEs | Fabian Jahr | |
2019-07-15 | doc: describe how to pass wildcard names to test runner | Jon Atack | |
2019-06-19 | doc: Remove travis badge from readme | MarcoFalke | |
2019-02-05 | Merge #14519: tests: add utility to easily profile node performance with perf | MarcoFalke | |
13782b8ba8 docs: add perf section to developer docs (James O'Beirne) 58180b5fd4 tests: add utility to easily profile node performance with perf (James O'Beirne) Pull request description: Adds a context manager to easily (and selectively) profile node performance during functional test execution using `perf`. While writing some tests, I encountered some odd bitcoind slowness. I wrote up a utility (`TestNode.profile_with_perf`) that generates performance diagnostics for a node by running `perf` during the execution of a particular region of test code. `perf` usage is detailed in the excellent (and sadly unmerged) https://github.com/bitcoin/bitcoin/pull/12649; all due props to @eklitzke. ### Example ```python with node.profile_with_perf("large-msgs"): for i in range(200): node.p2p.send_message(some_large_msg) node.p2p.sync_with_ping() ``` This generates a perf data file in the test node's datadir (`/tmp/testtxmpod0y/node0/node-0-TestName-large-msgs.perf.data`). Running `perf report` generates nice output about where the node spent most of its time while running that part of the test: ```bash $ perf report -i /tmp/testtxmpod0y/node0/node-0-TestName-large-msgs.perf.data --stdio \ | c++filt \ | less # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 135 of event 'cycles:pp' # Event count (approx.): 1458205679493582 # # Children Self Command Shared Object Symbol # ........ ........ ............... ................... ........................................................................................................................................................................................................................................................................ # 70.14% 0.00% bitcoin-net bitcoind [.] CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) | ---CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) 70.14% 0.00% bitcoin-net bitcoind [.] CNetMessage::readData(char const*, unsigned int) | ---CNetMessage::readData(char const*, unsigned int) CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) 35.52% 0.00% bitcoin-net bitcoind [.] std::vector<char, zero_after_free_allocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, zero_after_free_allocator<char> > >, unsigned long, char const&) | ---std::vector<char, zero_after_free_allocator<char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<char*, std::vector<char, zero_after_free_allocator<char> > >, unsigned long, char const&) CNetMessage::readData(char const*, unsigned int) CNode::ReceiveMsgBytes(char const*, unsigned int, bool&) ... ``` Tree-SHA512: 9ac4ceaa88818d5eca00994e8e3c8ad42ae019550d6583972a0a4f7b0c4f61032e3d0c476b4ae58756bc5eb8f8015a19a7fc26c095bd588f31d49a37ed0c6b3e | |||
2019-01-31 | gdb attaching to process during tests has non-sudo solution | Gregory Sanders | |
2019-01-22 | tests: add utility to easily profile node performance with perf | James O'Beirne | |
Introduces `TestNode.profile_with_perf()` context manager which samples node execution to produce profiling data. Also introduces a test framework flag, `--perf`, which will run perf on all nodes for the duration of a given test. | |||
2019-01-09 | docs: Clarifying testing instructions | benthecarman | |
2018-10-20 | docs: Document lint tests | Mason Simon | |
2018-07-24 | scripted-diff: Remove trailing whitespaces | João Barbosa | |
-BEGIN VERIFY SCRIPT- sed --in-place'' --regexp-extended 's/[[:space:]]+$//g' $(git grep -I --files-with-matches --extended-regexp '[[:space:]]+$' -- src test ':!*.svg' ':!src/crypto/sha256_sse4*' ':!src/leveldb' ':!src/qt/locale' ':!src/secp256k1' ':!src/univalue') -END VERIFY SCRIPT- | |||
2018-02-06 | [tests] Update README after filename change | Conor Scott | |
2018-01-22 | [trivial][docs] Fix incorrect link in /test/ README.md | fanquake | |
2017-06-27 | add gdb attach process to test README | Gregory Sanders | |
2017-06-27 | [tests] Update functional tests documentation | John Newbery | |
2017-05-14 | qa: Warn when specified test is not found | MarcoFalke | |
2017-04-17 | Tests: Put Extended tests first when they're included | Jimmy Song | |
* Added documentation in tests/README.md about enabling wallet, utils and daemon. * Change ordering to make the long-running EXTENDED_TESTS go first. | |||
2017-03-20 | Move src/test/bitcoin-util-test.py to test/util/bitcoin-util-test.py | John Newbery | |
2017-03-20 | Rename test/pull-tester/rpc-tests.py to test/functional/test_runner.py | John Newbery | |
2017-03-20 | Rename rpc-tests directory to functional | John Newbery | |
2017-03-20 | Rename qa directory to test | John Newbery | |