From: Simon Glass <sjg@chromium.org>
Date: Sat, 6 Sep 2014 01:00:15 +0000 (-0600)
Subject: buildman: Avoid looking at config file or toolchains in tests
X-Git-Tag: v2025.01-rc5-pxa1908~14702^2~11
X-Git-Url: http://git.dujemihanovic.xyz/login.html?a=commitdiff_plain;h=8b985eebd0f7582614399fdf6c108a81ab446ae7;p=u-boot.git

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>
---

diff --git a/tools/buildman/bsettings.py b/tools/buildman/bsettings.py
index 916479866c..fdd875b073 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 8711f9c131..b92cde3607 100644
--- a/tools/buildman/func_test.py
+++ b/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)