Browse Source

binman: Allow control of whether a fake DT is used

We use a fake device tree in tests most of the time since tests don't
normally care about the actual data. For example, for U-Boot proper we use
U_BOOT_DTB_DATA which is just a four-character string. This makes testing
the image output against an expected value very easy.

However in some cases, such as when the test wants to check that the DT
output containing particular nodes, we do actually need the real DT. Add
support for this, along with a command-line option to select 'test mode'.

Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass 6 years ago
parent
commit
93d174135a
4 changed files with 7 additions and 2 deletions
  1. 2 0
      tools/binman/cmdline.py
  2. 1 0
      tools/binman/control.py
  3. 3 1
      tools/binman/ftest.py
  4. 1 1
      tools/binman/state.py

+ 2 - 0
tools/binman/cmdline.py

@@ -30,6 +30,8 @@ def ParseArgs(argv):
             help='Enabling debugging (provides a full traceback on error)')
             help='Enabling debugging (provides a full traceback on error)')
     parser.add_option('-E', '--entry-docs', action='store_true',
     parser.add_option('-E', '--entry-docs', action='store_true',
             help='Write out entry documentation (see README.entries)')
             help='Write out entry documentation (see README.entries)')
+    parser.add_option('--fake-dtb', action='store_true',
+            help='Use fake device tree contents (for testing only)')
     parser.add_option('-i', '--image', type='string', action='append',
     parser.add_option('-i', '--image', type='string', action='append',
             help='Image filename to build (if not specified, build all)')
             help='Image filename to build (if not specified, build all)')
     parser.add_option('-I', '--indir', action='append',
     parser.add_option('-I', '--indir', action='append',

+ 1 - 0
tools/binman/control.py

@@ -106,6 +106,7 @@ def Binman(options, args):
 
 
         tout.Init(options.verbosity)
         tout.Init(options.verbosity)
         elf.debug = options.debug
         elf.debug = options.debug
+        state.use_fake_dtb = options.fake_dtb
         try:
         try:
             tools.SetInputDirs(options.indir)
             tools.SetInputDirs(options.indir)
             tools.PrepareOutputDir(options.outdir, options.preserve)
             tools.PrepareOutputDir(options.outdir, options.preserve)

+ 3 - 1
tools/binman/ftest.py

@@ -172,7 +172,7 @@ class TestFunctional(unittest.TestCase):
         return control.Binman(options, args)
         return control.Binman(options, args)
 
 
     def _DoTestFile(self, fname, debug=False, map=False, update_dtb=False,
     def _DoTestFile(self, fname, debug=False, map=False, update_dtb=False,
-                    entry_args=None, images=None):
+                    entry_args=None, images=None, use_real_dtb=False):
         """Run binman with a given test file
         """Run binman with a given test file
 
 
         Args:
         Args:
@@ -193,6 +193,8 @@ class TestFunctional(unittest.TestCase):
             args.append('-m')
             args.append('-m')
         if update_dtb:
         if update_dtb:
             args.append('-up')
             args.append('-up')
+        if not use_real_dtb:
+            args.append('--fake-dtb')
         if entry_args:
         if entry_args:
             for arg, value in entry_args.iteritems():
             for arg, value in entry_args.iteritems():
                 args.append('-a%s=%s' % (arg, value))
                 args.append('-a%s=%s' % (arg, value))

+ 1 - 1
tools/binman/state.py

@@ -20,7 +20,7 @@ entry_args = {}
 
 
 # True to use fake device-tree files for testing (see U_BOOT_DTB_DATA in
 # True to use fake device-tree files for testing (see U_BOOT_DTB_DATA in
 # ftest.py)
 # ftest.py)
-use_fake_dtb = True
+use_fake_dtb = False
 
 
 # Set of all device tree files references by images
 # Set of all device tree files references by images
 fdt_set = Set()
 fdt_set = Set()