diff options
Diffstat (limited to '')
-rw-r--r-- | tests/uhci_test.in | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/uhci_test.in b/tests/uhci_test.in new file mode 100644 index 0000000..f0eec50 --- /dev/null +++ b/tests/uhci_test.in @@ -0,0 +1,51 @@ +#! @BUILD_SHEBANG@ +# Copyright (C) 2013 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 <http://www.gnu.org/licenses/>. + +set -e +grubshell=@builddir@/grub-shell + +. "@builddir@/grub-core/modinfo.sh" + +case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in + # PLATFORM: Don't mess with real devices when OS is active + *-emu) + exit 0;; + # FIXME: qemu gets bonito DMA wrong + mipsel-loongson) + exit 0;; + # PLATFORM: no USB on ARC and qemu-mips platforms + mips*-arc | mips*-qemu_mips) + exit 0;; + # FIXME: No native drivers are available for those + powerpc-ieee1275 | sparc64-ieee1275 | arm*-efi) + exit 0;; +esac + +imgfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 +outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 + +echo "hello" > "$outfile" + +tar cf "$imgfile" "$outfile" + +if [ "$(echo "nativedisk; source '(usb0)/$outfile';" | "${grubshell}" --qemu-opts="-device ich9-usb-uhci1 -drive id=my_usb_disk,file=$imgfile,if=none -device usb-storage,drive=my_usb_disk" | tail -n 1)" != "Hello World" ]; then + rm "$imgfile" + rm "$outfile" + exit 1 +fi + +rm "$imgfile" +rm "$outfile" |