From 4de0ac33519b8355e30fdf6be5c73192395bfc45 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 28 Nov 2017 15:38:46 +0100 Subject: [PATCH] test: Add test for `-debuglogfile` --- qa/pull-tester/rpc-tests.sh | 1 + qa/rpc-tests/feature_logging.py | 42 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 qa/rpc-tests/feature_logging.py diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh index 5ff4752c0..b6454a304 100755 --- a/qa/pull-tester/rpc-tests.sh +++ b/qa/pull-tester/rpc-tests.sh @@ -87,6 +87,7 @@ testScripts=( 'feature_zip221.py' 'upgrade_golden.py' 'post_heartwood_rollback.py' + 'feature_logging.py' ); testScriptsExt=( 'getblocktemplate_longpoll.py' diff --git a/qa/rpc-tests/feature_logging.py b/qa/rpc-tests/feature_logging.py new file mode 100755 index 000000000..24591e176 --- /dev/null +++ b/qa/rpc-tests/feature_logging.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# Copyright (c) 2017 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +"""Test debug logging.""" + +import os + +from test_framework.test_framework import BitcoinTestFramework + +class LoggingTest(BitcoinTestFramework): + def set_test_params(self): + self.num_nodes = 1 + self.setup_clean_chain = True + + def run_test(self): + # test default log file name + assert os.path.isfile(os.path.join(self.nodes[0].datadir, "regtest", "debug.log")) + + # test alternative log file name in datadir + self.restart_node(0, ["-debuglogfile=foo.log"]) + assert os.path.isfile(os.path.join(self.nodes[0].datadir, "regtest", "foo.log")) + + # test alternative log file name outside datadir + tempname = os.path.join(self.options.tmpdir, "foo.log") + self.restart_node(0, ["-debuglogfile=%s" % tempname]) + assert os.path.isfile(tempname) + + # check that invalid log (relative) will cause error + self.stop_node(0) + self.assert_start_raises_init_error(0, ["-debuglogfile=ssdksjdf/sdasdfa/sdfsdfsfd"], + "Error: Could not open debug log file") + + # check that invalid log (absolute) will cause error + self.stop_node(0) + invalidname = os.path.join(self.options.tmpdir, "foo/foo.log") + self.assert_start_raises_init_error(0, ["-debuglogfile=%s" % invalidname], + "Error: Could not open debug log file") + + +if __name__ == '__main__': + LoggingTest().main()