]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
grub-shell: support --files also for net boot
authorAndrei Borzenkov <arvidjaar@gmail.com>
Fri, 5 Dec 2014 16:55:59 +0000 (19:55 +0300)
committerAndrei Borzenkov <arvidjaar@gmail.com>
Fri, 5 Dec 2014 16:55:59 +0000 (19:55 +0300)
This allows running tests that require extra files using netboot as well.

ChangeLog
tests/util/grub-shell.in

index 46f049d481363b30dc44dd1d68a28d14ea55459f..c163cd5c0bbee587973317c38a0be3e523c6ad9d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-12-05  Andrei Borzenkov  <arvidjaar@gmail.com>
+
+       * tests/util/grub-shell.in: Support --files also for netboot.
+
 2014-12-01  Andrei Borzenkov  <arvidjaar@gmail.com>
 
        * grub-core/loader/i386/xen_fileXX.c (grub_xen_get_infoXX): Fix
index d9a5253e26fc939441a9ede637977a3a19fb1da2..5b66139a9bdccd0f1429b7880cd87378aa54f4bf 100644 (file)
@@ -422,11 +422,28 @@ do_trim ()
     fi
 }
 
+copy_extra_files() {
+    _destdir="$1"
+    shift
+
+    # FIXME support '=' in file names
+    for _file in "$@"; do
+       _target="${_file%=*}"
+       _source="${_file#*=}"
+       [ -n "$_source" ] || _source="$_target"
+       _target="$_destdir/$_target"
+       _targetdir="$(dirname "$_target")"
+       [ -d "$_targetdir" ] || mkdir -p "$_targetdir"
+       cp "$_source" "$_target"
+    done
+}
+
 if [ x$boot = xnet ]; then
     netdir=`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1
     pkgdatadir="@builddir@" "@builddir@/grub-mknetdir" "--grub-mkimage=${builddir}/grub-mkimage" "--directory=${builddir}/grub-core" "--net-directory=$netdir" ${mkrescue_args} > /dev/null
     cp "${cfgfile}" "$netdir/boot/grub/grub.cfg"
     cp "${source}" "$netdir/boot/grub/testcase.cfg"
+    [ -z "$files" ] || copy_extra_files "$netdir" $files
     timeout -s KILL $timeout "${qemu}" ${qemuopts} ${serial_null} -serial file:/dev/stdout -boot n -net "user,tftp=$netdir,bootfile=/boot/grub/${grub_modinfo_target_cpu}-${grub_modinfo_platform}/core.$netbootext"  -net nic  | cat | tr -d "\r" | do_trim
 elif [ x$boot = xemu ]; then
     grubdir="$(mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")"