[U-Boot] [PATCH] tools: Update python "help" tests to cope with "more" oddities

Tom Rini trini at konsulko.com
Tue Jan 16 20:29:50 UTC 2018


In some cases when "more" is told to page a given file it will prepend
the output with:
::::::::::::::
/PATH/TO/THE/FILE
::::::::::::::

And when this happens the output will not match the expected length.
Further, if we use a different pager we will instead fail the coverage
tests as we will not have 100% coverage.  Update the help test to remove
the string in question.

Cc: Simon Glass <sjg at chromium.org>
Signed-off-by: Tom Rini <trini at konsulko.com>
---
I see this behavior when running the tests via Jenkins in my container,
but not when run manually in my container.  As implied above, I tried
switching to less via the env, which causes these tests to pass but then
the coverage tests fail as we will not have coverage of the line about
"if not pager" and thus not have 100% coverage.
---
 tools/binman/ftest.py       | 5 ++++-
 tools/buildman/func_test.py | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 5812ab397cf3..b0832da08a42 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -290,7 +290,10 @@ class TestFunctional(unittest.TestCase):
         """Test that the full help is displayed with -H"""
         result = self._RunBinman('-H')
         help_file = os.path.join(self._binman_dir, 'README')
-        self.assertEqual(len(result.stdout), os.path.getsize(help_file))
+        # Remove possible extraneous strings
+        extra = '::::::::::::::\n' + help_file + '\n::::::::::::::\n'
+        gothelp = result.stdout.replace(extra, '')
+        self.assertEqual(len(gothelp), os.path.getsize(help_file))
         self.assertEqual(0, len(result.stderr))
         self.assertEqual(0, result.return_code)
 
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index bc32f61733a8..eec0f9bd3730 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -231,7 +231,10 @@ class TestFunctional(unittest.TestCase):
         command.test_result = None
         result = self._RunBuildman('-H')
         help_file = os.path.join(self._buildman_dir, 'README')
-        self.assertEqual(len(result.stdout), os.path.getsize(help_file))
+        # Remove possible extraneous strings
+        extra = '::::::::::::::\n' + help_file + '\n::::::::::::::\n'
+        gothelp = result.stdout.replace(extra, '')
+        self.assertEqual(len(gothelp), os.path.getsize(help_file))
         self.assertEqual(0, len(result.stderr))
         self.assertEqual(0, result.return_code)
 
-- 
2.7.4



More information about the U-Boot mailing list