From ce4d2888078924ece78d843b70ef758e7740dec9 Mon Sep 17 00:00:00 2001 From: CryptoGraphyBTC <62628766+amanciojsilvjr@users.noreply.github.com> Date: Wed, 6 Jul 2022 05:46:52 -0300 Subject: [PATCH] Create google.yml --- google.yml | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 google.yml diff --git a/google.yml b/google.yml new file mode 100644 index 0000000000..fe4f02dfe6 --- /dev/null +++ b/google.yml @@ -0,0 +1,74 @@ +#!/usr/bin/env python3 +# Copyright (c) 2017-2021 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 +from test_framework.test_node import ErrorMatch + + +class LoggingTest(BitcoinTestFramework): + def set_test_params(self): + self.num_nodes = 1 + self.setup_clean_chain = True + + def relative_log_path(self, name): + return os.path.join(self.nodes[0].datadir, self.chain, name) + + def run_test(self): + # test default log file name + default_log_path = self.relative_log_path("debug.log") + assert os.path.isfile(default_log_path) + + # test alternative log file name in datadir + self.restart_node(0, ["-debuglogfile=foo.log"]) + assert os.path.isfile(self.relative_log_path("foo.log")) + + # test alternative log file name outside datadir + tempname = os.path.join(self.options.tmpdir, "foo.log") + self.restart_node(0, [f"-debuglogfile={tempname}"]) + assert os.path.isfile(tempname) + + # check that invalid log (relative) will cause error + invdir = self.relative_log_path("foo") + invalidname = os.path.join("foo", "foo.log") + self.stop_node(0) + exp_stderr = r"Error: Could not open debug log file \S+$" + self.nodes[0].assert_start_raises_init_error([f"-debuglogfile={invalidname}"], exp_stderr, match=ErrorMatch.FULL_REGEX) + assert not os.path.isfile(os.path.join(invdir, "foo.log")) + + # check that invalid log (relative) works after path exists + self.stop_node(0) + os.mkdir(invdir) + self.start_node(0, [f"-debuglogfile={invalidname}"]) + assert os.path.isfile(os.path.join(invdir, "foo.log")) + + # check that invalid log (absolute) will cause error + self.stop_node(0) + invdir = os.path.join(self.options.tmpdir, "foo") + invalidname = os.path.join(invdir, "foo.log") + self.nodes[0].assert_start_raises_init_error([f"-debuglogfile={invalidname}"], exp_stderr, match=ErrorMatch.FULL_REGEX) + assert not os.path.isfile(os.path.join(invdir, "foo.log")) + + # check that invalid log (absolute) works after path exists + self.stop_node(0) + os.mkdir(invdir) + self.start_node(0, [f"-debuglogfile={invalidname}"]) + assert os.path.isfile(os.path.join(invdir, "foo.log")) + + # check that -nodebuglogfile disables logging + self.stop_node(0) + os.unlink(default_log_path) + assert not os.path.isfile(default_log_path) + self.start_node(0, ["-nodebuglogfile"]) + assert not os.path.isfile(default_log_path) + + # just sanity check no crash here + self.restart_node(0, [f"-debuglogfile={os.devnull}"]) + + +if __name__ == '__main__': + LoggingTest().main()