[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Fix syslinux_test in out-of-tree builds
From: |
Daniel Kiper |
Subject: |
Re: [PATCH] Fix syslinux_test in out-of-tree builds |
Date: |
Mon, 14 Jan 2019 14:15:14 +0100 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
On Wed, Jan 09, 2019 at 02:59:12PM +0000, Colin Watson wrote:
> 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 <address@hidden>
> ---
> Makefile.am | 7 ++++++-
> tests/syslinux/ubuntu10.04_grub.cfg.in | 20 ++++++++++----------
> 2 files changed, 16 insertions(+), 11 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index a52a998a1..51e4f127d 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -476,6 +476,11 @@ EXTRA_DIST += ChangeLog ChangeLog-2015
>
> 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
OK, but I would like to see a comment before
grub-core/lib/syslinux_parse.c:simplify_filename() saying that somebody
changing its code should take care of the code here too. Otherwise
sooner or later the tests will be broken again due oversight.
> +# 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
> - (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'`; \
> + (for x in tests/syslinux/ubuntu10.04_grub.cfg.in ; do sed
> "s,@simplified_abs_top_srcdir@,$$simplified_abs_top_srcdir,g"
> $(srcdir)/"$$x"; done) | $(top_builddir)/config.status --file=$@:-
I think that you can drop this for.
> 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..441dec045 100644
> --- a/tests/syslinux/ubuntu10.04_grub.cfg.in
> +++ b/tests/syslinux/ubuntu10.04_grub.cfg.in
> @@ -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)/@simplified_abs_top_srcdir@/tests/syslinux/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,14 +63,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)/@simplified_abs_top_srcdir@/tests/syslinux/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:
> +#'@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'
> # UNSUPPORTED command 'display f1.txt'
> # UNSUPPORTED command 'menu hshift 13'
> @@ -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)/@simplified_abs_top_srcdir@/tests/syslinux/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,13 +136,13 @@ 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)/@simplified_abs_top_srcdir@/tests/syslinux/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:
> +#'@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'
> }
> menuentry 'menu' --id 'menu' {
> @@ -156,7 +156,7 @@ 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:
> +#'@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'
> # D-I config version 2.0
> # UNSUPPORTED command 'menu hshift 13'
> @@ -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)/@simplified_abs_top_srcdir@/tests/syslinux/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,14 +222,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)/@simplified_abs_top_srcdir@/tests/syslinux/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:
> +#'@abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux//'/'prompt.cfg'
> (host)@simplified_abs_top_srcdir@/tests/syslinux/ubuntu10.04/isolinux/prompt.cfg:
Hmmm... Why number of "/" increases from top to down --->^^^^
Daniel