From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Mon, 28 Dec 2020 20:34:49 -0700 Subject: [PATCH 03/49] dtoc: Test the stdout output In-Reply-To: <20201229033535.99990-1-sjg@chromium.org> References: <20201229033535.99990-1-sjg@chromium.org> Message-ID: <20201229033535.99990-4-sjg@chromium.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 --- tools/dtoc/test_dtoc.py | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/tools/dtoc/test_dtoc.py b/tools/dtoc/test_dtoc.py index 41a10eb4004..7cf2a5187c6 100755 --- a/tools/dtoc/test_dtoc.py +++ b/tools/dtoc/test_dtoc.py @@ -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 at 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""" -- 2.29.2.729.g45daf8777d-goog