mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 22:20:45 +00:00
dtoc: Update tests to write failures to /tmp
When a test fails due to an output mismatch (e.g. due to a new property being adding to a test file) it is currently hard to update the test to the new output. In particular the tabs in the file are written as \t in the Python tests. To make this easier, write both the expected and actual results to /tmp to allow use of meld, and copying into the test. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
2ba9875312
commit
57f0bc428a
1 changed files with 42 additions and 14 deletions
|
@ -68,6 +68,34 @@ class TestDtoc(unittest.TestCase):
|
|||
def tearDownClass(cls):
|
||||
tools._RemoveOutputDir()
|
||||
|
||||
def _WritePythonString(self, fname, data):
|
||||
"""Write a string with tabs expanded as done in this Python file
|
||||
|
||||
Args:
|
||||
fname: Filename to write to
|
||||
data: Raw string to convert
|
||||
"""
|
||||
data = data.replace('\t', '\\t')
|
||||
with open(fname, 'w') as fd:
|
||||
fd.write(data)
|
||||
|
||||
def _CheckStrings(self, expected, actual):
|
||||
"""Check that a string matches its expected value
|
||||
|
||||
If the strings do not match, they are written to the /tmp directory in
|
||||
the same Python format as is used here in the test. This allows for
|
||||
easy comparison and update of the tests.
|
||||
|
||||
Args:
|
||||
expected: Expected string
|
||||
actual: Actual string
|
||||
"""
|
||||
if expected != actual:
|
||||
self._WritePythonString('/tmp/binman.expected', expected)
|
||||
self._WritePythonString('/tmp/binman.actual', actual)
|
||||
print 'Failures written to /tmp/binman.{expected,actual}'
|
||||
self.assertEquals(expected, actual)
|
||||
|
||||
def test_name(self):
|
||||
"""Test conversion of device tree names to C identifiers"""
|
||||
self.assertEqual('serial_at_0x12', conv_name_to_c('serial@0x12'))
|
||||
|
@ -138,7 +166,7 @@ class TestDtoc(unittest.TestCase):
|
|||
dtb_platdata.run_steps(['struct'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(HEADER + '''
|
||||
self._CheckStrings(HEADER + '''
|
||||
struct dtd_sandbox_i2c_test {
|
||||
};
|
||||
struct dtd_sandbox_pmic_test {
|
||||
|
@ -162,7 +190,7 @@ struct dtd_sandbox_spl_test_2 {
|
|||
dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(C_HEADER + '''
|
||||
self._CheckStrings(C_HEADER + '''
|
||||
static struct dtd_sandbox_spl_test dtv_spl_test = {
|
||||
\t.bytearray\t\t= {0x6, 0x0, 0x0},
|
||||
\t.byteval\t\t= 0x5,
|
||||
|
@ -240,7 +268,7 @@ U_BOOT_DEVICE(pmic_at_9) = {
|
|||
dtb_platdata.run_steps(['struct'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(HEADER + '''
|
||||
self._CheckStrings(HEADER + '''
|
||||
struct dtd_source {
|
||||
\tstruct phandle_2_arg clocks[4];
|
||||
};
|
||||
|
@ -252,7 +280,7 @@ struct dtd_target {
|
|||
dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(C_HEADER + '''
|
||||
self._CheckStrings(C_HEADER + '''
|
||||
static struct dtd_target dtv_phandle_target = {
|
||||
\t.intval\t\t\t= 0x0,
|
||||
};
|
||||
|
@ -302,7 +330,7 @@ U_BOOT_DEVICE(phandle_source) = {
|
|||
dtb_platdata.run_steps(['struct'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(HEADER + '''
|
||||
self._CheckStrings(HEADER + '''
|
||||
struct dtd_compat1 {
|
||||
\tfdt32_t\t\tintval;
|
||||
};
|
||||
|
@ -313,7 +341,7 @@ struct dtd_compat1 {
|
|||
dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(C_HEADER + '''
|
||||
self._CheckStrings(C_HEADER + '''
|
||||
static struct dtd_compat1 dtv_spl_test = {
|
||||
\t.intval\t\t\t= 0x1,
|
||||
};
|
||||
|
@ -332,7 +360,7 @@ U_BOOT_DEVICE(spl_test) = {
|
|||
dtb_platdata.run_steps(['struct'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(HEADER + '''
|
||||
self._CheckStrings(HEADER + '''
|
||||
struct dtd_test1 {
|
||||
\tfdt64_t\t\treg[2];
|
||||
};
|
||||
|
@ -347,7 +375,7 @@ struct dtd_test3 {
|
|||
dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(C_HEADER + '''
|
||||
self._CheckStrings(C_HEADER + '''
|
||||
static struct dtd_test1 dtv_test1 = {
|
||||
\t.reg\t\t\t= {0x1234, 0x5678},
|
||||
};
|
||||
|
@ -384,7 +412,7 @@ U_BOOT_DEVICE(test3) = {
|
|||
dtb_platdata.run_steps(['struct'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(HEADER + '''
|
||||
self._CheckStrings(HEADER + '''
|
||||
struct dtd_test1 {
|
||||
\tfdt32_t\t\treg[2];
|
||||
};
|
||||
|
@ -396,7 +424,7 @@ struct dtd_test2 {
|
|||
dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(C_HEADER + '''
|
||||
self._CheckStrings(C_HEADER + '''
|
||||
static struct dtd_test1 dtv_test1 = {
|
||||
\t.reg\t\t\t= {0x1234, 0x5678},
|
||||
};
|
||||
|
@ -424,7 +452,7 @@ U_BOOT_DEVICE(test2) = {
|
|||
dtb_platdata.run_steps(['struct'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(HEADER + '''
|
||||
self._CheckStrings(HEADER + '''
|
||||
struct dtd_test1 {
|
||||
\tfdt64_t\t\treg[2];
|
||||
};
|
||||
|
@ -439,7 +467,7 @@ struct dtd_test3 {
|
|||
dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(C_HEADER + '''
|
||||
self._CheckStrings(C_HEADER + '''
|
||||
static struct dtd_test1 dtv_test1 = {
|
||||
\t.reg\t\t\t= {0x123400000000, 0x5678},
|
||||
};
|
||||
|
@ -476,7 +504,7 @@ U_BOOT_DEVICE(test3) = {
|
|||
dtb_platdata.run_steps(['struct'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(HEADER + '''
|
||||
self._CheckStrings(HEADER + '''
|
||||
struct dtd_test1 {
|
||||
\tfdt64_t\t\treg[2];
|
||||
};
|
||||
|
@ -491,7 +519,7 @@ struct dtd_test3 {
|
|||
dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
|
||||
with open(output) as infile:
|
||||
data = infile.read()
|
||||
self.assertEqual(C_HEADER + '''
|
||||
self._CheckStrings(C_HEADER + '''
|
||||
static struct dtd_test1 dtv_test1 = {
|
||||
\t.reg\t\t\t= {0x1234, 0x567800000000},
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue