From 79bb3ff5b3e19390a92f507e2bdc8f68fef99e57 Mon Sep 17 00:00:00 2001 From: Kristaps Kaupe Date: Fri, 28 May 2021 02:01:10 +0300 Subject: [PATCH] Allow to specify all conftest.py arguments to run_tests.sh --- test/run_tests.sh | 112 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 109 insertions(+), 3 deletions(-) diff --git a/test/run_tests.sh b/test/run_tests.sh index 813d875..504eb79 100755 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -35,6 +35,86 @@ parse_flags () { while :; do case $1 in + -c|--btcconf) + if [[ "$2" ]]; then + btcconf="$2" + shift + else + echo 'ERROR: "--btcconf" requires a non-empty option argument.' + return 1 + fi + ;; + --btcconf=?*) + btcconf="${1#*=}" + ;; + --btcconf=) + echo 'ERROR: "--btcconf" requires a non-empty option argument.' + return 1 + ;; + -p|--btcpwd) + if [[ "$2" ]]; then + btcpwd="$2" + shift + else + echo 'ERROR: "--btcpwd" requires a non-empty option argument.' + return 1 + fi + ;; + --btcpwd=?*) + btcpwd="${1#*=}" + ;; + --btcpwd=) + echo 'ERROR: "--btcpwd" requires a non-empty option argument.' + return 1 + ;; + -r|--btcroot) + if [[ "$2" ]]; then + btcroot="$2" + shift + else + echo 'ERROR: "--btcroot" requires a non-empty option argument.' + return 1 + fi + ;; + --btcroot=?*) + btcroot="${1#*=}" + ;; + --btcroot=) + echo 'ERROR: "--btcroot" requires a non-empty option argument.' + return 1 + ;; + -u|--btcuser) + if [[ "$2" ]]; then + btcuser="$2" + shift + else + echo 'ERROR: "--btcuser" requires a non-empty option argument.' + return 1 + fi + ;; + --btcuser=?*) + btcuser="${1#*=}" + ;; + --btcuser=) + echo 'ERROR: "--btcuser" requires a non-empty option argument.' + return 1 + ;; + -i|--nirc) + if [[ "$2" ]]; then + nirc="$2" + shift + else + echo 'ERROR: "--nirc" requires a non-empty option argument.' + return 1 + fi + ;; + --nirc=?*) + btcconf="${1#*=}" + ;; + --nirc=) + echo 'ERROR: "--nirc" requires a non-empty option argument.' + return 1 + ;; -v|--verbose) verbose_output=1 ;; @@ -47,6 +127,14 @@ Usage: "${0}" [options] Options: +--btcconf, -c the fully qualified path to the location of the bitcoin + configuration file you use for testing, e.g. + /home/user/.bitcoin/bitcoin.conf +--btcpwd, -p the RPC password for your test bitcoin instance +--btcroot, -r the fully qualified path to the directory containing the + bitcoin binaries, e.g. /home/user/bitcoin/bin/ +--btcuser, -u the RPC username for your test bitcoin instance (default: $btcuser) +--nirc, -i the number of local miniircd instances (default: $nirc) --verbose, -v verbose output " exit 1 @@ -59,7 +147,14 @@ Options: run_jm_tests () { verbose_output=0 - parse_flags ${@} + btcconf="" + btcroot="" + btcuser="bitcoinrpc" + btcpwd="123456abcdef" + nirc="2" + if ! parse_flags ${@}; then + return 1 + fi additional_pytest_flags="" if [[ $verbose_output == 1 ]]; then @@ -111,10 +206,21 @@ run_jm_tests () umask 077 rm -rf "${jm_test_datadir}" mkdir -p "${jm_test_datadir}" - cp -f ./test/bitcoin.conf "${jm_test_datadir}/bitcoin.conf" + if [[ -z "$btcconf" ]]; then + btcconf="${jm_test_datadir}/bitcoin.conf" + cp -f ./test/bitcoin.conf "${jm_test_datadir}/bitcoin.conf" + fi ${orig_umask} echo "datadir=${jm_test_datadir}" >> "${jm_test_datadir}/bitcoin.conf" - python -m pytest $additional_pytest_flags ${HAS_JOSH_K_SEAL_OF_APPROVAL+--cov=jmclient --cov=jmbitcoin --cov=jmbase --cov=jmdaemon --cov-report html} --btcpwd=123456abcdef --btcconf=${jm_test_datadir}/bitcoin.conf --btcuser=bitcoinrpc --nirc=2 -p no:warnings --ignore test/test_full_coinjoin.py + python -m pytest $additional_pytest_flags \ + ${HAS_JOSH_K_SEAL_OF_APPROVAL+--cov=jmclient --cov=jmbitcoin --cov=jmbase --cov=jmdaemon --cov-report html} \ + --btcconf=$btcconf \ + --btcpwd=$btcpwd \ + --btcroot=$btcroot \ + --btcuser=$btcuser \ + --nirc=$nirc \ + -p no:warnings \ + --ignore test/test_full_coinjoin.py local success="$?" [[ -f ./joinmarket.cfg ]] && unlink ./joinmarket.cfg if [ -f "${jm_test_datadir}/bitcoind.pid" ] && read bitcoind_pid <"${jm_test_datadir}/bitcoind.pid"; then