Skip to content

Commit

Permalink
test: add scenario 'regtest'
Browse files Browse the repository at this point in the history
  • Loading branch information
erikarvstedt committed Oct 16, 2020
1 parent 1f96ca6 commit 9951f10
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 0 deletions.
1 change: 1 addition & 0 deletions test/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ all() {
scenario=default buildTest "$@"
scenario=netns buildTest "$@"
scenario=full buildTest "$@"
scenario=regtest buildTest "$@"
}

build() {
Expand Down
32 changes: 32 additions & 0 deletions test/tests.nix
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,38 @@ let testEnv = rec {
tests.backups = mkForce false;
};

# All regtest-enabled services
regtest = {
imports = [ scenarios.regtestBase ];
services.clightning.enable = true;
services.spark-wallet.enable = true;
services.lnd.enable = true;
services.lightning-loop.enable = true;
services.electrs.enable = true;
services.btcpayserver.enable = true;
services.joinmarket.enable = true;
};

regtestBase = {
tests.regtest = true;

services.bitcoind.regtest = true;
systemd.services.bitcoind.postStart = mkAfter ''
cli=${config.services.bitcoind.cli}/bin/bitcoin-cli
address=$($cli getnewaddress)
$cli generatetoaddress 10 $address
'';

# lightning-loop contains no builtin swap server for regtest.
# Add a dummy definition.
services.lightning-loop.extraConfig = ''
server.host=localhost
'';

# Needs wallet support which is unavailable for regtest
services.joinmarket.yieldgenerator.enable = mkForce false;
};

## Examples / debug helper

# Run a selection of tests in scenario 'netns'
Expand Down
21 changes: 21 additions & 0 deletions test/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,27 @@ def _():
assert_no_failure("bitcoind-import-banlist")


@test("regtest")
def _():
if "electrs" in enabled_tests:
machine.wait_until_succeeds(log_has_string("electrs", "BlockchainInfo"))
get_block_height_cmd = (
"""echo '{"method": "blockchain.headers.subscribe", "id": 0, "params": []}'"""
f" | nc -N {ip('electrs')} 50001 | jq -M .result.height"
)
assert_full_match(get_block_height_cmd, "10\n")
if "clightning" in enabled_tests:
machine.wait_until_succeeds(
"[[ $(sudo -u operator lightning-cli getinfo | jq -M .blockheight) == 10 ]]"
)
if "lnd" in enabled_tests:
machine.wait_until_succeeds(
"[[ $(sudo -u operator lncli getinfo | jq -M .block_height) == 10 ]]"
)
if "lightning-loop" in enabled_tests:
machine.wait_until_succeeds(log_has_string("lightning-loop", "Connected to lnd node"))


if "netns-isolation" in enabled_tests:

def ip(name):
Expand Down

0 comments on commit 9951f10

Please sign in to comment.