From: Lukasz Majewski <lukma@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 13/14] log: test: Add a pytest for logging
Date: Tue, 21 Nov 2017 11:03:46 +0100 [thread overview]
Message-ID: <20171121110346.36c741fc@jawa> (raw)
In-Reply-To: <20171120223335.45852-14-sjg@chromium.org>
On Mon, 20 Nov 2017 15:33:34 -0700
Simon Glass <sjg@chromium.org> wrote:
> Add a test which tries out various filters and options to make sure
> that logging works as expected.
>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v3: None
> Changes in v2:
> - Change log levels to match new header
> - Only execute log tests if CONFIG_LOG is enabled
> - Rename LOGL_WARN to LOGL_WARNING
>
> MAINTAINERS | 1 +
> test/py/tests/test_log.py | 101
> ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102
> insertions(+) create mode 100644 test/py/tests/test_log.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 47f68651a7c..09ff9e76df9 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -298,6 +298,7 @@ T: git git://git.denx.de/u-boot.git
> F: common/log.c
> F: cmd/log.c
> F: test/log/log_test.c
> +F: test/py/tests/test_log.py
>
> MICROBLAZE
> M: Michal Simek <monstr@monstr.eu>
> diff --git a/test/py/tests/test_log.py b/test/py/tests/test_log.py
> new file mode 100644
> index 00000000000..fa9a25e8dc0
> --- /dev/null
> +++ b/test/py/tests/test_log.py
> @@ -0,0 +1,101 @@
> +# Copyright (c) 2016, Google Inc.
> +#
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# U-Boot Verified Boot Test
> +
> +"""
> +This tests U-Boot logging. It uses the 'log test' command with
> various options +and checks that the output is correct.
> +"""
> +
> +import pytest
> +
> +LOGL_FIRST, LOGL_WARNING, LOGL_INFO = (0, 4, 6)
> +
> + at pytest.mark.buildconfigspec('log')
> +def test_log(u_boot_console):
> + """Test that U-Boot logging works correctly."""
> + def check_log_entries(lines, mask, max_level=LOGL_INFO):
> + """Check that the expected log records appear in the output
> +
> + Args:
> + lines: iterator containing lines to check
> + mask: bit mask to select which lines to check for:
> + bit 0: standard log line
> + bit 1: _log line
> + max_level: maximum log level to expect in the output
> + """
> + for i in range(max_level):
> + if mask & 1:
> + assert 'log %d' % i == lines.next()
> + if mask & 3:
> + assert '_log %d' % i == lines.next()
> +
> + def run_test(testnum):
> + """Run a particular test number (the 'log test' command)
> +
> + Args:
> + testnum: Test number to run
> + Returns:
> + iterator containing the lines output from the command
> + """
> +
> + with cons.log.section('basic'):
> + output = u_boot_console.run_command('log test %d' %
> testnum)
> + split = output.replace('\r', '').splitlines()
> + lines = iter(split)
> + assert 'test %d' % testnum == lines.next()
> + return lines
> +
> + def test0():
> + lines = run_test(0)
> + check_log_entries(lines, 3)
> +
> + def test1():
> + lines = run_test(1)
> + check_log_entries(lines, 3)
> +
> + def test2():
> + lines = run_test(2)
> +
> + def test3():
> + lines = run_test(3)
> + check_log_entries(lines, 2)
> +
> + def test4():
> + lines = run_test(4)
> + assert next(lines, None) == None
> +
> + def test5():
> + lines = run_test(5)
> + check_log_entries(lines, 2)
> +
> + def test6():
> + lines = run_test(6)
> + check_log_entries(lines, 3)
> +
> + def test7():
> + lines = run_test(7)
> + check_log_entries(lines, 3, LOGL_WARNING)
> +
> + def test8():
> + lines = run_test(8)
> + check_log_entries(lines, 3)
> +
> + def test9():
> + lines = run_test(9)
> + check_log_entries(lines, 3)
> +
> + # TODO(sjg at chromium.org): Consider structuring this as separate
> tests
> + cons = u_boot_console
> + test0()
> + test1()
> + test2()
> + test3()
> + test4()
> + test5()
> + test6()
> + test7()
> + test8()
> + test9()
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171121/d772216b/attachment.sig>
next prev parent reply other threads:[~2017-11-21 10:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-20 22:33 [U-Boot] [PATCH v3 00/14] log: Add a new logging feature Simon Glass
2017-11-20 22:33 ` [U-Boot] [PATCH v3 01/14] Revert "sandbox: remove os_putc() and os_puts()" Simon Glass
2017-11-20 22:33 ` [U-Boot] [PATCH v3 02/14] sandbox: Adjust pre-console address to avoid conflict Simon Glass
2017-11-20 22:33 ` [U-Boot] [PATCH v3 03/14] Revert "sandbox: Drop special case console code for sandbox" Simon Glass
2017-11-20 22:33 ` [U-Boot] [PATCH v3 04/14] Move debug and logging support to a separate header Simon Glass
2017-11-21 9:41 ` Lukasz Majewski
2017-11-20 22:33 ` [U-Boot] [PATCH v3 05/14] mtdparts: Correct use of debug() Simon Glass
2017-11-20 22:33 ` [U-Boot] [PATCH v3 06/14] Drop the log buffer Simon Glass
2017-11-20 22:33 ` [U-Boot] [PATCH v3 07/14] log: Add an implemention of logging Simon Glass
2017-11-21 9:55 ` Lukasz Majewski
2017-11-24 1:49 ` Simon Glass
2017-11-20 22:33 ` [U-Boot] [PATCH v3 08/14] log: Add a console driver Simon Glass
2017-11-21 9:57 ` Lukasz Majewski
2017-11-20 22:33 ` [U-Boot] [PATCH v3 09/14] log: Add a 'log level' command Simon Glass
2017-11-21 9:58 ` Lukasz Majewski
2017-11-20 22:33 ` [U-Boot] [PATCH v3 10/14] log: Add a test command Simon Glass
2017-11-21 10:00 ` Lukasz Majewski
2017-11-30 3:35 ` [U-Boot] [U-Boot,v3,10/14] " Tom Rini
2017-11-30 16:27 ` Simon Glass
2017-11-30 16:38 ` Tom Rini
2017-11-20 22:33 ` [U-Boot] [PATCH v3 11/14] log: Plumb logging into the init sequence Simon Glass
2017-11-21 10:01 ` Lukasz Majewski
2017-11-20 22:33 ` [U-Boot] [PATCH v3 12/14] log: sandbox: Enable logging Simon Glass
2017-11-21 10:01 ` Lukasz Majewski
2017-11-20 22:33 ` [U-Boot] [PATCH v3 13/14] log: test: Add a pytest for logging Simon Glass
2017-11-21 10:03 ` Lukasz Majewski [this message]
2017-11-20 22:33 ` [U-Boot] [PATCH v3 14/14] log: Add documentation Simon Glass
2017-11-21 10:19 ` Lukasz Majewski
2018-04-02 8:43 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171121110346.36c741fc@jawa \
--to=lukma@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox