[PATCH] KVM test: build subtest: Add path_to_rom_images

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In some cases, KVM userspace source might miss the roms
needed for it to boot. In those cases, allow people to
specify a path_to_rom_images, that will be used to copy
roms to the recently compiled qemu-kvm.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx>
---
 client/tests/kvm/build.cfg.sample |   15 +++++++++++++++
 client/tests/kvm/tests/build.py   |   14 ++++++++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/client/tests/kvm/build.cfg.sample b/client/tests/kvm/build.cfg.sample
index 860192b..b6a20f7 100644
--- a/client/tests/kvm/build.cfg.sample
+++ b/client/tests/kvm/build.cfg.sample
@@ -23,6 +23,9 @@ variants:
                 # release_tag = 84
                 release_dir = http://downloads.sourceforge.net/project/kvm/
                 release_listing = http://sourceforge.net/projects/kvm/files/
+                # In some cases, you might want to provide a ROM dir, so ROM
+                # files can be copied from there to your source based install
+                # path_to_rom_images = /usr/share/kvm
             - snapshot:
                 mode = snapshot
                 ## Install from a kvm snapshot location. You can optionally
@@ -30,14 +33,23 @@ variants:
                 ## yesterday's snapshot.
                 # snapshot_date = 20090712
                 snapshot_dir = http://foo.org/kvm-snapshots/
+                # In some cases, you might want to provide a ROM dir, so ROM
+                # files can be copied from there to your source based install
+                # path_to_rom_images = /usr/share/kvm
             - localtar:
                 mode = localtar
                 ## Install from tarball located on the host's filesystem.
                 tarball = /tmp/kvm-84.tar.gz
+                # In some cases, you might want to provide a ROM dir, so ROM
+                # files can be copied from there to your source based install
+                # path_to_rom_images = /usr/share/kvm
             - localsrc:
                 mode = localsrc
                 ## Install from tarball located on the host's filesystem.
                 srcdir = /tmp/kvm-84
+                # In some cases, you might want to provide a ROM dir, so ROM
+                # files can be copied from there to your source based install
+                # path_to_rom_images = /usr/share/kvm
             - git:
                 mode = git
                 ## Install KVM from git repositories.
@@ -64,6 +76,9 @@ variants:
                 # kmod_lbranch = kmod_lbranch_name
                 # kmod_commit = kmod_commit_name
                 # kmod_patches = ['http://foo.com/patch1', 'http://foo.com/patch2']
+                # In some cases, you might want to provide a ROM dir, so ROM
+                # files can be copied from there to your source based install
+                # path_to_rom_images = /usr/share/kvm
             - yum:
                 mode = yum
                 src_pkg = qemu
diff --git a/client/tests/kvm/tests/build.py b/client/tests/kvm/tests/build.py
index c4f0b18..bb3e2dc 100644
--- a/client/tests/kvm/tests/build.py
+++ b/client/tests/kvm/tests/build.py
@@ -154,6 +154,15 @@ def create_symlinks(test_bindir, prefix=None, bin_list=None, unittest=None):
         os.symlink(unittest, qemu_unittest_path)
 
 
+def install_roms(rom_dir, prefix):
+    logging.debug("Path to roms specified. Copying roms to install prefix")
+    rom_dst_dir = os.path.join(prefix, 'share', 'qemu')
+    for rom_src in glob.glob('%s/*.bin' % rom_dir):
+        rom_dst = os.path.join(rom_dst_dir, os.path.basename(rom_src))
+        logging.debug("Copying rom file %s to %s", rom_src, rom_dst)
+        shutil.copy(rom_src, rom_dst)
+
+
 def save_build(build_dir, dest_dir):
     logging.debug('Saving the result of the build on %s', dest_dir)
     base_name = os.path.basename(build_dir)
@@ -314,6 +323,7 @@ class SourceDirInstaller(BaseInstaller):
 
         install_mode = params["mode"]
         srcdir = params.get("srcdir", None)
+        self.path_to_roms = params.get("path_to_rom_images", None)
 
         if install_mode == 'localsrc':
             if srcdir is None:
@@ -391,6 +401,8 @@ class SourceDirInstaller(BaseInstaller):
             utils.system("make -C qemu install")
         elif self.repo_type == 2:
             utils.system("make install")
+        if self.path_to_roms:
+            install_roms(self.path_to_roms, self.prefix)
         create_symlinks(self.test_bindir, self.prefix)
 
 
@@ -559,6 +571,8 @@ class GitInstaller(SourceDirInstaller):
     def _install(self):
         os.chdir(self.userspace_srcdir)
         utils.system('make install')
+        if self.path_to_roms:
+            install_roms(self.path_to_roms, self.prefix)
         create_symlinks(test_bindir=self.test_bindir, prefix=self.prefix,
                         bin_list=None,
                         unittest=self.unittest_prefix)
-- 
1.7.2.3

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux