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>
master
Simon Glass 10 years ago
parent fd03d63f34
commit 8b985eebd0
  1. 15
      tools/buildman/bsettings.py
  2. 19
      tools/buildman/func_test.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.

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

Loading…
Cancel
Save