From 37ba07ebaf58b6197aed5c3d2d016322fae74b1a Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Wed, 6 Jun 2012 12:36:33 +0200 Subject: [PATCH] Extend automated tests to qemu-mips. * Makefile.am: reorganise tests and enable qemu-mips. * configure.ac (COND_mipseb), (COND_mipsel): New conditions. * grub-core/tests/boot/linux.init-mips.S: New file. * tests/partmap_test.in: Handle ata0 disks. * tests/util/grub-shell.in: Handle qemu-mips. Make defaults work on non-pc i386. --- ChangeLog | 11 + Makefile.am | 111 +++++----- configure.ac | 2 + grub-core/tests/boot/linux.init-mips.S | 58 ++++++ tests/partmap_test.in | 278 +++++++++++++------------ tests/util/grub-shell.in | 70 ++++++- 6 files changed, 345 insertions(+), 185 deletions(-) create mode 100644 grub-core/tests/boot/linux.init-mips.S diff --git a/ChangeLog b/ChangeLog index b0bb7c132..92be5fbd9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2012-06-06 Vladimir Serbinenko + + Extend automated tests to qemu-mips. + + * Makefile.am: reorganise tests and enable qemu-mips. + * configure.ac (COND_mipseb), (COND_mipsel): New conditions. + * grub-core/tests/boot/linux.init-mips.S: New file. + * tests/partmap_test.in: Handle ata0 disks. + * tests/util/grub-shell.in: Handle qemu-mips. Make defaults work on + non-pc i386. + 2012-06-06 Vladimir Serbinenko * Makefile.util.def (grub-mkrescue) Anable on mips_qemu_mips and diff --git a/Makefile.am b/Makefile.am index 75e86bb3e..13fd6d58a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -126,38 +126,31 @@ pkgdata_DATA += grub-mkconfig_lib if COND_i386_coreboot -BOOTTARGET=coreboot QEMU32=qemu-system-i386 endif if COND_i386_multiboot -BOOTTARGET=cd QEMU32=qemu-system-i386 endif if COND_i386_ieee1275 -BOOTTARGET=cd QEMU32=qemu-system-i386 endif if COND_i386_qemu -BOOTTARGET=qemu QEMU32=qemu-system-i386 endif if COND_i386_pc -BOOTTARGET=cd QEMU32=qemu-system-i386 endif if COND_i386_efi QEMU32=qemu-system-i386 -BOOTTARGET=cd endif if COND_x86_64_efi QEMU32=qemu-system-x86_64 -BOOTTARGET=cd endif linux.init.x86_64: $(srcdir)/grub-core/tests/boot/linux.init-x86_64.S @@ -166,6 +159,12 @@ linux.init.x86_64: $(srcdir)/grub-core/tests/boot/linux.init-x86_64.S linux.init.i386: $(srcdir)/grub-core/tests/boot/linux.init-i386.S $(TARGET_CC) -o $@ $< -m32 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" +linux.init.mips: $(srcdir)/grub-core/tests/boot/linux.init-mips.S + $(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" + +linux.init.mipsel: $(srcdir)/grub-core/tests/boot/linux.init-mips.S + $(TARGET_CC) -o $@ $< -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" + multiboot.elf: $(srcdir)/grub-core/tests/boot/kernel-i386.S $(TARGET_CC) -o $@ $< -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -DTARGET_MULTIBOOT=1 -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x100000 -m32 -I$(srcdir)/include @@ -208,6 +207,12 @@ knetbsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kbsd.init-x86_64.S kopenbsd.init.x86_64: $(srcdir)/grub-core/tests/boot/kbsd.init-x86_64.S $(TARGET_CC) -o $@ $< -m64 -DTARGET_OPENBSD=1 -nostdlib -nostdinc -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" +linux-initramfs.mips: linux.init.mips Makefile + TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR + +linux-initramfs.mipsel: linux.init.mipsel Makefile + TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR + linux-initramfs.i386: linux.init.i386 Makefile TDIR=`mktemp -d "$${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` && cp $< $$TDIR/init && (cd $$TDIR && echo ./init | cpio --quiet --dereference -o -H newc) | gzip > $@ && rm -rf $$TDIR @@ -244,98 +249,110 @@ kfreebsd-mfsroot.i386.gz: kfreebsd-mfsroot.i386.img gzip < $< > $@ bootcheck-kfreebsd-i386: kfreebsd-mfsroot.i386.gz $(GRUB_PAYLOADS_DIR)/kfreebsd.i386 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/mfsroot.gz=kfreebsd-mfsroot.i386.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.i386 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/mfsroot.gz=kfreebsd-mfsroot.i386.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.i386 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.i386 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null kfreebsd-mfsroot.x86_64.gz: kfreebsd-mfsroot.x86_64.img gzip < $< > $@ bootcheck-kfreebsd-x86_64: kfreebsd-mfsroot.x86_64.gz $(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 $(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/mfsroot.gz=kfreebsd-mfsroot.x86_64.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=qemu-system-x86_64 --files=/mfsroot.gz=kfreebsd-mfsroot.x86_64.gz --files=/kfreebsd=$(GRUB_PAYLOADS_DIR)/kfreebsd.x86_64 --files=/kfreebsd_env=$(GRUB_PAYLOADS_DIR)/kfreebsd_env.x86_64 $(srcdir)/grub-core/tests/boot/kfreebsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null knetbsd.miniroot-image.i386.gz: knetbsd.miniroot-image.i386.img gzip < $< > $@ bootcheck-knetbsd-i386: knetbsd.miniroot-image.i386.gz $(GRUB_PAYLOADS_DIR)/knetbsd.i386 $(srcdir)/grub-core/tests/boot/knetbsd.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/miniroot.gz=knetbsd.miniroot-image.i386.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.i386 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/miniroot.gz=knetbsd.miniroot-image.i386.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.i386 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-kopenbsd-i386: kopenbsd.image.i386 $(GRUB_PAYLOADS_DIR)/kopenbsd.i386 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/ramdisk=kopenbsd.image.i386 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.i386 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/ramdisk=kopenbsd.image.i386 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.i386 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-kopenbsd-x86_64: kopenbsd.image.x86_64 $(GRUB_PAYLOADS_DIR)/kopenbsd.x86_64 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/ramdisk=kopenbsd.image.x86_64 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.x86_64 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=qemu-system-x86_64 --files=/ramdisk=kopenbsd.image.x86_64 --files=/kopenbsd=$(GRUB_PAYLOADS_DIR)/kopenbsd.x86_64 $(srcdir)/grub-core/tests/boot/kopenbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null knetbsd.miniroot-image.x86_64.gz: knetbsd.miniroot-image.x86_64.img gzip < $< > $@ bootcheck-knetbsd-x86_64: knetbsd.miniroot-image.x86_64.gz $(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/miniroot.gz=knetbsd.miniroot-image.x86_64.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=qemu-system-x86_64 --files=/miniroot.gz=knetbsd.miniroot-image.x86_64.gz --files=/knetbsd=$(GRUB_PAYLOADS_DIR)/knetbsd.x86_64 $(srcdir)/grub-core/tests/boot/knetbsd.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-linux-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-linux-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + +bootcheck-linux-mips: linux-initramfs.mips $(GRUB_PAYLOADS_DIR)/linux.mips $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=qemu-system-mips --files=/initrd=linux-initramfs.mips --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.mips $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + +bootcheck-linux-mipsel: linux-initramfs.mipsel $(GRUB_PAYLOADS_DIR)/linux.mipsel $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=qemu-system-mipsel --files=/initrd=linux-initramfs.mipsel --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.mipsel $(srcdir)/grub-core/tests/boot/linux.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-linux16-i386: linux-initramfs.i386 $(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/initrd=linux-initramfs.i386 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.i386 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-linux16-x86_64: linux-initramfs.x86_64 $(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=qemu-system-x86_64 --files=/initrd=linux-initramfs.x86_64 --files=/linux=$(GRUB_PAYLOADS_DIR)/linux.x86_64 $(srcdir)/grub-core/tests/boot/linux16.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-multiboot: multiboot.elf $(srcdir)/grub-core/tests/boot/multiboot.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/multiboot.elf=multiboot.elf $(srcdir)/grub-core/tests/boot/multiboot.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/multiboot.elf=multiboot.elf $(srcdir)/grub-core/tests/boot/multiboot.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-multiboot2: multiboot2.elf $(srcdir)/grub-core/tests/boot/multiboot2.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/multiboot2.elf=multiboot2.elf $(srcdir)/grub-core/tests/boot/multiboot2.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/multiboot2.elf=multiboot2.elf $(srcdir)/grub-core/tests/boot/multiboot2.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-kfreebsd-aout: kfreebsd.aout $(srcdir)/grub-core/tests/boot/kfreebsd-aout.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/kfreebsd.aout=kfreebsd.aout $(srcdir)/grub-core/tests/boot/kfreebsd-aout.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/kfreebsd.aout=kfreebsd.aout $(srcdir)/grub-core/tests/boot/kfreebsd-aout.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-pc-chainloader: pc-chainloader.bin $(srcdir)/grub-core/tests/boot/pc-chainloader.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/pc-chainloader.bin=pc-chainloader.bin $(srcdir)/grub-core/tests/boot/pc-chainloader.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/pc-chainloader.bin=pc-chainloader.bin $(srcdir)/grub-core/tests/boot/pc-chainloader.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null bootcheck-ntldr: ntldr.bin $(srcdir)/grub-core/tests/boot/ntldr.cfg grub-shell - timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --boot=$(BOOTTARGET) --qemu=$(QEMU32) --files=/ntldr.bin=ntldr.bin $(srcdir)/grub-core/tests/boot/ntldr.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null + timeout -s KILL $(BOOTCHECK_TIMEOUT) ./grub-shell --qemu-opts="$(GRUB_QEMU_OPTS)" --qemu=$(QEMU32) --files=/ntldr.bin=ntldr.bin $(srcdir)/grub-core/tests/boot/ntldr.cfg | grep $(SUCCESSFUL_BOOT_STRING) > /dev/null -BOOTCHECKS= +if COND_i386_efi +BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 bootcheck-kfreebsd-x86_64 bootcheck-kfreebsd-i386 +endif + +if COND_x86_64_efi +BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 bootcheck-kfreebsd-x86_64 bootcheck-kfreebsd-i386 +endif + +if COND_i386_multiboot +# Freebsd crashes because memory at 0-0x1000 is occupied and requires ACPI +BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 +endif + +if COND_i386_coreboot +# 64-bit NetBSD crashes because memory at 0-0x1000 is occupied +# Freebsd crashes because memory at 0-0x1000 is occupied and requires ACPI +BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 +endif + +if COND_i386_qemu +# Freebsd crashes because memory at 0-0x1000 is occupied and requires ACPI +BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 +endif if COND_i386_pc #pc chainloader by definition is only for i386-pc -BOOTCHECKS += bootcheck-pc-chainloader #ntldr and bootmgr require BIOS. -BOOTCHECKS += bootcheck-ntldr #legacy protocol makes early BIOS calls. -BOOTCHECKS += bootcheck-linux16-i386 bootcheck-linux16-x86_64 -# Crashes early on non-BIOS -BOOTCHECKS += bootcheck-knetbsd-i386 +# NetBSD crashes early on non-BIOS +BOOTCHECKS = bootcheck-kfreebsd-aout bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 bootcheck-multiboot bootcheck-multiboot2 bootcheck-linux-i386 bootcheck-linux-x86_64 bootcheck-knetbsd-x86_64 bootcheck-kfreebsd-x86_64 bootcheck-kfreebsd-i386 bootcheck-pc-chainloader bootcheck-ntldr bootcheck-linux16-i386 bootcheck-linux16-x86_64 bootcheck-knetbsd-i386 endif -if !COND_i386_coreboot -# Crashes because memory at 0-0x1000 is occupied -BOOTCHECKS += bootcheck-knetbsd-x86_64 - -# Likewise and require ACPI. -if !COND_i386_multiboot -if !COND_i386_qemu -BOOTCHECKS += bootcheck-kfreebsd-x86_64 -BOOTCHECKS += bootcheck-kfreebsd-i386 +if COND_mipsel +BOOTCHECKS = bootcheck-linux-mipsel endif +if COND_mipseb +BOOTCHECKS = bootcheck-linux-mips endif -endif - -BOOTCHECKS += bootcheck-kfreebsd-aout - -#BOOTCHECKS += bootcheck-kopenbsd-i386 bootcheck-kopenbsd-x86_64 - -BOOTCHECKS += bootcheck-multiboot bootcheck-multiboot2 - -BOOTCHECKS += bootcheck-linux-i386 bootcheck-linux-x86_64 EXTRA_DIST += grub-core/tests/boot/kbsd.init-i386.S grub-core/tests/boot/kbsd.init-x86_64.S grub-core/tests/boot/kbsd.spec.txt grub-core/tests/boot/kernel-8086.S grub-core/tests/boot/kernel-i386.S grub-core/tests/boot/kfreebsd-aout.cfg grub-core/tests/boot/kfreebsd.cfg grub-core/tests/boot/kfreebsd.init-i386.S grub-core/tests/boot/kfreebsd.init-x86_64.S grub-core/tests/boot/knetbsd.cfg grub-core/tests/boot/kopenbsd.cfg grub-core/tests/boot/kopenbsdlabel.txt grub-core/tests/boot/linux16.cfg grub-core/tests/boot/linux.cfg grub-core/tests/boot/linux.init-i386.S grub-core/tests/boot/linux.init-x86_64.S grub-core/tests/boot/multiboot2.cfg grub-core/tests/boot/multiboot.cfg grub-core/tests/boot/ntldr.cfg grub-core/tests/boot/pc-chainloader.cfg .PHONY: bootcheck-linux-i386 bootcheck-linux-x86_64 \ bootcheck-kfreebsd-i386 bootcheck-kfreebsd-x86_64 \ - bootcheck-knetbsd-i386 bootcheck-knetbsd-x86_64 + bootcheck-knetbsd-i386 bootcheck-knetbsd-x86_64 \ + bootcheck-linux-mips # Randomly generated SUCCESSFUL_BOOT_STRING=3e49994fd5d82b7c9298d672d774080d diff --git a/configure.ac b/configure.ac index ce5b3ab54..ab632ce52 100644 --- a/configure.ac +++ b/configure.ac @@ -1113,6 +1113,8 @@ AM_CONDITIONAL([COND_mips_arc], [test x$target_cpu = xmips -a x$platform = xarc] AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275]) AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275]) AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel]) +AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel]) +AM_CONDITIONAL([COND_mipseb], [test x$target_cpu = xmips]) AM_CONDITIONAL([COND_HOST_HURD], [test x$host_kernel = xhurd]) AM_CONDITIONAL([COND_HOST_LINUX], [test x$host_kernel = xlinux]) diff --git a/grub-core/tests/boot/linux.init-mips.S b/grub-core/tests/boot/linux.init-mips.S new file mode 100644 index 000000000..731f38130 --- /dev/null +++ b/grub-core/tests/boot/linux.init-mips.S @@ -0,0 +1,58 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2010 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see . + */ + +#define SYSCALL_WRITE 4004 +#define SYSCALL_RESET 4088 +#define SYSCALL_EXIT 4001 + +#define STDOUT 1 +#define SHUTDOWN_MAGIC1 0xfee1dead +#define SHUTDOWN_MAGIC2 0x28121969 +#define SHUTDOWN_MAGIC3 0x4321fedc + + .text + .global start, _start, __start +__start: +_start: +start: + /* write. */ + li $v0, SYSCALL_WRITE + li $a0, STDOUT + lui $a1, %hi(message) + addiu $a1, %lo(message) + lui $a2, %hi(messageend) + addiu $a2, %lo(messageend) + subu $a2, $a2, $a1 + syscall + + /* shutdown. */ + li $v0, SYSCALL_RESET + li $a0, SHUTDOWN_MAGIC1 + li $a1, SHUTDOWN_MAGIC2 + li $a2, SHUTDOWN_MAGIC3 + syscall + + /* exit(1). Shouldn't be reached. */ + li $v0, SYSCALL_EXIT + li $a0, 1 + syscall + + .data +message: + .ascii "Boot Test Passed Successfully\n" SUCCESSFUL_BOOT_STRING "\n" +messageend: diff --git a/tests/partmap_test.in b/tests/partmap_test.in index 31917b48d..bb2e8d645 100644 --- a/tests/partmap_test.in +++ b/tests/partmap_test.in @@ -19,6 +19,8 @@ set -e parted=parted grubshell=@builddir@/grub-shell +. "@builddir@/grub-core/modinfo.sh" + create_disk_image () { name="$1" size=$2 @@ -30,10 +32,10 @@ check_output () { outfile=$1 shift - for disk in $@; do - if ! grep "($disk)" ${outfile} >/dev/null + for dsk in $@; do + if ! grep "($dsk)" "${outfile}" >/dev/null then - echo "($disk): disk/partiton not found" + echo "($dsk): disk/partiton not found" exit 1 fi done @@ -42,19 +44,27 @@ check_output () { list_parts () { mod=$1; shift; - imgfile=$1 + imgfile="$1" shift - outfile=$1 + outfile="$1" shift - echo ls | ${grubshell} --boot=cd --qemu-opts="-hda ${imgfile}" \ - --modules=$mod | tr -d "\n\r" > ${outfile} - cat ${outfile} + echo ls | "${grubshell}" --qemu-opts="-hda ${imgfile}" \ + --modules=$mod | tr -d "\n\r" > "${outfile}" + cat "${outfile}" echo } -imgfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 -outfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 +case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + mips-qemu_mips | mipsel-qemu_mips | i386-qemu | i386-multiboot | i386-coreboot) + disk=ata0 + ;; + *) + disk=hd0 + ;; +esac +imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 +outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 # # MSDOS partition types @@ -63,64 +73,64 @@ outfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 echo "Checking MSDOS partition types..." # 0 primary -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel msdos -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel msdos +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk # 1 primary -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 # 2 primary -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 hd0,msdos2 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 # 3 primary -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 hd0,msdos2 hd0,msdos3 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 $disk,msdos3 # 4 primary -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 hd0,msdos2 hd0,msdos3 hd0,msdos4 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart primary 20M 30M mkpart primary 30M 40M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 $disk,msdos2 $disk,msdos3 $disk,msdos4 # 1 primary, 1 extended -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 # 1 primary, 1 extended, 1 logical -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 hd0,msdos5 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 # 1 primary, 1 extended, 2 logical -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 hd0,msdos5 hd0,msdos6 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 # 1 primary, 1 extended, 3 logical -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M mkpart logical 40M 50M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 hd0,msdos5 hd0,msdos6 hd0,msdos7 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M mkpart logical 40M 50M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 $disk,msdos7 # 1 primary, 1 extended, 4 logical -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M mkpart logical 40M 50M mkpart logical 50M 60M -list_parts part_msdos ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,msdos1 hd0,msdos5 hd0,msdos6 hd0,msdos7 hd0,msdos8 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel msdos mkpart primary 0 10M mkpart primary 10M 20M mkpart extended 20M 100% mkpart logical 20M 30M mkpart logical 30M 40M mkpart logical 40M 50M mkpart logical 50M 60M +list_parts part_msdos "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,msdos1 $disk,msdos5 $disk,msdos6 $disk,msdos7 $disk,msdos8 # @@ -130,46 +140,46 @@ check_output ${outfile} hd0 hd0,msdos1 hd0,msdos5 hd0,msdos6 hd0,msdos7 hd0,msdo echo "Checking GPT partition types..." # 0 parts -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel gpt -list_parts part_gpt ${imgfile} ${outfile} -check_output ${outfile} hd0 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel gpt +list_parts part_gpt "${imgfile}" "${outfile}" +check_output "${outfile}" $disk # 1 parts -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel gpt mkpart 1 0 10M -list_parts part_gpt ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,gpt1 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M +list_parts part_gpt "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,gpt1 # 2 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M -list_parts part_gpt ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,gpt1 hd0,gpt2 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M +list_parts part_gpt "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 # 3 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M -list_parts part_gpt ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,gpt1 hd0,gpt2 hd0,gpt3 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M +list_parts part_gpt "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 # 4 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 4 20M 30M mkpart 5 30M 40M -list_parts part_gpt ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,gpt1 hd0,gpt2 hd0,gpt3 hd0,gpt4 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 4 20M 30M mkpart 5 30M 40M +list_parts part_gpt "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 # 5 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M mkpart 4 30M 40M mkpart 5 40M 50M -list_parts part_gpt ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,gpt1 hd0,gpt2 hd0,gpt3 hd0,gpt4 hd0,gpt5 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M mkpart 4 30M 40M mkpart 5 40M 50M +list_parts part_gpt "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 $disk,gpt5 # 6 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M mkpart 4 30M 40M mkpart 5 40M 50M mkpart 6 50M 60M -list_parts part_gpt ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,gpt1 hd0,gpt2 hd0,gpt3 hd0,gpt4 hd0,gpt5 hd0,gpt6 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel gpt mkpart 1 0 10M mkpart 2 10M 20M mkpart 3 20M 30M mkpart 4 30M 40M mkpart 5 40M 50M mkpart 6 50M 60M +list_parts part_gpt "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,gpt1 $disk,gpt2 $disk,gpt3 $disk,gpt4 $disk,gpt5 $disk,gpt6 # @@ -181,46 +191,46 @@ check_output ${outfile} hd0 hd0,gpt1 hd0,gpt2 hd0,gpt3 hd0,gpt4 hd0,gpt5 hd0,gpt echo "Checking SUN partition types..." # 0 parts -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel sun -list_parts part_sun ${imgfile} ${outfile} -check_output ${outfile} hd0 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel sun +list_parts part_sun "${imgfile}" "${outfile}" +check_output "${outfile}" $disk # 1 parts -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel sun mkpart 0 10M -list_parts part_sun ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,sun1 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M +list_parts part_sun "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,sun1 # 2 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M -list_parts part_sun ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,sun1 hd0,sun2 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M +list_parts part_sun "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,sun1 $disk,sun2 # 3 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M -list_parts part_sun ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,sun1 hd0,sun2 hd0,sun4 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M +list_parts part_sun "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 # 4 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M -list_parts part_sun ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,sun1 hd0,sun2 hd0,sun4 hd0,sun5 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M +list_parts part_sun "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 # 5 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M -list_parts part_sun ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,sun1 hd0,sun2 hd0,sun4 hd0,sun5 hd0,sun6 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M +list_parts part_sun "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6 # 6 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M mkpart 50M 60M -list_parts part_sun ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,sun1 hd0,sun2 hd0,sun4 hd0,sun5 hd0,sun6 hd0,sun7 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel sun mkpart 0 10M mkpart 10M 20M mkpart 20M 30M mkpart 30M 40M mkpart 40M 50M mkpart 50M 60M +list_parts part_sun "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,sun1 $disk,sun2 $disk,sun4 $disk,sun5 $disk,sun6 $disk,sun7 # @@ -234,43 +244,43 @@ check_output ${outfile} hd0 hd0,sun1 hd0,sun2 hd0,sun4 hd0,sun5 hd0,sun6 hd0,sun echo "Checking APPLE partition types..." # 0 parts -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel mac -list_parts part_apple ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,apple1 hd0,apple2 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel mac +list_parts part_apple "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,apple1 $disk,apple2 # 1 parts -create_disk_image ${imgfile} 64 -${parted} -a none -s ${imgfile} mklabel mac mkpart a 1M 10M -list_parts part_apple ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,apple1 hd0,apple2 hd0,apple3 +create_disk_image "${imgfile}" 64 +${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M +list_parts part_apple "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple3 # 2 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M -list_parts part_apple ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,apple1 hd0,apple2 hd0,apple3 hd0,apple4 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M +list_parts part_apple "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple3 $disk,apple4 # 3 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M -list_parts part_apple ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,apple1 hd0,apple2 hd0,apple4 hd0,apple5 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M +list_parts part_apple "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 # 4 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M -list_parts part_apple ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,apple1 hd0,apple2 hd0,apple4 hd0,apple5 hd0,apple6 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M +list_parts part_apple "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 # 5 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M mkpart e 40M 50M -list_parts part_apple ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,apple1 hd0,apple2 hd0,apple4 hd0,apple5 hd0,apple6 hd0,apple7 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M mkpart e 40M 50M +list_parts part_apple "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 $disk,apple7 # 6 parts -create_disk_image ${imgfile} 128 -${parted} -a none -s ${imgfile} mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M mkpart e 40M 50M mkpart f 50M 60M -list_parts part_apple ${imgfile} ${outfile} -check_output ${outfile} hd0 hd0,apple1 hd0,apple2 hd0,apple4 hd0,apple5 hd0,apple6 hd0,apple7 hd0,apple8 +create_disk_image "${imgfile}" 128 +${parted} -a none -s "${imgfile}" mklabel mac mkpart a 1M 10M mkpart b 10M 20M mkpart c 20M 30M mkpart d 30M 40M mkpart e 40M 50M mkpart f 50M 60M +list_parts part_apple "${imgfile}" "${outfile}" +check_output "${outfile}" $disk $disk,apple1 $disk,apple2 $disk,apple4 $disk,apple5 $disk,apple6 $disk,apple7 $disk,apple8 diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in index 0d83c73a9..9467ca40c 100644 --- a/tests/util/grub-shell.in +++ b/tests/util/grub-shell.in @@ -54,8 +54,59 @@ Report bugs to . EOF } -boot=hd -qemu=qemu-system-i386 +. "${builddir}/grub-core/modinfo.sh" +qemuopts= +case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + mips-qemu_mips) + boot=mips_qemu + qemu=qemu-system-mips + qemuopts="-M mips" + console=vga_text + ;; + mipsel-qemu_mips) + boot=mipsel_qemu + qemu=qemu-system-mipsel + qemuopts="-M mips" + console=vga_text + ;; + i386-coreboot) + boot=coreboot + qemu=qemu-system-i386 + console=vga_text + ;; + i386-multiboot) + boot=cd + qemu=qemu-system-i386 + console=vga_text;; + + i386-ieee1275) + boot=cd + qemu=qemu-system-i386 + console=console;; + + i386-qemu) + boot=qemu + qemu=qemu-system-i386 + console=vga_text;; + + i386-pc) + boot=cd + qemu=qemu-system-i386 + console=console;; + + i386-efi) + qemu=qemu-system-i386 + boot=cd + console=console;; + x86_64-efi) + qemu=qemu-system-x86_64 + boot=cd + console=console;; + *) + boot=hd + qemu=qemu-system-i386 + console=console;; +esac # Check the arguments. for option in "$@"; do @@ -85,6 +136,8 @@ for option in "$@"; do elif [ "$dev" = "net" ] ; then boot=net; elif [ "$dev" = "qemu" ] ; then boot=qemu; elif [ "$dev" = "coreboot" ] ; then boot=coreboot; + elif [ "$dev" = "mips_qemu" ] ; then boot=mips_qemu; + elif [ "$dev" = "mipsel_qemu" ] ; then boot=mips_qemu; else echo "Unrecognized boot method \`$dev'" 1>&2 usage @@ -132,7 +185,7 @@ done cat <>${cfgfile} source /boot/grub/testcase.cfg # Stop serial output to suppress "ACPI shutdown failed" error. -terminal_output console +terminal_output $console halt EOF @@ -161,6 +214,16 @@ if [ x$boot = xqemu ]; then device=cdrom fi +if [ x$boot = xmipsel_qemu ]; then + bootdev="-kernel ${rom_directory}/mipsel-qemu_mips.elf" + device=cdrom +fi + +if [ x$boot = xmips_qemu ]; then + bootdev="-kernel ${rom_directory}/mips-qemu_mips.elf" + device=cdrom +fi + if [ x$boot = xcoreboot ]; then imgfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 cp "${GRUB_COREBOOT_ROM}" "${imgfile}" @@ -174,7 +237,6 @@ if [ x$boot = xnet ]; then pkgdatadir="@builddir@" sh "@builddir@/grub-mknetdir" "--grub-mkimage=${builddir}/grub-mkimage" "--directory=${builddir}/grub-core" "--net-directory=$netdir" cp "${cfgfile}" "$netdir/boot/grub/grub.cfg" cp "${source}" "$netdir/boot/grub/testcase.cfg" - . "${builddir}/grub-core/modinfo.sh" "${qemu}" ${qemuopts} -nographic -serial file:/dev/stdout -monitor file:/dev/null -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.0" -net nic | cat | tr -d "\r" else "${qemu}" ${qemuopts} -nographic -serial file:/dev/stdout -monitor file:/dev/null -${device} ${isofile} ${bootdev} | cat | tr -d "\r"