Index: client/tests/kvm/installer.py |
diff --git a/client/tests/kvm/installer.py b/client/tests/kvm/installer.py |
index a7572234446ad3302b0d5ac2c4c99309eee56787..6b2a6fe01fe8d3f82150b8dfb783dc06de2e74e4 100644 |
--- a/client/tests/kvm/installer.py |
+++ b/client/tests/kvm/installer.py |
@@ -231,6 +231,42 @@ class BaseInstaller(object): |
self._full_module_list = list(self._module_list()) |
+ def install_unittests(self): |
+ userspace_srcdir = os.path.join(self.srcdir, "kvm_userspace") |
+ test_repo = self.params.get("test_git_repo") |
+ test_branch = self.params.get("test_branch", "master") |
+ test_commit = self.params.get("test_commit", None) |
+ test_lbranch = self.params.get("test_lbranch", "master") |
+ |
+ if test_repo: |
+ test_srcdir = os.path.join(self.srcdir, "kvm-unit-tests") |
+ kvm_utils.get_git_branch(test_repo, test_branch, test_srcdir, |
+ test_commit, test_lbranch) |
+ unittest_cfg = os.path.join(test_srcdir, 'x86', |
+ 'unittests.cfg') |
+ self.test_srcdir = test_srcdir |
+ else: |
+ unittest_cfg = os.path.join(userspace_srcdir, 'kvm', 'test', 'x86', |
+ 'unittests.cfg') |
+ self.unittest_cfg = None |
+ if os.path.isfile(unittest_cfg): |
+ self.unittest_cfg = unittest_cfg |
+ else: |
+ if test_repo: |
+ logging.error("No unittest config file %s found, skipping " |
+ "unittest build", self.unittest_cfg) |
+ |
+ self.unittest_prefix = None |
+ if self.unittest_cfg: |
+ logging.info("Building and installing unittests") |
+ os.chdir(os.path.dirname(os.path.dirname(self.unittest_cfg))) |
+ utils.system('./configure --prefix=%s' % self.prefix) |
+ utils.system('make') |
+ utils.system('make install') |
+ self.unittest_prefix = os.path.join(self.prefix, 'share', 'qemu', |
+ 'tests') |
+ |
+ |
def full_module_list(self): |
"""Return the module list used by the installer |
@@ -341,11 +377,13 @@ class YumInstaller(BaseInstaller): |
def install(self): |
+ self.install_unittests() |
self._clean_previous_installs() |
self._get_packages() |
self._install_packages() |
create_symlinks(test_bindir=self.test_bindir, |
- bin_list=self.qemu_bin_paths) |
+ bin_list=self.qemu_bin_paths, |
+ unittest=self.unittest_prefix) |
self.reload_modules_if_needed() |
if self.save_results: |
save_build(self.srcdir, self.results_dir) |
@@ -386,8 +424,10 @@ class KojiInstaller(YumInstaller): |
super(KojiInstaller, self)._clean_previous_installs() |
self._get_packages() |
super(KojiInstaller, self)._install_packages() |
+ self.install_unittests() |
create_symlinks(test_bindir=self.test_bindir, |
- bin_list=self.qemu_bin_paths) |
+ bin_list=self.qemu_bin_paths, |
+ unittest=self.unittest_prefix) |
self.reload_modules_if_needed() |
if self.save_results: |
save_build(self.srcdir, self.results_dir) |
@@ -532,7 +572,10 @@ class SourceDirInstaller(BaseInstaller): |
utils.system("make install") |
if self.path_to_roms: |
install_roms(self.path_to_roms, self.prefix) |
- create_symlinks(self.test_bindir, self.prefix) |
+ self.install_unittests() |
+ create_symlinks(test_bindir=self.test_bindir, |
+ prefix=self.prefix, |
+ unittest=self.unittest_prefix) |
def _load_modules(self, mod_list): |
@@ -564,22 +607,18 @@ class GitInstaller(SourceDirInstaller): |
kernel_repo = params.get("git_repo") |
user_repo = params.get("user_git_repo") |
kmod_repo = params.get("kmod_repo") |
- test_repo = params.get("test_git_repo") |
kernel_branch = params.get("kernel_branch", "master") |
user_branch = params.get("user_branch", "master") |
kmod_branch = params.get("kmod_branch", "master") |
- test_branch = params.get("test_branch", "master") |
kernel_lbranch = params.get("kernel_lbranch", "master") |
user_lbranch = params.get("user_lbranch", "master") |
kmod_lbranch = params.get("kmod_lbranch", "master") |
- test_lbranch = params.get("test_lbranch", "master") |
kernel_commit = params.get("kernel_commit", None) |
user_commit = params.get("user_commit", None) |
kmod_commit = params.get("kmod_commit", None) |
- test_commit = params.get("test_commit", None) |
kernel_patches = eval(params.get("kernel_patches", "[]")) |
user_patches = eval(params.get("user_patches", "[]")) |
@@ -602,21 +641,6 @@ class GitInstaller(SourceDirInstaller): |
os.path.basename(patch))) |
utils.system('patch -p1 %s' % os.path.basename(patch)) |
- if test_repo: |
- test_srcdir = os.path.join(self.srcdir, "kvm-unit-tests") |
- kvm_utils.get_git_branch(test_repo, test_branch, test_srcdir, |
- test_commit, test_lbranch) |
- unittest_cfg = os.path.join(test_srcdir, 'x86', |
- 'unittests.cfg') |
- self.test_srcdir = test_srcdir |
- else: |
- unittest_cfg = os.path.join(userspace_srcdir, 'kvm', 'test', 'x86', |
- 'unittests.cfg') |
- |
- self.unittest_cfg = None |
- if os.path.isfile(unittest_cfg): |
- self.unittest_cfg = unittest_cfg |
- |
if kernel_repo: |
kernel_srcdir = os.path.join(self.srcdir, "kvm") |
kvm_utils.get_git_branch(kernel_repo, kernel_branch, kernel_srcdir, |
@@ -683,15 +707,6 @@ class GitInstaller(SourceDirInstaller): |
utils.system('make clean') |
utils.system('make -j %s' % make_jobs) |
- self.unittest_prefix = None |
- if self.unittest_cfg: |
- os.chdir(os.path.dirname(os.path.dirname(self.unittest_cfg))) |
- utils.system('./configure --prefix=%s' % self.prefix) |
- utils.system('make') |
- utils.system('make install') |
- self.unittest_prefix = os.path.join(self.prefix, 'share', 'qemu', |
- 'tests') |
- |
def _install(self): |
if self.kernel_srcdir: |
@@ -716,6 +731,7 @@ class GitInstaller(SourceDirInstaller): |
if self.path_to_roms: |
install_roms(self.path_to_roms, self.prefix) |
+ self.install_unittests() |
create_symlinks(test_bindir=self.test_bindir, prefix=self.prefix, |
bin_list=None, |
unittest=self.unittest_prefix) |