Age | Commit message (Collapse) | Author |
|
3c30f27 travis: disable rpc tests for windows until they're not so flaky (Cory Fields)
daf03e7 RPC tests: create initial chain with specific timestamps (Gavin Andresen)
a8b2ce5 regression test only setmocktime RPC call (Gavin Andresen)
|
|
|
|
Use setmocktime to create the initial block chain with
10-minute-apart-blocks starting 1 Jan 2014.
|
|
2db4c8a Fix node ranges in the test framework. (Daniel Kraft)
|
|
Replace "dir" with "dirname" in util.py in qa/rpc-tests/ because "dir"
is the name of a function in python.
|
|
It appears to be breaking randomly on Windows
|
|
"amount" and "fee" do not exist (anymore?).
|
|
|
|
|
|
They're unused since the switch to Travis
|
|
Windows interprets 'foo.txt' as a literal filename while "foo.txt" is treated
as expected.
|
|
the environment
This will allow for windows tests to run with bitcoind.exe and bitcoin-cli.exe
|
|
9f87325 Start with tidier cache directories (Gavin Andresen)
Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
|
|
214091d Update license in pull-tester and rpc-tests (Michael Ford)
|
|
Remove more files from the cached, 200-block-chain data directories.
|
|
2290ed0 Work around #5113. (Daniel Kraft)
dcb9846 Extend getchaintips RPC test. (Daniel Kraft)
Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
|
|
Run tests with --tracerpc and all RPC calls will dump to the console.
Very helpful for debugging.
|
|
|
|
Add the capability to simulate network splits to the RPC test framework
and use it to do more extensive testing of 'getchaintips'.
|
|
Add missing copyright/license header where necessary
|
|
|
|
There's a brief race here, the process might've already exited and cleaned up
after itself. If that's the case, reading from the pidfile will harmlessly
fail. Keep those quiet.
|
|
This adds a -regetest-only undocumented (for regression testing only)
command-line option -blockversion=N to set block.nVersion.
Adds to the "has the rest of the network upgraded to a
block.nVersion we don't understand" code so it calls
-alertnotify when 51 of the last 100 blocks are up-version.
But it only alerts once, not with every subsequent new, upversion
block.
And adds a forknotify.py regression test to make sure it works.
Tested using forknotify.py:
Before adding CAlert::Notify, get:
Assertion failed: -alertnotify did not warn of up-version blocks
Before adding code to only alert once:
Assertion failed: -alertnotify excessive warning of up-version blocks
After final code in this pull:
Tests successful
|
|
|
|
The entire debug log would be huge, and could cause issues for automated tools
like travis. Printing 200 lines is an initial guess at a reasonable number,
more may be required.
|
|
|
|
Use the more portable $$ rather than $BASHPID
|
|
6548cc9 test: don't let the port number exceed the legal range (Cory Fields)
a67eef1 test: redirect comparison tool output to stdout (Cory Fields)
|
|
Port over https://github.com/chronokings/huntercoin/pull/19 from
Huntercoin: This implements a new RPC command "getchaintips" that can be
used to find all currently active chain heads. This is similar to the
-printblocktree startup option, but it can be used without restarting
just via the RPC interface on a running daemon.
|
|
|
|
Set -discover=0 in regtest framework
|
|
dc942e6 Introduce whitelisted peers. (Pieter Wuille)
|
|
b45a6e8 Add test for getblocktemplate longpolling (Wladimir J. van der Laan)
ff6a7af getblocktemplate: longpolling support (Luke Dashjr)
|
|
The regtest framework is local, so often there is no need to
discover our external IP. Setting -discover=0 in util.py works
around shutdown hang caused by GetExternalIP waiting in recv().
|
|
An user on IRC reported an issue where `getrawchangeaddress`
keeps returning a single address when the keypool is exhausted.
In my opinion this is strange behaviour.
- Change CReserveKey to fail when running out of keys in the keypool.
- Make `getrawchangeaddress` return RPC_WALLET_KEYPOOL_RAN_OUT when
unable to create an address.
- Add a Python RPC test for checking the keypool behaviour in combination
with encrypted wallets.
|
|
|
|
This adds a -whitelist option to specify subnet ranges from which peers
that connect are whitelisted. In addition, there is a -whitebind option
which works like -bind, except peers connecting to it are also
whitelisted (allowing a separate listen port for trusted connections).
Being whitelisted has two effects (for now):
* They are immune to DoS disconnection/banning.
* Transactions they broadcast (which are valid) are always relayed,
even if they were already in the mempool. This means that a node
can function as a gateway for a local network, and that rebroadcasts
from the local network will work as expected.
Whitelisting replaces the magic exemption localhost had for DoS
disconnection (local addresses are still never banned, though), which
implied hidden service connects (from a localhost Tor node) were
incorrectly immune to DoS disconnection as well. This old
behaviour is removed for that reason, but can be restored using
-whitelist=127.0.0.1 or -whitelist=::1 can be specified. -whitebind
is safer to use in case non-trusted localhost connections are expected
(like hidden services).
|
|
|
|
Inspired by #3956, with a little more flexibility built in.
I didn't touch rpcbind_test.py, because it only runs on Linux.
|
|
|
|
Port number for RPC is no longer static as multiple tests could be
running at once.
|
|
77cbd46 Let -zapwallettxes recover transaction meta data (Cozz Lovan)
|
|
This avoids a race condition in which the connection was
made but the version handshake is not completed yet. In that
case transactions won't be broadcasted to a peer yet, and
the nodes will wait forever for their mempools to sync.
|
|
3f9a019 added list/get received by address/ account tests (Alon Muroch)
|
|
|
|
New RPC methods: return an estimate of the fee (or priority) a
transaction needs to be likely to confirm in a given number of
blocks.
Mike Hearn created the first version of this method for estimating fees.
It works as follows:
For transactions that took 1 to N (I picked N=25) blocks to confirm,
keep N buckets with at most 100 entries in each recording the
fees-per-kilobyte paid by those transactions.
(separate buckets are kept for transactions that confirmed because
they are high-priority)
The buckets are filled as blocks are found, and are saved/restored
in a new fee_estiamtes.dat file in the data directory.
A few variations on Mike's initial scheme:
To estimate the fee needed for a transaction to confirm in X buckets,
all of the samples in all of the buckets are used and a median of
all of the data is used to make the estimate. For example, imagine
25 buckets each containing the full 100 entries. Those 2,500 samples
are sorted, and the estimate of the fee needed to confirm in the very
next block is the 50'th-highest-fee-entry in that sorted list; the
estimate of the fee needed to confirm in the next two blocks is the
150'th-highest-fee-entry, etc.
That algorithm has the nice property that estimates of how much fee
you need to pay to get confirmed in block N will always be greater
than or equal to the estimate for block N+1. It would clearly be wrong
to say "pay 11 uBTC and you'll get confirmed in 3 blocks, but pay
12 uBTC and it will take LONGER".
A single block will not contribute more than 10 entries to any one
bucket, so a single miner and a large block cannot overwhelm
the estimates.
|
|
Choose ports at startup based on PID, so multiple regression tests
can run on the same system at the same time.
|
|
Add a new test, `rpcbind_test.py`, that extensively tests the new
`-rpcbind` functionality.
|
|
d3081fa Removed LevelDB changes (super3)
|
|
|