浏览代码

testing/infra/builder: call make with empty env

Use an empty environment when calling make, but import PATH so the
buildroot tree under test can find binaries from the host machine.

Since environment variables are now ignored, move the handling of
BR2_DL_DIR to the defconfig to keep the current precedence of -d:

    BR2_DL_DIR  | -d DIR   | test downloads   | BR downloads
    ------------+----------+------------------+--------------
    unset       | unset    | [error]          | [error]
    unset       | set      | in $(DIR)        | in $(DIR)
    set         | unset    | in $(BR2_DL_DIR) | in $(BR2_DL_DIR)
    set         | set      | in $(DIR)        | in $(DIR)

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Ricardo Martincoski 7 年之前
父节点
当前提交
b19cb8143b
共有 3 个文件被更改,包括 6 次插入3 次删除
  1. 1 0
      support/testing/infra/basetest.py
  2. 5 2
      support/testing/infra/builder.py
  3. 0 1
      support/testing/run-tests

+ 1 - 0
support/testing/infra/basetest.py

@@ -42,6 +42,7 @@ class BRTest(unittest.TestCase):
         self.testname = self.__class__.__name__
         self.testname = self.__class__.__name__
         self.builddir = self.outputdir and os.path.join(self.outputdir, self.testname)
         self.builddir = self.outputdir and os.path.join(self.outputdir, self.testname)
         self.emulator = None
         self.emulator = None
+        self.config += '\nBR2_DL_DIR="{}"\n'.format(self.downloaddir)
         self.config += "\nBR2_JLEVEL={}\n".format(self.jlevel)
         self.config += "\nBR2_JLEVEL={}\n".format(self.jlevel)
 
 
     def show_msg(self, msg):
     def show_msg(self, msg):

+ 5 - 2
support/testing/infra/builder.py

@@ -24,15 +24,18 @@ class Builder(object):
                            "> end defconfig\n")
                            "> end defconfig\n")
         self.logfile.flush()
         self.logfile.flush()
 
 
+        env = {"PATH": os.environ["PATH"]}
         cmd = ["make",
         cmd = ["make",
                "O={}".format(self.builddir),
                "O={}".format(self.builddir),
                "olddefconfig"]
                "olddefconfig"]
-        ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile)
+        ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile,
+                              env=env)
         if ret != 0:
         if ret != 0:
             raise SystemError("Cannot olddefconfig")
             raise SystemError("Cannot olddefconfig")
 
 
         cmd = ["make", "-C", self.builddir]
         cmd = ["make", "-C", self.builddir]
-        ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile)
+        ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile,
+                              env=env)
         if ret != 0:
         if ret != 0:
             raise SystemError("Build failed")
             raise SystemError("Build failed")
 
 

+ 0 - 1
support/testing/run-tests

@@ -58,7 +58,6 @@ def main():
             return 1
             return 1
 
 
     BRTest.downloaddir = os.path.abspath(args.download)
     BRTest.downloaddir = os.path.abspath(args.download)
-    os.putenv("BR2_DL_DIR", BRTest.downloaddir)
 
 
     if args.output is None:
     if args.output is None:
         print "Missing output directory, please use -o/--output"
         print "Missing output directory, please use -o/--output"