[LTP] [PATCH] Fix wrong pattern used by fnmatch in test case proc01.c
Jan Stancek
jstancek@redhat.com
Tue Dec 1 09:35:49 CET 2015
----- Original Message -----
> From: "Lijin(Euler Dept 8)" <lijin14@huawei.com>
> To: "Jan Stancek" <jstancek@redhat.com>
> Cc: "Li Jin" <King.lijin@huawei.com>, ltp@lists.linux.it
> Sent: Tuesday, 1 December, 2015 2:30:27 AM
> Subject: Re: [LTP] [PATCH] Fix wrong pattern used by fnmatch in test case proc01.c
>
> On 2015/11/30 20:46, Jan Stancek wrote:
> >
> >
> >
> >
> > ----- Original Message -----
> >> From: "Li Jin" <King.lijin@huawei.com>
> >> To: "king lijin" <king.lijin@huawei.com>, ltp@lists.linux.it
> >> Cc: "Li Jin" <King.lijin@huawei.com>
> >> Sent: Friday, 27 November, 2015 7:44:09 AM
> >> Subject: [LTP] [PATCH] Fix wrong pattern used by fnmatch in test case
> >> proc01.c
> >>
> >> fnmatch() in proc01.c should use pattern ipv6/conf/[a-z]*/stable_secret
> >> to replace /ipv6/conf/*/stable_secret to check the known issue string such
> >> as
> >> /proc/sys/net/ipv6/conf/all/stable_secret
> >
> > Hi,
> >
> > An explanation _why_ it is wrong would be helpful too.
>
> Got it. The reason is that a single "*" can not be used to match the any
> string in fnmatch.
Why not? According to [1] referenced by [2]:
The <asterisk> ( '*' ) is a pattern that shall match any string, including the null string
and it looks like valid 'shell wildcard pattern' (fnmatch(3)).
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13_02
[2] http://pubs.opengroup.org/onlinepubs/9699919799/functions/fnmatch.html
> >
> >>
> >> Signed-off-by: Li Jin <King.lijin@huawei.com>
> >> ---
> >> testcases/kernel/fs/proc/proc01.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/testcases/kernel/fs/proc/proc01.c
> >> b/testcases/kernel/fs/proc/proc01.c
> >> index 2825b51..197eb55 100644
> >> --- a/testcases/kernel/fs/proc/proc01.c
> >> +++ b/testcases/kernel/fs/proc/proc01.c
> >> @@ -107,7 +107,7 @@ static const struct mapping known_issues[] = {
> >> {"read", "/proc/fs/nfsd/.getfs", EINVAL},
> >> {"read", "/proc/fs/nfsd/.getfd", EINVAL},
> >> {"read", "/proc/self/net/rpc/use-gss-proxy", EAGAIN},
> >> - {"read", "/proc/sys/net/ipv6/conf/*/stable_secret", EIO},
> >> + {"read", "/proc/sys/net/ipv6/conf/[a-z]*/stable_secret", EIO},
> >
> > This has problems as well:
>
> Just ignore it. It's the problem of my linux system
>
> >
> > # ip tuntap add 1tap mode tap
> > # ./proc01 -m 128
> > proc01 0 TINFO : /proc/sys/fs/binfmt_misc/register: is write-only.
> > proc01 1 TFAIL : proc01.c:393: read failed:
> > /proc/sys/net/ipv6/conf/1tap/stable_secret: errno=EIO(5): Input/output
> > error
> > ...
> >
> > How about:
> > + {"read", "/proc/sys/net/ipv6/conf/?*/stable_secret", EIO},
>
> Good idea. It works and I will send V2 patch.
I'm curious on what distro and glibc version original code is failing for you.
Regards,
Jan
>
> Regards,
>
> Jin
>
> >
> > Regards,
> > Jan
> >
> >> {"", "", 0}
> >> };
> >>
> >> --
> >> 1.8.3.1
> >>
> >>
> >> --
> >> Mailing list info: http://lists.linux.it/listinfo/ltp
> >>
> >
> > .
> >
>
>
>
More information about the Ltp
mailing list