[U-Boot] [PATCH 10/15] buildman: Avoid looking at config file or toolchains in tests

Simon Glass sjg at chromium.org
Mon Aug 25 18:01:15 CEST 2014


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 at chromium.org>
---

 tools/buildman/bsettings.py | 15 ++++++++++-----
 tools/buildman/func_test.py | 19 +++++++++++++++++++
 2 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/tools/buildman/bsettings.py b/tools/buildman/bsettings.py
index 9164798..fdd875b 100644
--- a/tools/buildman/bsettings.py
+++ b/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.
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index d6fbed8..c023425 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -9,6 +9,7 @@ import sys
 import tempfile
 import unittest
 
+import bsettings
 import cmdline
 import command
 import control
@@ -16,6 +17,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.
 
@@ -35,6 +52,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 _RunBuildman(self, *args):
         return command.RunPipe([[self._buildman_pathname] + list(args)],
-- 
2.1.0.rc2.206.gedb03e5



More information about the U-Boot mailing list