#!/bin/bash

INITSDIR=$HOME/grub2/test/inits
KERNDIR=$HOME/grub2/test/kernels

testlinux () {
    ./grub-mkrescue --override-directory=. --output=grub-linux-$3-"${1}-${2}".iso /boot/grub/grub.cfg=$INITSDIR/linuxtest.cfg /linux=$KERNDIR/linux.$3 /initrd=$INITSDIR/linux-initramfs.$3
    echo Booting linux-$3 on "${1}-${2}"
    if ! (qemu-system-$3 -nographic -serial stdio -cdrom grub-linux-$3-"${1}-${2}".iso | tee ../report-linux-$3-"${1}-${2}" | grep 3e49994fd5d82b7c9298d672d774080d > /dev/null); then
     	exit 1;
    fi

    ./grub-mkrescue --override-directory=. --output=grub-linux16-$3-"${1}-${2}".iso /boot/grub/grub.cfg=$INITSDIR/linux16test.cfg /linux=$KERNDIR/linux.$3 /initrd=$INITSDIR/linux-initramfs.$3
    echo Booting linux16-$3 on "${1}-${2}"
    if ! (qemu-system-$3 -nographic -serial stdio -cdrom grub-linux16-$3-"${1}-${2}".iso | tee ../report-linux16-$3-"${1}-${2}" | grep 3e49994fd5d82b7c9298d672d774080d > /dev/null); then
     	exit 1;
    fi
}

test86 () {
    mkdir "${2}-${3}"
    cd "${2}-${3}"
    echo Building "${2}-${3}"
    if ! (grubconf "$1" "--target=$2" "--with-platform=$3" > /dev/null \
	    && make -j1 > /dev/null); then 
     	exit 1;
    fi
    testlinux "$2" "$3" "i386"
    testlinux "$2" "$3" "x86_64"
    cd ..
}

test86 "$1" "i386" "pc"

