syslinux: Fix syslinux_test in out-of-tree builds
syslinux_parse simplifies some filenames by removing things like ".." segments, but the tests assumed that @abs_top_srcdir@ would be untouched, which is not true in the case of out-of-tree builds where @abs_top_srcdir@ may contain ".." segments. Performing the substitution requires some awkwardness in Makefile.am due to details of how config.status works. Signed-off-by: Colin Watson <cjwatson@ubuntu.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
62daa27056
commit
f8f35acb5b
3 changed files with 20 additions and 11 deletions
|
@ -476,6 +476,11 @@ EXTRA_DIST += ChangeLog ChangeLog-2015
|
||||||
|
|
||||||
syslinux_test: $(top_builddir)/config.status tests/syslinux/ubuntu10.04_grub.cfg
|
syslinux_test: $(top_builddir)/config.status tests/syslinux/ubuntu10.04_grub.cfg
|
||||||
|
|
||||||
|
# Mimic simplify_filename from grub-core/lib/syslinux_parse.c, so that we
|
||||||
|
# can predict its behaviour in tests. We have to pre-substitute this before
|
||||||
|
# calling config.status, as config.status offers no reliable way to hook in
|
||||||
|
# a command between setting ac_abs_top_srcdir and emitting output files.
|
||||||
tests/syslinux/ubuntu10.04_grub.cfg: $(top_builddir)/config.status tests/syslinux/ubuntu10.04_grub.cfg.in
|
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=$@:-
|
simplified_abs_top_srcdir=`echo "$(abs_top_srcdir)" | sed 's,//,/,g; s,/\./,/,g; :loop; s,/[^/][^/]*/\.\.\(/\|$$\),\1,; t loop'`; \
|
||||||
|
sed "s,@simplified_abs_top_srcdir@,$$simplified_abs_top_srcdir,g" $(srcdir)/tests/syslinux/ubuntu10.04_grub.cfg.in | $(top_builddir)/config.status --file=$@:-
|
||||||
CLEANFILES += tests/syslinux/ubuntu10.04_grub.cfg
|
CLEANFILES += tests/syslinux/ubuntu10.04_grub.cfg
|
||||||
|
|
|
@ -807,6 +807,10 @@ print_file (struct output_buffer *outbuf,
|
||||||
return print_escaped (outbuf, from, to);
|
return print_escaped (outbuf, from, to);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Makefile.am mimics this when generating tests/syslinux/ubuntu10.04_grub.cfg,
|
||||||
|
* so changes here may need to be reflected there too.
|
||||||
|
*/
|
||||||
static void
|
static void
|
||||||
simplify_filename (char *str)
|
simplify_filename (char *str)
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,7 +41,7 @@ menuentry 'Test memory' --hotkey 'm' --id 'memtest' {
|
||||||
linux$linux_suffix '/'/'/install/mt86plus'
|
linux$linux_suffix '/'/'/install/mt86plus'
|
||||||
}
|
}
|
||||||
menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
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)/@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/gtk.cfg not found
|
||||||
# UNSUPPORTED command 'menu begin advanced'
|
# UNSUPPORTED command 'menu begin advanced'
|
||||||
# UNSUPPORTED command 'menu title Advanced options'
|
# UNSUPPORTED command 'menu title Advanced options'
|
||||||
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
||||||
|
@ -63,14 +63,14 @@ menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
||||||
}
|
}
|
||||||
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
||||||
# UNSUPPORTED command 'menu exit'
|
# UNSUPPORTED command 'menu exit'
|
||||||
# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/adgtk.cfg not found
|
# File (host)/@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/adgtk.cfg not found
|
||||||
# UNSUPPORTED command 'menu end'
|
# UNSUPPORTED command 'menu end'
|
||||||
# UNSUPPORTED entry type 0
|
# UNSUPPORTED entry type 0
|
||||||
true;
|
true;
|
||||||
}
|
}
|
||||||
menuentry 'Help' --hotkey 'h' --id 'help' {
|
menuentry 'Help' --hotkey 'h' --id 'help' {
|
||||||
# UNSUPPORTED command 'ui gfxboot bootlogo'
|
# 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:
|
#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux'/'prompt.cfg' (host)@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/prompt.cfg:
|
||||||
background_image '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'splash.png'
|
background_image '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'splash.png'
|
||||||
# UNSUPPORTED command 'display f1.txt'
|
# UNSUPPORTED command 'display f1.txt'
|
||||||
# UNSUPPORTED command 'menu hshift 13'
|
# UNSUPPORTED command 'menu hshift 13'
|
||||||
|
@ -114,7 +114,7 @@ menuentry 'Test memory' --hotkey 'm' --id 'memtest' {
|
||||||
linux$linux_suffix '/'/'/install/mt86plus'
|
linux$linux_suffix '/'/'/install/mt86plus'
|
||||||
}
|
}
|
||||||
menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
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)/@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//gtk.cfg not found
|
||||||
# UNSUPPORTED command 'menu begin advanced'
|
# UNSUPPORTED command 'menu begin advanced'
|
||||||
# UNSUPPORTED command 'menu title Advanced options'
|
# UNSUPPORTED command 'menu title Advanced options'
|
||||||
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
||||||
|
@ -136,13 +136,13 @@ menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
||||||
}
|
}
|
||||||
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
||||||
# UNSUPPORTED command 'menu exit'
|
# UNSUPPORTED command 'menu exit'
|
||||||
# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//adgtk.cfg not found
|
# File (host)/@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//adgtk.cfg not found
|
||||||
# UNSUPPORTED command 'menu end'
|
# UNSUPPORTED command 'menu end'
|
||||||
# UNSUPPORTED entry type 0
|
# UNSUPPORTED entry type 0
|
||||||
true;
|
true;
|
||||||
}
|
}
|
||||||
menuentry 'Help' --hotkey 'h' --id 'help' {
|
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:
|
#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'prompt.cfg' (host)@simplified_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'
|
syslinux_configfile -r '/'/'/' -c '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'' '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'prompt.cfg'
|
||||||
}
|
}
|
||||||
menuentry 'menu' --id 'menu' {
|
menuentry 'menu' --id 'menu' {
|
||||||
|
@ -156,7 +156,7 @@ menuentry 'menu' --id 'menu' {
|
||||||
# UNSUPPORTED command 'f8 f8.txt'
|
# UNSUPPORTED command 'f8 f8.txt'
|
||||||
# UNSUPPORTED command 'f9 f9.txt'
|
# UNSUPPORTED command 'f9 f9.txt'
|
||||||
# UNSUPPORTED command 'f0 f10.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:
|
#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/'/'isolinux.cfg' (host)@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/isolinux.cfg:
|
||||||
background_image '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'splash.png'
|
background_image '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'splash.png'
|
||||||
# D-I config version 2.0
|
# D-I config version 2.0
|
||||||
# UNSUPPORTED command 'menu hshift 13'
|
# UNSUPPORTED command 'menu hshift 13'
|
||||||
|
@ -200,7 +200,7 @@ menuentry 'Test memory' --hotkey 'm' --id 'memtest' {
|
||||||
linux$linux_suffix '/'/'/install/mt86plus'
|
linux$linux_suffix '/'/'/install/mt86plus'
|
||||||
}
|
}
|
||||||
menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
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)/@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux///gtk.cfg not found
|
||||||
# UNSUPPORTED command 'menu begin advanced'
|
# UNSUPPORTED command 'menu begin advanced'
|
||||||
# UNSUPPORTED command 'menu title Advanced options'
|
# UNSUPPORTED command 'menu title Advanced options'
|
||||||
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
# UNSUPPORTED command 'menu color title * #FFFFFFFF *'
|
||||||
|
@ -222,14 +222,14 @@ menuentry 'Boot from first hard disk' --hotkey 'b' --id 'hd' {
|
||||||
}
|
}
|
||||||
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
menuentry 'Back..' --hotkey 'b' --id 'mainmenu' {
|
||||||
# UNSUPPORTED command 'menu exit'
|
# UNSUPPORTED command 'menu exit'
|
||||||
# File (host)/@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux///adgtk.cfg not found
|
# File (host)/@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux///adgtk.cfg not found
|
||||||
# UNSUPPORTED command 'menu end'
|
# UNSUPPORTED command 'menu end'
|
||||||
# UNSUPPORTED entry type 0
|
# UNSUPPORTED entry type 0
|
||||||
true;
|
true;
|
||||||
}
|
}
|
||||||
menuentry 'Help' --hotkey 'h' --id 'help' {
|
menuentry 'Help' --hotkey 'h' --id 'help' {
|
||||||
# UNSUPPORTED command 'ui gfxboot bootlogo'
|
# 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:
|
#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'prompt.cfg' (host)@simplified_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'
|
syslinux_configfile -r '/'/'/' -c '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'' '@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'prompt.cfg'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue