[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