|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [osstest test] 56922: regressions - FAIL
On Sat, 2015-05-23 at 16:31 +0800, Robert Hu wrote:
> On Fri, 2015-05-22 at 15:21 +0100, Ian Campbell wrote:
> > On Fri, 2015-05-22 at 14:42 +0100, Ian Campbell wrote:
> > > From my particular grub.cfg. For real usage setupboot_grub2 will
> > > obviously need to become cleverer to count things correctly.
> >
> > I've not tested extensively but the following incremental patch seems to
> > do the right thing, at least by inspection of the resulting grub.cfg.
> >
> > Needs more testing (e.g. I haven't tried non-XSM yet) and review from
> > Ian I think, since there may be a more idiomatically Perl way to
> > manipulate the @offsets array (in particular shrinking it).
Carefully read your code and I think they can handle submenu (even
submenu in a submenu) correctly. Thanks for correcting my previous
implementation.
Just my 2 cents below inline.
> >
> > Ian.
> >
> > diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm
> > index 282175b..b5148fd 100644
> > --- a/Osstest/Debian.pm
> > +++ b/Osstest/Debian.pm
> > @@ -393,8 +393,6 @@ sub setupboot_grub1 ($$$$) {
> > # Note on running OSSTest on Squeeze with old Xen kernel: check out
> > # Debian bug #633127 "/etc/grub/20_linux does not recognise some old
> > # Xen kernels"
> > -# Currently setupboot_grub2 relies on Grub menu not having submenu.
> > -# Check Debian bug #690538.
> > sub setupboot_grub2 ($$$$) {
> > my ($ho,$want_kernver,$want_xsm,$xenhopt,$xenkopt) = @_;
> > my $bl= { };
> > @@ -405,7 +403,7 @@ sub setupboot_grub2 ($$$$) {
> > my $parsemenu= sub {
> > my $f= bl_getmenu_open($ho, $rmenu,
> > "$stash/$ho->{Name}--grub.cfg.1");
> >
> > - my $count= 0;
> > + my @offsets = (0);
> > my $entry;
> > my $submenu;
> > while (<$f>) {
> > @@ -417,6 +415,8 @@ sub setupboot_grub2 ($$$$) {
> > "$submenu->{StartLine}. ".
> > "Our want kern is $want_kernver");
> > $submenu=undef;
> > + $#offsets = $#offsets-1;
> > + $offsets[$#offsets]++;
may consider 'pop/push' operations on @offsets array? I worry about if
'$#offsets-1' can always shrink array size correctly. pop/push anyway is
some official way to do this.
> > next;
> > }
> > my (@missing) =
> > @@ -446,11 +446,12 @@ sub setupboot_grub2 ($$$$) {
> > }
> > if (m/^menuentry\s+[\'\"](.*)[\'\"].*\{\s*$/) {
> > die $entry->{StartLine} if $entry;
> > - $entry= { Title => $1, StartLine => $., Number => $count };
> > - $count++;
> > + $entry= { Title => $1, StartLine => $., MenuEntryPath =>
> > join ">", @offsets };
> > + $offsets[$#offsets]++;
> > }
> > if (m/^submenu\s+[\'\"](.*)[\'\"].*\{\s*$/) {
> > - $submenu={ StartLine =>$.};
> > + $submenu={ StartLine =>$., MenuEntryPath => join ">",
> > @offsets };
Here MenuEntryPath element for $submenu is actually debug purpose only,
I think, may be can remove it. correct me if I'm wrong.
> > + $offsets[$#offsets+1] = 0;
> I see your points now.
> Seems you even considers nested submenu in the future.:)
> Just 1 question (I'm not a Perl expert): after "$offsets[$#offsets+1] =
> 0;", $#offsets increases automatically/implicitly, right?
> > }
> > if (m/^\s*multiboot\s*(?:\/boot)?\/(xen\S+)/) {
> > die unless $entry;
> > @@ -511,7 +512,7 @@ sub setupboot_grub2 ($$$$) {
> > }
> > print ::EO <<END or die $!;
> >
> > -GRUB_DEFAULT=$entry->{Number}
> > +GRUB_DEFAULT="$entry->{MenuEntryPath}"
> > END
> >
> > print ::EO <<END or die $! if defined $xenhopt;
> >
> >
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |