Merge tag 'dm-9oct18' of git://git.denx.de/u-boot-dm
[platform/kernel/u-boot.git] / test / py / tests / test_log.py
index fa9a25e..cb18344 100644 (file)
@@ -1,7 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0+
 # Copyright (c) 2016, Google Inc.
 #
-# SPDX-License-Identifier:      GPL-2.0+
-#
 # U-Boot Verified Boot Test
 
 """
@@ -13,7 +12,7 @@ import pytest
 
 LOGL_FIRST, LOGL_WARNING, LOGL_INFO = (0, 4, 6)
 
-@pytest.mark.buildconfigspec('log')
+@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):
@@ -28,9 +27,9 @@ def test_log(u_boot_console):
         """
         for i in range(max_level):
             if mask & 1:
-                assert 'log %d' % i == lines.next()
+                assert 'log_run() log %d' % i == lines.next()
             if mask & 3:
-                assert '_log %d' % i == lines.next()
+                assert 'func() _log %d' % i == lines.next()
 
     def run_test(testnum):
         """Run a particular test number (the 'log test' command)
@@ -40,7 +39,6 @@ def test_log(u_boot_console):
         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()
@@ -87,6 +85,11 @@ def test_log(u_boot_console):
         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 == lines.next()
+
     # TODO(sjg@chromium.org): Consider structuring this as separate tests
     cons = u_boot_console
     test0()
@@ -99,3 +102,31 @@ def test_log(u_boot_console):
     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')