aboutsummaryrefslogtreecommitdiff
path: root/tools/dtoc/test_dtoc.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dtoc/test_dtoc.py')
-rwxr-xr-xtools/dtoc/test_dtoc.py40
1 files changed, 37 insertions, 3 deletions
diff --git a/tools/dtoc/test_dtoc.py b/tools/dtoc/test_dtoc.py
index 6f9af90..fb65f28 100755
--- a/tools/dtoc/test_dtoc.py
+++ b/tools/dtoc/test_dtoc.py
@@ -10,6 +10,7 @@ tool.
"""
import collections
+import glob
import os
import struct
import tempfile
@@ -302,6 +303,11 @@ U_BOOT_DEVICE(spl_test3) = {
self._check_strings(self.platdata_text, data)
+ # Try the 'all' command
+ self.run_test(['all'], dtb_file, output)
+ data = tools.ReadFile(output, binary=False)
+ self._check_strings(self.platdata_text + self.struct_text, data)
+
def test_driver_alias(self):
"""Test output from a device tree file with a driver alias"""
dtb_file = get_dtb_file('dtoc_test_driver_alias.dts')
@@ -888,9 +894,9 @@ U_BOOT_DEVICE(spl_test2) = {
"""Test output of multiple pieces to a single file"""
dtb_file = get_dtb_file('dtoc_test_simple.dts')
output = tools.GetOutputFilename('output')
- self.run_test(['struct,platdata'], dtb_file, output)
+ self.run_test(['all'], dtb_file, output)
data = tools.ReadFile(output, binary=False)
- self._check_strings(self.struct_text + self.platdata_text, data)
+ self._check_strings(self.platdata_text + self.struct_text, data)
def test_no_command(self):
"""Test running dtoc without a command"""
@@ -905,7 +911,7 @@ U_BOOT_DEVICE(spl_test2) = {
output = tools.GetOutputFilename('output')
with self.assertRaises(ValueError) as exc:
self.run_test(['invalid-cmd'], dtb_file, output)
- self.assertIn("Unknown command 'invalid-cmd': (use: struct, platdata)",
+ self.assertIn("Unknown command 'invalid-cmd': (use: platdata, struct)",
str(exc.exception))
@staticmethod
@@ -945,3 +951,31 @@ U_BOOT_DEVICE(spl_test2) = {
self.assertEqual(drv1, drv3)
self.assertNotEqual(drv1, drv2)
self.assertNotEqual(drv2, drv3)
+
+ def test_output_conflict(self):
+ """Test a conflict between and output dirs and output file"""
+ with self.assertRaises(ValueError) as exc:
+ dtb_platdata.run_steps(['all'], None, False, 'out', ['cdir'], True)
+ self.assertIn("Must specify either output or output_dirs, not both",
+ str(exc.exception))
+
+ def test_output_dirs(self):
+ """Test outputting files to a directory"""
+ # Remove the directory so that files from other tests are not there
+ tools._RemoveOutputDir()
+ tools.PrepareOutputDir(None)
+
+ # This should create the .dts and .dtb in the output directory
+ dtb_file = get_dtb_file('dtoc_test_simple.dts')
+ outdir = tools.GetOutputDir()
+ fnames = glob.glob(outdir + '/*')
+ self.assertEqual(2, len(fnames))
+
+ dtb_platdata.run_steps(['all'], dtb_file, False, None, [outdir], True)
+ fnames = glob.glob(outdir + '/*')
+ self.assertEqual(4, len(fnames))
+
+ leafs = set(os.path.basename(fname) for fname in fnames)
+ self.assertEqual(
+ {'dt-structs-gen.h', 'source.dts', 'dt-platdata.c', 'source.dtb'},
+ leafs)