All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Stancek <jstancek@redhat.com>
To: ltp@lists.linux.it
Subject: [LTP] [RFC] [PATCH] tst_kvcmp: Add support for extra kernel versions
Date: Thu, 27 Apr 2017 09:21:07 -0400 (EDT)	[thread overview]
Message-ID: <316485995.3602202.1493299267158.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <20170427130152.GA14404@rei.lan>


----- Original Message -----
> Hi!
> > +static int compare_kver(const char *cur_kver, char *kver)
> > +{
> > +        const char *ver, *exver;
> > +        const char *distname = tst_kvcmp_distname(cur_kver);
> > +        int v1, v2, v3;
> > +
> > +        ver = strtok(kver, " ");
> > +
> > +        while ((exver = strtok(NULL, " "))) {
> > +                char *exkver = strchr(exver, ':');
> > +
> > +                if (!exkver) {
> > +                        fprintf(stderr, "Invalid extra version '%s'\n",
> > exver);
> > +                        exit(2);
> > +                }
> > +
> > +                *(exkver++) = '\0';
> > +
> > +                if (!distname || strcmp(distname, exver))
> > +                        continue;
> > +
> > +                return tst_kvexcmp(exkver, cur_kver);
> > +        }
> > 
> > If distname != NULL, that means that this is a distro we recognize.
> > And if we reached here, after while loop, that means we didn't
> > match any distro specified in "kver", correct?
> 
> Correct.
> 
> > So, is it OK to make conclusion, that there is a problem in kver?
> 
> Not at all. Even if we recognize the distro and the distname is non-NULL
> we can have any subset of distribution specific kernel versions
> (including empty one) in the input string. Hence if the loop does not
> mach any extra version against the currently detected distribution we
> simply fall back to the generic kernel version that should be at the
> start of the string.
> 
> Think about the distribution specific versions as of overrides that
> apply only if the distribution version is matched, otherwise we use the
> generic kernel version to make the decision.

OK, I see where my reasoning failed.

> 
> The only thing that should probably be validated here are the
> distribution names passed in the kver string. As it is everything that
> is not matched is skipped including possible typos. Hence I was speaking
> about adding a function that would check if given distribution name is
> valid (known to the library code).

I'd put that on todo/wish list, since this extended version matching
isn't widely used.

Regards,
Jan

> 
> --
> Cyril Hrubis
> chrubis@suse.cz
> 

  reply	other threads:[~2017-04-27 13:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-21 15:52 [LTP] [RFC] [PATCH] tst_kvcmp: Add support for extra kernel versions Cyril Hrubis
2017-04-24  7:58 ` Jan Stancek
2017-04-26 15:06   ` Cyril Hrubis
2017-04-27  8:28     ` Jan Stancek
2017-04-27 13:01       ` Cyril Hrubis
2017-04-27 13:21         ` Jan Stancek [this message]
2017-04-27 14:52           ` Cyril Hrubis
2017-04-28  6:58             ` Jan Stancek
2017-04-28 15:10               ` Cyril Hrubis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=316485995.3602202.1493299267158.JavaMail.zimbra@redhat.com \
    --to=jstancek@redhat.com \
    --cc=ltp@lists.linux.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.