grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] syslinux_test: Fix out-of-tree build handling


From: Colin Watson
Subject: [PATCH] syslinux_test: Fix out-of-tree build handling
Date: Sun, 18 Sep 2016 17:33:49 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

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.
---
 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 00a9663..bc90303 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -460,9 +460,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 846e4ac..f285afb 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 fc4edd8..4ba94c5 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
-- 
2.7.4



reply via email to

[Prev in Thread] Current Thread [Next in Thread]