mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 20:18:18 +00:00 
			
		
		
		
	Use the 2to3 tool to perform numerous automatic conversions from Python 2 syntax to Python 3. Also fix whitespace problems that Python 3 catches that Python 2 did not. Reviewed-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Stephen Warren <swarren@nvidia.com> Tested-by: Simon Glass <sjg@chromium.org> [on sandbox] Signed-off-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			133 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0+
 | 
						|
# Copyright (c) 2016, Google Inc.
 | 
						|
#
 | 
						|
# 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)
 | 
						|
 | 
						|
@pytest.mark.buildconfigspec('cmd_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_run() log %d' % i == next(lines)
 | 
						|
            if mask & 3:
 | 
						|
                assert 'func() _log %d' % i == next(lines)
 | 
						|
 | 
						|
    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 == next(lines)
 | 
						|
        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)
 | 
						|
 | 
						|
    def test10():
 | 
						|
        lines = run_test(10)
 | 
						|
        for i in range(7):
 | 
						|
            assert 'log_test() level %d' % i == next(lines)
 | 
						|
 | 
						|
    # TODO(sjg@chromium.org): Consider structuring this as separate tests
 | 
						|
    cons = u_boot_console
 | 
						|
    test0()
 | 
						|
    test1()
 | 
						|
    test2()
 | 
						|
    test3()
 | 
						|
    test4()
 | 
						|
    test5()
 | 
						|
    test6()
 | 
						|
    test7()
 | 
						|
    test8()
 | 
						|
    test9()
 | 
						|
    test10()
 | 
						|
 | 
						|
@pytest.mark.buildconfigspec('cmd_log')
 | 
						|
def test_log_format(u_boot_console):
 | 
						|
    """Test the 'log format' and 'log rec' commands"""
 | 
						|
    def run_with_format(fmt, expected_output):
 | 
						|
        """Set up the log format and then write a log record
 | 
						|
 | 
						|
        Args:
 | 
						|
            fmt: Format to use for 'log format'
 | 
						|
            expected_output: Expected output from the 'log rec' command
 | 
						|
        """
 | 
						|
        output = cons.run_command('log format %s' % fmt)
 | 
						|
        assert output == ''
 | 
						|
        output = cons.run_command('log rec arch notice file.c 123 func msg')
 | 
						|
        assert output == expected_output
 | 
						|
 | 
						|
    cons = u_boot_console
 | 
						|
    with cons.log.section('format'):
 | 
						|
        run_with_format('all', 'NOTICE.arch,file.c:123-func() msg')
 | 
						|
        output = cons.run_command('log format')
 | 
						|
        assert output == 'Log format: clFLfm'
 | 
						|
 | 
						|
        run_with_format('fm', 'func() msg')
 | 
						|
        run_with_format('clfm', 'NOTICE.arch,func() msg')
 | 
						|
        run_with_format('FLfm', 'file.c:123-func() msg')
 | 
						|
        run_with_format('lm', 'NOTICE. msg')
 | 
						|
        run_with_format('m', 'msg')
 |