mirror of
https://git.proxmox.com/git/grub2
synced 2025-10-21 01:04:49 +00:00

The overflow was in fact impossible in practice because the int parameter is only ever 0, 1, or 2, but GCC couldn't prove that.
174 lines
8.2 KiB
Diff
174 lines
8.2 KiB
Diff
From 3773848cf605c69e54ad802ebf05e3de596eb5aa Mon Sep 17 00:00:00 2001
|
|
From: Colin Watson <cjwatson@ubuntu.com>
|
|
Date: Sun, 18 Sep 2016 17:26:00 +0100
|
|
Subject: syslinux_test: Fix out-of-tree build handling
|
|
|
|
When doing out-of-tree builds, abs_top_srcdir may well contain ".."
|
|
segments, and grub-syslinux2cfg canonicalises its --root argument. As a
|
|
result, the expansion of @abs_top_srcdir@ may not match what
|
|
grub-syslinux2cfg produces.
|
|
|
|
It's somewhat difficult to portably canonicalize a path in shell, and
|
|
autoconf/automake don't offer any support for this. But there's a much
|
|
simpler option: copy the test data to a temporary directory and make
|
|
substitutions in the expected output file based on that.
|
|
|
|
Forwarded: http://lists.gnu.org/archive/html/grub-devel/2016-09/msg00013.html
|
|
Last-Update: 2016-09-19
|
|
|
|
Patch-Name: syslinux-test-out-of-tree.patch
|
|
---
|
|
Makefile.am | 6 ------
|
|
tests/syslinux/ubuntu10.04_grub.cfg.in | 30 +++++++++++++++---------------
|
|
tests/syslinux_test.in | 14 ++++++++++----
|
|
3 files changed, 25 insertions(+), 25 deletions(-)
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
|
index 7795baeb6..f0ab1adc3 100644
|
|
--- a/Makefile.am
|
|
+++ b/Makefile.am
|
|
@@ -473,9 +473,3 @@ ChangeLog: FORCE
|
|
fi
|
|
|
|
EXTRA_DIST += ChangeLog ChangeLog-2015
|
|
-
|
|
-syslinux_test: $(top_builddir)/config.status tests/syslinux/ubuntu10.04_grub.cfg
|
|
-
|
|
-tests/syslinux/ubuntu10.04_grub.cfg: $(top_builddir)/config.status tests/syslinux/ubuntu10.04_grub.cfg.in
|
|
- (for x in tests/syslinux/ubuntu10.04_grub.cfg.in ; do cat $(srcdir)/"$$x"; done) | $(top_builddir)/config.status --file=$@:-
|
|
-CLEANFILES += tests/syslinux/ubuntu10.04_grub.cfg
|
|
diff --git a/tests/syslinux/ubuntu10.04_grub.cfg.in b/tests/syslinux/ubuntu10.04_grub.cfg.in
|
|
index 846e4acf0..f285afb1e 100644
|
|
--- a/tests/syslinux/ubuntu10.04_grub.cfg.in
|
|
+++ b/tests/syslinux/ubuntu10.04_grub.cfg.in
|
|
@@ -1,4 +1,4 @@
|
|
- background_image '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux'/'splash.png'
|
|
+ background_image '@dir@/ubuntu10.04/isolinux'/'splash.png'
|
|
# D-I config version 2.0
|
|
# UNSUPPORTED command 'menu hshift 13'
|
|
# UNSUPPORTED command 'menu width 49'
|
|
@@ -41,7 +41,7 @@ menuentry 'Test memory' --hotkey 'm' --id 'memtest' {
|
|
linux$linux_suffix '/'/'/install/mt86plus'
|
|
}
|
|
menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
|
-# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/gtk.cfg not found
|
|
+# File (host)/@dir@/ubuntu10.04/isolinux/gtk.cfg not found
|
|
# UNSUPPORTED command 'menu begin advanced'
|
|
# UNSUPPORTED command 'menu title Advanced options'
|
|
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
|
@@ -63,15 +63,15 @@ menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
|
}
|
|
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
|
# UNSUPPORTED command 'menu exit'
|
|
-# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/adgtk.cfg not found
|
|
+# File (host)/@dir@/ubuntu10.04/isolinux/adgtk.cfg not found
|
|
# UNSUPPORTED command 'menu end'
|
|
# UNSUPPORTED entry type 0
|
|
true;
|
|
}
|
|
menuentry 'Help' --hotkey 'h' --id 'help' {
|
|
# UNSUPPORTED command 'ui gfxboot bootlogo'
|
|
-#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux'/'prompt.cfg' (host)@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/prompt.cfg:
|
|
- background_image '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'splash.png'
|
|
+#'@dir@/ubuntu10.04/isolinux'/'prompt.cfg' (host)@dir@/ubuntu10.04/isolinux/prompt.cfg:
|
|
+ background_image '@dir@/ubuntu10.04/isolinux/'/'splash.png'
|
|
# UNSUPPORTED command 'display f1.txt'
|
|
# UNSUPPORTED command 'menu hshift 13'
|
|
# UNSUPPORTED command 'menu width 49'
|
|
@@ -114,7 +114,7 @@ menuentry 'Test memory' --hotkey 'm' --id 'memtest' {
|
|
linux$linux_suffix '/'/'/install/mt86plus'
|
|
}
|
|
menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
|
-# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//gtk.cfg not found
|
|
+# File (host)/@dir@/ubuntu10.04/isolinux//gtk.cfg not found
|
|
# UNSUPPORTED command 'menu begin advanced'
|
|
# UNSUPPORTED command 'menu title Advanced options'
|
|
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
|
@@ -136,14 +136,14 @@ menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
|
}
|
|
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
|
# UNSUPPORTED command 'menu exit'
|
|
-# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//adgtk.cfg not found
|
|
+# File (host)/@dir@/ubuntu10.04/isolinux//adgtk.cfg not found
|
|
# UNSUPPORTED command 'menu end'
|
|
# UNSUPPORTED entry type 0
|
|
true;
|
|
}
|
|
menuentry 'Help' --hotkey 'h' --id 'help' {
|
|
-#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'prompt.cfg' (host)@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/prompt.cfg:
|
|
- syslinux_configfile -r '/'/'/' -c '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'' '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'prompt.cfg'
|
|
+#'@dir@/ubuntu10.04/isolinux/'/'prompt.cfg' (host)@dir@/ubuntu10.04/isolinux/prompt.cfg:
|
|
+ syslinux_configfile -r '/'/'/' -c '@dir@/ubuntu10.04/isolinux/'/'' '@dir@/ubuntu10.04/isolinux/'/'prompt.cfg'
|
|
}
|
|
menuentry 'menu' --id 'menu' {
|
|
# UNSUPPORTED command 'f1 f1.txt'
|
|
@@ -156,8 +156,8 @@ menuentry 'menu' --id 'menu' {
|
|
# UNSUPPORTED command 'f8 f8.txt'
|
|
# UNSUPPORTED command 'f9 f9.txt'
|
|
# UNSUPPORTED command 'f0 f10.txt'
|
|
-#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'isolinux.cfg' (host)@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/isolinux.cfg:
|
|
- background_image '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'splash.png'
|
|
+#'@dir@/ubuntu10.04/isolinux/'/'isolinux.cfg' (host)@dir@/ubuntu10.04/isolinux/isolinux.cfg:
|
|
+ background_image '@dir@/ubuntu10.04/isolinux//'/'splash.png'
|
|
# D-I config version 2.0
|
|
# UNSUPPORTED command 'menu hshift 13'
|
|
# UNSUPPORTED command 'menu width 49'
|
|
@@ -200,7 +200,7 @@ menuentry 'Test memory' --hotkey 'm' --id 'memtest' {
|
|
linux$linux_suffix '/'/'/install/mt86plus'
|
|
}
|
|
menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
|
-# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux///gtk.cfg not found
|
|
+# File (host)/@dir@/ubuntu10.04/isolinux///gtk.cfg not found
|
|
# UNSUPPORTED command 'menu begin advanced'
|
|
# UNSUPPORTED command 'menu title Advanced options'
|
|
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
|
@@ -222,15 +222,15 @@ menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
|
}
|
|
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
|
# UNSUPPORTED command 'menu exit'
|
|
-# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux///adgtk.cfg not found
|
|
+# File (host)/@dir@/ubuntu10.04/isolinux///adgtk.cfg not found
|
|
# UNSUPPORTED command 'menu end'
|
|
# UNSUPPORTED entry type 0
|
|
true;
|
|
}
|
|
menuentry 'Help' --hotkey 'h' --id 'help' {
|
|
# UNSUPPORTED command 'ui gfxboot bootlogo'
|
|
-#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'prompt.cfg' (host)@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/prompt.cfg:
|
|
- syslinux_configfile -r '/'/'/' -c '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'' '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'prompt.cfg'
|
|
+#'@dir@/ubuntu10.04/isolinux//'/'prompt.cfg' (host)@dir@/ubuntu10.04/isolinux/prompt.cfg:
|
|
+ syslinux_configfile -r '/'/'/' -c '@dir@/ubuntu10.04/isolinux//'/'' '@dir@/ubuntu10.04/isolinux//'/'prompt.cfg'
|
|
}
|
|
}
|
|
}
|
|
diff --git a/tests/syslinux_test.in b/tests/syslinux_test.in
|
|
index fc4edd8ef..4ba94c576 100644
|
|
--- a/tests/syslinux_test.in
|
|
+++ b/tests/syslinux_test.in
|
|
@@ -2,15 +2,21 @@
|
|
|
|
set -e
|
|
|
|
+tdir="`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1
|
|
outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1
|
|
|
|
-"@builddir@/grub-syslinux2cfg" -r "@abs_top_srcdir@/tests/syslinux/ubuntu10.04" "@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/isolinux.cfg" -o "$outfile"
|
|
+cp -a "@top_srcdir@/tests/syslinux/ubuntu10.04" "$tdir/ubuntu10.04"
|
|
|
|
-echo "$outfile"
|
|
+"@builddir@/grub-syslinux2cfg" -r "$tdir/ubuntu10.04" "$tdir/ubuntu10.04/isolinux/isolinux.cfg" -o "$tdir/observed.cfg"
|
|
|
|
-if ! diff -u "$outfile" "@builddir@/tests/syslinux/ubuntu10.04_grub.cfg"; then
|
|
+echo "$tdir/observed.cfg"
|
|
+
|
|
+sed -e "s,@dir@,$tdir,g" "@top_srcdir@/tests/syslinux/ubuntu10.04_grub.cfg.in" >"$tdir/expected.cfg"
|
|
+if ! diff -u "$tdir/observed.cfg" "$tdir/expected.cfg"; then
|
|
echo "Mismatch in ubuntu10.04"
|
|
- exit 1;
|
|
+ rm -rf "$tdir"
|
|
+ exit 1
|
|
fi
|
|
|
|
+rm -rf "$tdir"
|
|
exit 0
|