[oe-commits] [openembedded-core] 03/03: wic: selftest: account for occasional newline in debugfs file names

git at git.openembedded.org git at git.openembedded.org
Tue Mar 14 14:42:43 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master
in repository openembedded-core.

commit 477805b913a6c4b4b630e42f08cd9e59f1e4e254
Author: Maciej Borzecki <maciej.borzecki at rndity.com>
AuthorDate: Mon Mar 13 11:19:23 2017 +0100

    wic: selftest: account for occasional newline in debugfs file names
    
    Debugfs output may contain a newline in file names in 'ls -p' output. Make sure
    that output is correctly split into lines by matching '/\n' and newlines are
    removed from file names.
    
    Fixes the following error appearing in AB tests:
    
       Traceback (most recent call last):
         File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/wic.py", line 388, in test_exclude_path
           files = [line.split('/')[5] for line in res.output.split('\n')]
         File "/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/wic.py", line 388, in <listcomp>
           files = [line.split('/')[5] for line in res.output.split('\n')]
       IndexError: list index out of range
    
    Signed-off-by: Maciej Borzecki <maciej.borzecki at rndity.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/lib/oeqa/selftest/wic.py | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/meta/lib/oeqa/selftest/wic.py b/meta/lib/oeqa/selftest/wic.py
index dcb88ba..825312e 100644
--- a/meta/lib/oeqa/selftest/wic.py
+++ b/meta/lib/oeqa/selftest/wic.py
@@ -381,11 +381,28 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
                 self.assertEqual(0, runCmd("dd if=%s of=%s skip=%d count=%d" %
                                            (wicimg, part_file, start, length)).status)
 
+            def extract_files(debugfs_output):
+                # extract file names from the output of debugfs -R 'ls -p',
+                # which looks like this:
+                #
+                # /2/040755/0/0/.//\n
+                # /2/040755/0/0/..//\n
+                # /11/040700/0/0/lost+found^M//\n
+                # /12/040755/1002/1002/run//\n
+                # /13/040755/1002/1002/sys//\n
+                # /14/040755/1002/1002/bin//\n
+                # /80/040755/1002/1002/var//\n
+                # /92/040755/1002/1002/tmp//\n
+                #
+                # NOTE the occasional ^M in file names
+                return [line.split('/')[5].strip() for line in \
+                        debugfs_output.strip().split('/\n')]
+
             # Test partition 1, should contain the normal root directories, except
             # /usr.
             res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % os.path.join(self.resultdir, "selftest_img.part1"))
             self.assertEqual(0, res.status)
-            files = [line.split('/')[5] for line in res.output.split('\n')]
+            files = extract_files(res.output)
             self.assertIn("etc", files)
             self.assertNotIn("usr", files)
 
@@ -393,7 +410,7 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
             # directories.
             res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % os.path.join(self.resultdir, "selftest_img.part2"))
             self.assertEqual(0, res.status)
-            files = [line.split('/')[5] for line in res.output.split('\n')]
+            files = extract_files(res.output)
             self.assertNotIn("etc", files)
             self.assertNotIn("usr", files)
             self.assertIn("share", files)
@@ -402,14 +419,14 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
             # directory, but not the files inside it.
             res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % os.path.join(self.resultdir, "selftest_img.part3"))
             self.assertEqual(0, res.status)
-            files = [line.split('/')[5] for line in res.output.split('\n')]
+            files = extract_files(res.output)
             self.assertNotIn("etc", files)
             self.assertNotIn("usr", files)
             self.assertIn("share", files)
             self.assertIn("bin", files)
             res = runCmd("debugfs -R 'ls -p bin' %s 2>/dev/null" % os.path.join(self.resultdir, "selftest_img.part3"))
             self.assertEqual(0, res.status)
-            files = [line.split('/')[5] for line in res.output.split('\n')]
+            files = extract_files(res.output)
             self.assertIn(".", files)
             self.assertIn("..", files)
             self.assertEqual(2, len(files))

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list