[LTP] test specific command line options
Jan Stancek
jstancek@redhat.com
Thu Jul 28 14:23:11 CEST 2016
----- Original Message -----
> From: "Han Pingtian" <hanpt@linux.vnet.ibm.com>
> To: ltp@lists.linux.it
> Sent: Thursday, 28 July, 2016 10:12:49 AM
> Subject: [LTP] test specific command line options
>
> Hi,
>
> From the doc I read:
>
> ... The 'arg' is where 'optarg' is stored upon match. If option has no
> parameter it's set to non-'NULL' value if option was present.
>
> But looks like if a option was present which has no parameter, the 'arg'
> will set to NULL?
You're right, that looks like a BUG. If you don't provide colon,
then "arg" stays NULL, but doc say it should be non-NULL:
diff --git a/lib/tst_test.c b/lib/tst_test.c
index 4f417ea345e7..0b99bedd8d81 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -384,6 +384,7 @@ static void parse_topt(unsigned int topts_len, int opt, char *optarg)
{
unsigned int i;
struct tst_option *toptions = tst_test->options;
+ static char *match = "";
for (i = 0; i < topts_len; i++) {
if (toptions[i].optstr[0] == opt)
@@ -393,7 +394,10 @@ static void parse_topt(unsigned int topts_len, int opt, char *optarg)
if (i >= topts_len)
tst_brk(TBROK, "Invalid option '%c' (should not happen)", opt);
- *(toptions[i].arg) = optarg;
+ if (optarg)
+ *(toptions[i].arg) = optarg;
+ else
+ *(toptions[i].arg) = match;
}
/* see self_exec.c */
Regards,
Jan
>
> Thanks in advance.
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
More information about the ltp
mailing list