26 Commits

Author SHA1 Message Date
pythcoiner
5c088b2eb6 tests: notifyAll() is deprecated, replace w/ notify_all() 2024-11-18 11:35:12 +01:00
Antoine Poinsot
8b76a6b977
Merge #1269: Couple fixes to the functional tests
7cce13656266d90431133ccb4de5ccf086f4aa82 qa: test proc stderr isn't None before closing it (Antoine Poinsot)
ba553e9ddb104af454d9eff9969c0e37a1f3061a qa: adapt bitcoind config to support 28.0 (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    ACK 7cce13656266d90431133ccb4de5ccf086f4aa82

Tree-SHA512: ff0a9addd6063cd31b8e7f76cbf2b7ed1f5e85c2d7192ed5e73bba1c81a3bb4e8740ff7c5242d054115e28e484c87f85cafcbbc4dcc4ecf24ff415a028e1b0b5
2024-09-05 17:10:30 +02:00
jp1ac4
371e31e3f3
func test: allow to run using electrs backend 2024-09-05 14:55:53 +01:00
jp1ac4
a85d4887e9
func test: allow for different bitcoin backends 2024-09-05 14:55:50 +01:00
Antoine Poinsot
7cce136562
qa: test proc stderr isn't None before closing it 2024-09-05 14:32:03 +02:00
Antoine Poinsot
26ade7ebdd
qa: pipe stderr to stdout, not PIPE
It turns out that setting both to PIPE would result in stderr not being
read for some reason. So follow
https://docs.python.org/3/library/subprocess.html and set stdout to PIPE
and stderr to STDOUT.

Tested with a process (electrs) which logs on stderr.
2024-09-04 11:22:51 +02:00
jp1ac4
deb75884bf
tests: run black 2024-03-28 11:03:15 +00:00
Antoine Poinsot
ecef6bff5e
qa: functional tests lianad using Taproot descriptors
We introduce Taproot support in the test framework through a global
toggle. A few modifications are made to some tests to adapt them under
Taproot (notably the hardcoded fees / amounts).

This is based on my introduction of a quick and dirty support for
TapMiniscript in my python-bip380 library:
https://github.com/darosior/python-bip380/pull/23. In addition to this i
didn't want to implement a signer in the Python test suite so here we
introduce a simple Rust program based on our "hot signer" which will
sign a PSBT with an xpriv provided through its stdin and output the
signed PSBT on its stdout. Eventually it would be nicer to have a Python
signer instead of having to call a program.

The whole test suite should pass under both Taproot and P2WSH. Only a
single test is skipped for now under Taproot since it needs a finalizer
in the test suite.

I also caught a bug in the RBF tests which i fixed in place.
2024-03-13 19:21:52 +01:00
jp1ac4
1e7653e08a
tests: add function to wait while condition holds
This adds a new utils function that is a slight generalisation
of `wait_for` with an additional condition that must always be
met while waiting.

`wait_for` now calls this new function with the condition being
one that is always true.
2024-03-11 15:41:17 +00:00
Antoine Poinsot
bdf8b8f625
Rename IS_BITCOIND_25 to IS_NOT_BITCOIND_26
for f in ; do sed -i 's/IS_BITCOIND_25/IS_NOT_BITCOIND_24/g' tests/test_misc.py; done
2024-02-27 14:18:04 +01:00
jp1ac4
68b2503b12
func tests: move function to utils 2023-11-28 13:55:26 +00:00
jp1ac4
fdab722eff
func tests: run black 2023-11-28 13:55:25 +00:00
Antoine Poinsot
0f6fc48e88
qa: only run the RPC retry functional test with bitcoind 25.0 2023-08-09 15:50:22 +02:00
Antoine Poinsot
96ff447fc9
tests: add a datadir migration functional test
This is currently to test database migrations at the functional level, but
is also more generally useful to test backward compatibility.
2023-04-05 17:30:01 +02:00
Antoine Poinsot
f262ca2d1c
tests: reduce the number of workers for the executor
We don't use the executor much anyways.
2023-04-05 12:41:04 +02:00
Antoine Poinsot
3c82173f46
qa: abstract the signer from the Lianad class
That's prep work to introduce a multisig
2023-01-24 19:38:34 +01:00
Antoine Poinsot
3b5cbd5122
qa: introduce a sign_and_broadcast utility 2022-12-09 12:27:50 +01:00
Antoine Poinsot
f5ff0fad36
daemon: 'revaultd' name usage leftovers 2022-11-18 18:33:07 +01:00
Antoine Poinsot
968a7d17a0
daemon: rename Minisafe to Liana 2022-11-17 17:10:22 +01:00
Antoine Poinsot
4bd65213e2
commands: swap the outpoints and destinations arguments to createspend
The outpoints argument could eventually be made optional in order to
introduce some automated coin selection. So it makes more sense for it
to be after a required parameter, the destinations.
2022-11-17 15:15:22 +01:00
Antoine Poinsot
af9f0aeaed
qa: replace our PSBT implementation with a tweaked version of Bitcoin Core's
This replaces our existing implementation of PSBTs with a more
straightforward one, adapted from the Bitcoin Core functional tests
framework. This fixes a few flakes that occured because the previous
implementation could produce invalid PSBTs.

The Bitcoin Core implementation is pretty low level and was adapted to
treat mappings as such (the value in the PSBTMap can itself be a
mapping, like for partial signatures or BIP32 derivation paths).

The rest of the diff is adapting the users of PSBT to use the new
implementation and the clearly superior interface (yay!).
2022-10-19 12:07:22 +02:00
Antoine Poinsot
eff39ee35a
rpc: a new 'broadcastspend' command 2022-10-18 19:54:03 +02:00
Antoine Poinsot
99ab0d7add
commands: add a 'spend_info' field to the 'listcoins' entries 2022-10-17 11:47:42 +02:00
Antoine Poinsot
09f59c417b
qa: fix the UDS class' forwarding method calls as JSONRPC calls
We weren't passing arguments if they were a list!
2022-09-15 11:41:32 +02:00
Antoine Poinsot
93098be7dc
tests: implement the connection to the daemon's RPC server
And add some basic sanity check of the existing commands.
2022-08-17 19:39:54 +02:00
Antoine Poinsot
7c3289fda9
tests: add a functional test framework, adapted from revaultd 2022-07-25 16:31:35 +02:00