]> xenbits.xensource.com Git - osstest.git/commitdiff
ts-debian-hvm-install, etc.: Do not hardcode in-iso path
authorIan Jackson <ian.jackson@eu.citrix.com>
Fri, 18 Sep 2015 13:57:47 +0000 (14:57 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 22 Sep 2015 15:34:16 +0000 (16:34 +0100)
ts-debian-hvm-install hardcoded `install.amd' as the directory in the
.iso in which to find the kernel and initrd.  This is wrong for
architectures other than amd64.

Instead, pass this information in runvars (as is done for the netinst
installs in make-distros-flight), and honour it in
ts-debian-hvm-install.

If the runvars are not set, default to the previous hardcoded values.
(This arranges that clones of old flights still work with new osstest,
eg for bisection.)

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
make-flight
ts-debian-hvm-install

index c1f40b90c28c4824b963f71572daca244d7fae09..accf92223deac9345efa91d918777b2db9f153d3 100755 (executable)
@@ -264,6 +264,12 @@ do_hvm_debian_test_one () {
 
   local arch=$(branch_debianhvm_arch)
 
+  case "$arch" in
+    amd64) iso_dir='install.amd' ;;
+    i386)  iso_dir='install.386' ;;
+    *)     iso_dir="install.$arch" ;;
+  esac
+
   stubdom_suffix=""
   stubdom_runvar=""
   if [ x$stubdom = xtrue ]; then
@@ -276,6 +282,8 @@ do_hvm_debian_test_one () {
     enable_xsm=$xsm                             \
     $stubdom_runvar                             \
     debianhvm_image=debian-7.2.0-$arch-CD-1.iso \
+    debianhvm_iso_kernel=/$iso_dir/vmlinuz \
+    debianhvm_iso_ramdisk=/$iso_dir/initrd.gz \
     bios=$bios \
     all_hostflags=$most_hostflags,hvm
 }
index 4b1eca4638eeeeea37c2de80461e66e63d34d9f6..3b93ebd594dcd5e6dc0e18c4dff0a2feb9ff683f 100755 (executable)
@@ -48,6 +48,8 @@ our $disk_mb= 10000;
 our $guesthost= "$gn.guest.osstest";
 our $gho;
 
+our ($kernel, $ramdisk);
+
 our $gsuite= guest_var($gho,'suite',$c{GuestDebianSuite});
 
 sub preseed () {
@@ -130,14 +132,14 @@ set default="0"
 set timeout=5
 
 menuentry 'debian guest auto Install' {
-    linux /install.amd/vmlinuz $cmdline
-    initrd /install.amd/initrd.gz
+    linux $kernel $cmdline
+    initrd $ramdisk
 }
 END
 }
 
 sub isolinux_cfg () {
-    my $cmdline = gcmdline("initrd=/install.amd/initrd.gz");
+    my $cmdline = gcmdline("initrd=$ramdisk");
 
     return <<"END";
     default autoinstall
@@ -145,7 +147,7 @@ sub isolinux_cfg () {
     timeout 0
 
     label autoinstall
-        kernel /install.amd/vmlinuz
+        kernel $kernel
         append $cmdline
 END
 }
@@ -156,9 +158,9 @@ sub prepare_initrd ($$$) {
       rm -rf $initrddir
       mkdir $initrddir
       cd $initrddir
-      gzip -d < $newiso/install.amd/initrd.gz | cpio --extract --make-directories --no-absolute-filename
+      gzip -d < $newiso$ramdisk | cpio --extract --make-directories --no-absolute-filename
       cp $preseed_file_path preseed.cfg
-      find . | cpio -H newc --create | gzip -9 > $newiso/install.amd/initrd.gz
+      find . | cpio -H newc --create | gzip -9 > $newiso$ramdisk
       cd -
       rm -rf $initrddir
       cd $newiso
@@ -169,6 +171,13 @@ END
 
 our $emptyiso= "/root/$flight.$job.$gn-empty.iso";
 
+sub iso_path ($$) {
+    my ($which, $deftail) = @_;
+    my $v = guest_var($gho, "iso_$which", "/install.amd/$deftail");
+    die "$gho->{Guest} $which $v ?" unless $v =~ m#^/#;
+    return $v;
+}
+
 sub prep () {
     target_install_packages_norec($ho, qw(lvm2 rsync genisoimage));
 
@@ -177,6 +186,10 @@ sub prep () {
     $gho= prepareguest($ho, $gn, $guesthost, 22,
                        $disk_mb + 1,
                        200);
+
+    $kernel = iso_path('kernel', 'vmlinuz');
+    $ramdisk = iso_path('ramdisk', 'initrd.gz');
+
     my $base = "/root/$flight.$job.$gn-";
     my $newiso= $base . "newiso";
     my $emptydir= $base . "empty-dir";