]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
test/py: run sandbox in source directory
authorStephen Warren <swarren@nvidia.com>
Thu, 28 Jan 2016 06:57:53 +0000 (23:57 -0700)
committerSimon Glass <sjg@chromium.org>
Fri, 29 Jan 2016 04:01:24 +0000 (21:01 -0700)
Some unit tests expect the cwd of the sandbox process to be the root
of the source tree. Ensure that requirement is met.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
test/py/u_boot_console_sandbox.py
test/py/u_boot_spawn.py

index bbf41e788ba3300b4345f9a6163f7bce0ae69f4c..a7263f30b8cae1a1ee4eeb889ab4a81c1671fce6 100644 (file)
@@ -44,7 +44,7 @@ class ConsoleSandbox(ConsoleBase):
             '-d',
             self.config.build_dir + '/arch/sandbox/dts/test.dtb'
         ]
-        return Spawn(cmd)
+        return Spawn(cmd, cwd=self.config.source_dir)
 
     def kill(self, sig):
         """Send a specific Unix signal to the sandbox process.
index 7451455671b9b52ab6797949f4de2cfaf712f1a9..0f52d3e945c70a4489e59f14c44c74c5184e35af 100644 (file)
@@ -20,11 +20,13 @@ class Spawn(object):
     sent to the process, and responses waited for.
     """
 
-    def __init__(self, args):
+    def __init__(self, args, cwd=None):
         """Spawn (fork/exec) the sub-process.
 
         Args:
-            args: array of processs arguments. argv[0] is the command to execute.
+            args: array of processs arguments. argv[0] is the command to
+              execute.
+            cwd: the directory to run the process in, or None for no change.
 
         Returns:
             Nothing.
@@ -44,6 +46,8 @@ class Spawn(object):
                 # run under "go" (www.go.cd). Perhaps this happens under any
                 # background (non-interactive) system?
                 signal.signal(signal.SIGHUP, signal.SIG_DFL)
+                if cwd:
+                    os.chdir(cwd)
                 os.execvp(args[0], args)
             except:
                 print 'CHILD EXECEPTION:'