From 5c0170c6b8ea01a439a6f2bb0437d36343089243 Mon Sep 17 00:00:00 2001 From: Jonas Nick Date: Sun, 2 Aug 2020 22:02:09 +0000 Subject: [PATCH] tests: add post-clightning extra tests to scenarios --- test/scenarios/default.py | 5 +++ test/scenarios/lib.py | 6 +-- test/scenarios/withnetns.py | 87 +++++++++++++++++++------------------ 3 files changed, 51 insertions(+), 47 deletions(-) diff --git a/test/scenarios/default.py b/test/scenarios/default.py index 8bfcd5b..9efb3c6 100644 --- a/test/scenarios/default.py +++ b/test/scenarios/default.py @@ -25,12 +25,17 @@ def web_index(): assert_matches("curl -L localhost/store", "tshirt") +def post_clightning(): + pass + + extra_tests = { "electrs": electrs, "spark-wallet": spark_wallet, "lightning-charge": lightning_charge, "nanopos": nanopos, "web-index": web_index, + "post-clightning": post_clightning, } run_tests(extra_tests) diff --git a/test/scenarios/lib.py b/test/scenarios/lib.py index 32602e6..2951a67 100644 --- a/test/scenarios/lib.py +++ b/test/scenarios/lib.py @@ -113,6 +113,8 @@ def run_tests(extra_tests): ) assert_no_failure("bitcoind-import-banlist") + extra_tests.pop("post-clightning")() + ### Test lnd stopped_services = "nanopos lightning-charge spark-wallet clightning" @@ -131,9 +133,5 @@ def run_tests(extra_tests): log_has_string("lightning-loop", "chain notifier RPC isstill in the process of starting") ) - ### Stop lnd and restart clightning - succeed("systemctl stop lnd") - succeed("systemctl start " + stopped_services) - ### Check that all extra_tests have been run assert len(extra_tests) == 0 diff --git a/test/scenarios/withnetns.py b/test/scenarios/withnetns.py index 26ecbe4..3ae3f0c 100644 --- a/test/scenarios/withnetns.py +++ b/test/scenarios/withnetns.py @@ -10,7 +10,7 @@ nanopos_ip = "169.254.1.19" recurringdonations_ip = "169.254.1.20" nginx_ip = "169.254.1.21" -## electrs + def electrs(): machine.wait_until_succeeds( "ip netns exec nb-electrs nc -z localhost 4224" @@ -46,54 +46,55 @@ def web_index(): assert_matches("ip netns exec nb-nginx curl -L localhost/store", "tshirt") +def post_clightning(): + ping_bitcoind = "ip netns exec nb-bitcoind ping -c 1 -w 1" + ping_nanopos = "ip netns exec nb-nanopos ping -c 1 -w 1" + + # Positive ping tests (non-exhaustive) + machine.succeed( + "%s %s &&" % (ping_bitcoind, bitcoind_ip) + + "%s %s &&" % (ping_bitcoind, clightning_ip) + + "%s %s &&" % (ping_bitcoind, liquidd_ip) + + "%s %s &&" % (ping_nanopos, lightningcharge_ip) + + "%s %s &&" % (ping_nanopos, nanopos_ip) + + "%s %s" % (ping_nanopos, nginx_ip) + ) + + # Negative ping tests (non-exhaustive) + machine.fail( + "%s %s ||" % (ping_bitcoind, sparkwallet_ip) + + "%s %s ||" % (ping_bitcoind, lightningcharge_ip) + + "%s %s ||" % (ping_bitcoind, nanopos_ip) + + "%s %s ||" % (ping_bitcoind, recurringdonations_ip) + + "%s %s ||" % (ping_bitcoind, nginx_ip) + + "%s %s ||" % (ping_nanopos, bitcoind_ip) + + "%s %s ||" % (ping_nanopos, clightning_ip) + + "%s %s ||" % (ping_nanopos, lnd_ip) + + "%s %s ||" % (ping_nanopos, liquidd_ip) + + "%s %s ||" % (ping_nanopos, electrs_ip) + + "%s %s ||" % (ping_nanopos, sparkwallet_ip) + + "%s %s" % (ping_nanopos, recurringdonations_ip) + ) + + # test that netns-exec can't be run for unauthorized namespace + machine.fail("netns-exec nb-electrs ip a") + + # test that netns-exec drops capabilities + assert_matches_exactly( + "su operator -c 'netns-exec nb-bitcoind capsh --print | grep Current '", "Current: =\n" + ) + + # test that netns-exec can not be executed by users that are not operator + machine.fail("sudo -u clightning netns-exec nb-bitcoind ip a") + + extra_tests = { "electrs": electrs, "spark-wallet": spark_wallet, "lightning-charge": lightning_charge, "nanopos": nanopos, "web-index": web_index, + "post-clightning": post_clightning, } run_tests(extra_tests) - -### Security tests - -ping_bitcoind = "ip netns exec nb-bitcoind ping -c 1 -w 1" -ping_nanopos = "ip netns exec nb-nanopos ping -c 1 -w 1" - -# Positive ping tests (non-exhaustive) -machine.succeed( - "%s %s &&" % (ping_bitcoind, bitcoind_ip) - + "%s %s &&" % (ping_bitcoind, clightning_ip) - + "%s %s &&" % (ping_bitcoind, liquidd_ip) - + "%s %s &&" % (ping_nanopos, lightningcharge_ip) - + "%s %s &&" % (ping_nanopos, nanopos_ip) - + "%s %s" % (ping_nanopos, nginx_ip) -) - -# Negative ping tests (non-exhaustive) -machine.fail( - "%s %s ||" % (ping_bitcoind, sparkwallet_ip) - + "%s %s ||" % (ping_bitcoind, lightningcharge_ip) - + "%s %s ||" % (ping_bitcoind, nanopos_ip) - + "%s %s ||" % (ping_bitcoind, recurringdonations_ip) - + "%s %s ||" % (ping_bitcoind, nginx_ip) - + "%s %s ||" % (ping_nanopos, bitcoind_ip) - + "%s %s ||" % (ping_nanopos, clightning_ip) - + "%s %s ||" % (ping_nanopos, lnd_ip) - + "%s %s ||" % (ping_nanopos, liquidd_ip) - + "%s %s ||" % (ping_nanopos, electrs_ip) - + "%s %s ||" % (ping_nanopos, sparkwallet_ip) - + "%s %s" % (ping_nanopos, recurringdonations_ip) -) - -# test that netns-exec can't be run for unauthorized namespace -machine.fail("netns-exec nb-electrs ip a") - -# test that netns-exec drops capabilities -assert_matches_exactly( - "su operator -c 'netns-exec nb-bitcoind capsh --print | grep Current '", "Current: =\n" -) - -# test that netns-exec can not be executed by users that are not operator -machine.fail("sudo -u clightning netns-exec nb-bitcoind ip a")