]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
dtoc: Test the stdout output
authorSimon Glass <sjg@chromium.org>
Tue, 29 Dec 2020 03:34:49 +0000 (20:34 -0700)
committerSimon Glass <sjg@chromium.org>
Tue, 5 Jan 2021 19:26:35 +0000 (12:26 -0700)
Normally dtoc outputs to a file but it also offers a way to write output
to stdout. At present the test for that does not actually check that the
output is correct. Add this to the test.

This uses a member variable to hold the expected text, so it can be used
in muitiple places.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/dtoc/test_dtoc.py

index 41a10eb40048cc71539696ee3c25c4f894fcd1b3..7cf2a5187c690c4c6d4b69057f6e1e766094c377 100755 (executable)
@@ -188,14 +188,7 @@ class TestDtoc(unittest.TestCase):
         self.assertEqual(C_HEADER.splitlines() + [''] +
                          C_EMPTY_POPULATE_PHANDLE_DATA.splitlines(), lines)
 
-    def test_simple(self):
-        """Test output from some simple nodes with various types of data"""
-        dtb_file = get_dtb_file('dtoc_test_simple.dts')
-        output = tools.GetOutputFilename('output')
-        self.run_test(['struct'], dtb_file, output)
-        with open(output) as infile:
-            data = infile.read()
-        self._check_strings(HEADER + '''
+    struct_text = HEADER + '''
 struct dtd_sandbox_i2c_test {
 };
 struct dtd_sandbox_pmic_test {
@@ -214,12 +207,9 @@ struct dtd_sandbox_spl_test {
 \tconst char *\tstringarray[3];
 \tconst char *\tstringval;
 };
-''', data)
+'''
 
-        self.run_test(['platdata'], dtb_file, output)
-        with open(output) as infile:
-            data = infile.read()
-        self._check_strings(C_HEADER + '''
+    platdata_text = C_HEADER + '''
 /* Node /i2c@0 index 0 */
 static struct dtd_sandbox_i2c_test dtv_i2c_at_0 = {
 };
@@ -294,7 +284,23 @@ U_BOOT_DEVICE(spl_test3) = {
 \t.parent_idx\t= -1,
 };
 
-''' + C_EMPTY_POPULATE_PHANDLE_DATA, data)
+''' + C_EMPTY_POPULATE_PHANDLE_DATA
+
+    def test_simple(self):
+        """Test output from some simple nodes with various types of data"""
+        dtb_file = get_dtb_file('dtoc_test_simple.dts')
+        output = tools.GetOutputFilename('output')
+        self.run_test(['struct'], dtb_file, output)
+        with open(output) as infile:
+            data = infile.read()
+
+        self._check_strings(self.struct_text, data)
+
+        self.run_test(['platdata'], dtb_file, output)
+        with open(output) as infile:
+            data = infile.read()
+
+        self._check_strings(self.platdata_text, data)
 
     def test_driver_alias(self):
         """Test output from a device tree file with a driver alias"""
@@ -874,8 +880,9 @@ U_BOOT_DEVICE(spl_test2) = {
     def test_stdout(self):
         """Test output to stdout"""
         dtb_file = get_dtb_file('dtoc_test_simple.dts')
-        with test_util.capture_sys_output() as _:
+        with test_util.capture_sys_output() as (stdout, _):
             self.run_test(['struct'], dtb_file, None)
+        self._check_strings(self.struct_text, stdout.getvalue())
 
     def test_no_command(self):
         """Test running dtoc without a command"""