[PATCH v5 2/3] test: Add PStore command tests

Tom Rini trini at konsulko.com
Tue Oct 13 20:03:46 CEST 2020


On Tue, Oct 13, 2020 at 06:35:51PM +0200, Frédéric Danis wrote:
> Hi Tom,
> 
> On 13/10/2020 17:48, Tom Rini wrote:
> > On Fri, Mar 20, 2020 at 10:59:23AM +0100, Frédéric Danis wrote:
> > 
> > > Add PStore command to sandbox and sandbox64 defconfigs.
> > > Add test checking:
> > > - 'pstore display' of all records
> > > - 'pstore display' only the 2nd dump record
> > > - 'pstore save' of all records
> > > 
> > > Signed-off-by: Frédéric Danis <frederic.danis at collabora.com>
> > > Cc: Tom Rini <trini at konsulko.com>
> > > Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
> > > Cc: Wolfgang Denk <wd at denx.de>
> > > Cc: Heiko Schocher <hs at denx.de>
> > > ---
> > > Changes in v5:
> > > - Fix test_pstore.py license
> > > 
> > > Changes in v4:
> > > - Fix PStore memory address in sandbox defconfig files for tests
> > > 
> > > Changes in v3:
> > > - Replace 1M test file by 3 * 4K files and build pstore memory during test
> > > 
> > > New in v2:
> > > - Add unit tests
> > > 
> > >   configs/sandbox64_defconfig                |   2 +
> > >   configs/sandbox_defconfig                  |   2 +
> > >   test/py/tests/test_pstore.py               |  73 +++++++++++++++++++++
> > >   test/py/tests/test_pstore_data_console.hex | Bin 0 -> 4096 bytes
> > >   test/py/tests/test_pstore_data_panic1.hex  | Bin 0 -> 4096 bytes
> > >   test/py/tests/test_pstore_data_panic2.hex  | Bin 0 -> 4096 bytes
> > >   6 files changed, 77 insertions(+)
> > >   create mode 100644 test/py/tests/test_pstore.py
> > >   create mode 100644 test/py/tests/test_pstore_data_console.hex
> > >   create mode 100644 test/py/tests/test_pstore_data_panic1.hex
> > >   create mode 100644 test/py/tests/test_pstore_data_panic2.hex
> > Sorry for the delay here.  When I run the tests I see:
> > ------------------------------------ Captured stdout call -------------------------------------
> > =>
> > => => host load hostfs - 0x3000000 test/py/tests/test_pstore_data_panic1.hex
> > 4096 bytes read in 0 ms
> > => => host load hostfs - 0x3001000 test/py/tests/test_pstore_data_panic2.hex
> > 0 bytes read in 0 ms
> > => => host load hostfs - 0x30fd000 test/py/tests/test_pstore_data_console.hex
> > 4096 bytes read in 0 ms
> > => => pstore set 0x3000000 0x100000
> > => => pstore save hostfs - /tmp/tmp1xx0rahx
> > 3798 bytes written in 1 ms (3.6 MiB/s)
> > 4084 bytes written in 0 ms
> > => => load hostfs - 1000008 /tmp/tmp1xx0rahx/dmesg-ramoops-0
> > 3798 bytes read in 0 ms
> > => => printenv filesize
> > filesize=ed6
> > => => md5sum 1000008 $filesize
> > md5 for 01000008 ... 01000edd ==> 8059335ab4cfa62c77324c491659c503
> > => => setenv filesize
> > => => load hostfs - 1000008 /tmp/tmp1xx0rahx/dmesg-ramoops-1
> > Failed to load '/tmp/tmp1xx0rahx/dmesg-ramoops-1'
> > => => printenv filesize
> > ## Error: "file
> > =================================== short test summary info ===================================
> > 
> > So I'm not sure why the second one fails to load.
> > 
> It seems that the "test_pstore_data_panic2.hex" test file was not loaded
> correctly in memory, so the "dmesg-ramoops-1" was not generated

So there's two problems.  One of which is that we need to do something
like this:
diff --git a/test/py/tests/test_pstore.py b/test/py/tests/test_pstore.py
index 7388f335068c..153b8ff210ac 100644
--- a/test/py/tests/test_pstore.py
+++ b/test/py/tests/test_pstore.py
@@ -4,6 +4,7 @@
 
 import pytest
 import u_boot_utils
+import os
 import tempfile
 import shutil
 
@@ -18,9 +19,9 @@ def load_pstore(u_boot_console):
     """Load PStore records from sample files"""
 
     output = u_boot_console.run_command_list([
-        'host load hostfs - 0x%x %s' % (PSTORE_ADDR, PSTORE_PANIC1),
-        'host load hostfs - 0x%x %s' % (PSTORE_ADDR + 4096, PSTORE_PANIC2),
-        'host load hostfs - 0x%x %s' % (PSTORE_ADDR + 253 * 4096, PSTORE_CONSOLE),
+        'host load hostfs - 0x%x %s' % (PSTORE_ADDR, os.path.join(u_boot_console.config.source_dir, PSTORE_PANIC1)),
+        'host load hostfs - 0x%x %s' % (PSTORE_ADDR + 4096, os.path.join(u_boot_console.config.source_dir, PSTORE_PANIC2)),
+        'host load hostfs - 0x%x %s' % (PSTORE_ADDR + 253 * 4096, os.path.join(u_boot_console.config.source_dir, PSTORE_CONSOLE)),
         'pstore set 0x%x 0x%x' % (PSTORE_ADDR, PSTORE_LENGTH)])
 
 def checkfile(u_boot_console, path, filesize, checksum):

to ensure that we load from the source directory and not relative
directory.  The other problem is that the patch results in a zero byte
file for that second one.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20201013/1a582d00/attachment.sig>


More information about the U-Boot mailing list