Bläddra i källkod

buildman: Avoid looking at config file or toolchains in tests

These files may not exist in the environment, or may not be suitable for
testing. Provide our own config file and our own toolchains when running
tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass 9 år sedan
förälder
incheckning
8b985eebd0
2 ändrade filer med 29 tillägg och 5 borttagningar
  1. 10 5
      tools/buildman/bsettings.py
  2. 19 0
      tools/buildman/func_test.py

+ 10 - 5
tools/buildman/bsettings.py

@@ -5,6 +5,7 @@
 
 import ConfigParser
 import os
+import StringIO
 
 
 def Setup(fname=''):
@@ -17,11 +18,15 @@ def Setup(fname=''):
     global config_fname
 
     settings = ConfigParser.SafeConfigParser()
-    config_fname = fname
-    if config_fname == '':
-        config_fname = '%s/.buildman' % os.getenv('HOME')
-    if config_fname:
-        settings.read(config_fname)
+    if fname is not None:
+        config_fname = fname
+        if config_fname == '':
+            config_fname = '%s/.buildman' % os.getenv('HOME')
+        if config_fname:
+            settings.read(config_fname)
+
+def AddFile(data):
+    settings.readfp(StringIO.StringIO(data))
 
 def GetItems(section):
     """Get the items from a section of the config.

+ 19 - 0
tools/buildman/func_test.py

@@ -10,6 +10,7 @@ import sys
 import tempfile
 import unittest
 
+import bsettings
 import cmdline
 import command
 import control
@@ -17,6 +18,22 @@ import gitutil
 import terminal
 import toolchain
 
+settings_data = '''
+# Buildman settings file
+
+[toolchain]
+
+[toolchain-alias]
+
+[make-flags]
+src=/home/sjg/c/src
+chroot=/home/sjg/c/chroot
+vboot=USE_STDINT=1 VBOOT_DEBUG=1 MAKEFLAGS_VBOOT=DEBUG=1 CFLAGS_EXTRA_VBOOT=-DUNROLL_LOOPS VBOOT_SOURCE=${src}/platform/vboot_reference
+chromeos_coreboot=VBOOT=${chroot}/build/link/usr ${vboot}
+chromeos_daisy=VBOOT=${chroot}/build/daisy/usr ${vboot}
+chromeos_peach=VBOOT=${chroot}/build/peach_pit/usr ${vboot}
+'''
+
 class TestFunctional(unittest.TestCase):
     """Functional test for buildman.
 
@@ -36,6 +53,8 @@ class TestFunctional(unittest.TestCase):
         command.test_result = self._HandleCommand
         self._toolchains = toolchain.Toolchains()
         self._toolchains.Add('gcc', test=False)
+        bsettings.Setup(None)
+        bsettings.AddFile(settings_data)
 
     def tearDown(self):
         shutil.rmtree(self._base_dir)