test/py: Add a way to start sandbox without a device tree
authorSimon Glass <sjg@chromium.org>
Wed, 27 Apr 2022 19:47:56 +0000 (13:47 -0600)
committerTom Rini <trini@konsulko.com>
Thu, 5 May 2022 13:28:48 +0000 (09:28 -0400)
This is useful sometimes when running a specific test. Add support for it
in the existing restart_uboot_with_flags() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
test/py/u_boot_console_sandbox.py

index cef416d..27c6db8 100644 (file)
@@ -27,6 +27,7 @@ class ConsoleSandbox(ConsoleBase):
 
         super(ConsoleSandbox, self).__init__(log, config, max_fifo_fill=1024)
         self.sandbox_flags = []
+        self.use_dtb = True
 
     def get_spawn(self):
         """Connect to a fresh U-Boot instance.
@@ -53,16 +54,13 @@ class ConsoleSandbox(ConsoleBase):
         cmd = []
         if self.config.gdbserver:
             cmd += ['gdbserver', self.config.gdbserver]
-        cmd += [
-            self.config.build_dir + fname,
-            '-v',
-            '-d',
-            self.config.dtb
-        ]
+        cmd += [self.config.build_dir + fname, '-v']
+        if self.use_dtb:
+            cmd += ['-d', self.config.dtb]
         cmd += self.sandbox_flags
         return Spawn(cmd, cwd=self.config.source_dir)
 
-    def restart_uboot_with_flags(self, flags, expect_reset=False):
+    def restart_uboot_with_flags(self, flags, expect_reset=False, use_dtb=True):
         """Run U-Boot with the given command-line flags
 
         Args:
@@ -70,6 +68,7 @@ class ConsoleSandbox(ConsoleBase):
             expect_reset: Boolean indication whether this boot is expected
                 to be reset while the 1st boot process after main boot before
                 prompt. False by default.
+            use_dtb: True to use a device tree file, False to run without one
 
         Returns:
             A u_boot_spawn.Spawn object that is attached to U-Boot.
@@ -77,9 +76,11 @@ class ConsoleSandbox(ConsoleBase):
 
         try:
             self.sandbox_flags = flags
+            self.use_dtb = use_dtb
             return self.restart_uboot(expect_reset)
         finally:
             self.sandbox_flags = []
+            self.use_dtb = True
 
     def kill(self, sig):
         """Send a specific Unix signal to the sandbox process.