script/autobuild.py: define cwd for builder and avoid chdir
authorJoe Guo <joeg@catalyst.net.nz>
Wed, 22 May 2019 11:50:01 +0000 (23:50 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 20 Jun 2019 23:40:16 +0000 (23:40 +0000)
We can pass cwd in Popen, no need to chdir for each cmd.

Signed-off-by: Joe Guo <joeg@catalyst.net.nz>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
script/autobuild.py

index b0d9f14a9582ed4af5d59a8a1cfb3faefa988948..bb5ab4094d4a6ea437d947b37c4e3aff0625aab3 100755 (executable)
@@ -745,6 +745,7 @@ class builder(object):
         self.stderr = open(self.stderr_path, 'w')
         self.stdin  = open("/dev/null", 'r')
         self.test_source_dir = "%s/%s" % (testbase, self.tag)
+        self.cwd = "%s/%s" % (self.test_source_dir, self.dir)
         self.prefix = "%s/%s" % (test_prefix, self.tag)
         run_cmd("rm -rf %s" % self.test_source_dir)
         run_cmd("rm -rf %s" % self.prefix)
@@ -771,13 +772,10 @@ class builder(object):
         self.cmd = self.cmd.replace("${LOG_BASE}", options.log_base)
         self.cmd = self.cmd.replace("${NAME}", self.name)
         self.cmd = self.cmd.replace("${ENABLE_COVERAGE}", options.enable_coverage)
-        cwd = os.getcwd()
-        os.chdir("%s/%s" % (self.test_source_dir, self.dir))
-        do_print('%s: [%s] Running %s in %r' % (self.name, self.stage, self.cmd, os.getcwd()))
+        do_print('%s: [%s] Running %s in %r' % (self.name, self.stage, self.cmd, self.cwd))
         self.proc = Popen(self.cmd, shell=True,
-                          close_fds=True,
+                          close_fds=True, cwd=self.cwd,
                           stdout=self.stdout, stderr=self.stderr, stdin=self.stdin)
-        os.chdir(cwd)
         self.next += 1