From ead273ae18fd1e2345476b21e6cdd565ed0a10d5 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Sun, 29 May 2016 23:31:53 -0700 Subject: [PATCH] fuse_opt: testing --- src/dll/fuse/fuse_opt.c | 2 +- tst/winfsp-tests/fuse-opt-test.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/dll/fuse/fuse_opt.c b/src/dll/fuse/fuse_opt.c index cc45b11b..8995198f 100644 --- a/src/dll/fuse/fuse_opt.c +++ b/src/dll/fuse/fuse_opt.c @@ -68,7 +68,7 @@ static long long strtoint(const char *p, const char *endp, int base, int is_sign { c |= 0x20; if ('a' <= c && c <= maxalp) - v = base * v + (c - 'a'); + v = base * v + (c - 'a') + 10; else break; } diff --git a/tst/winfsp-tests/fuse-opt-test.c b/tst/winfsp-tests/fuse-opt-test.c index 98dc39bb..68dcf268 100644 --- a/tst/winfsp-tests/fuse-opt-test.c +++ b/tst/winfsp-tests/fuse-opt-test.c @@ -14,6 +14,7 @@ struct data short x; long y; long long z; + int dec, neg, hex, oct; int arg_discard, arg_keep; int opt_discard, opt_keep; int nonopt_discard, nonopt_keep; @@ -191,6 +192,11 @@ void fuse_opt_parse_test(void) { "-y=%li", offsetof(struct data, y), 'y' }, { "-z=%lli", offsetof(struct data, z), 'z' }, + { "--dec=%d", offsetof(struct data, dec), 'dec' }, + { "--neg=%d", offsetof(struct data, neg), 'neg' }, + { "--hex=%x", offsetof(struct data, hex), 'hex' }, + { "--oct=%o", offsetof(struct data, oct), 'oct' }, + FUSE_OPT_KEY("--discard", FUSE_OPT_KEY_DISCARD), FUSE_OPT_KEY("--keep", FUSE_OPT_KEY_KEEP), @@ -221,6 +227,10 @@ void fuse_opt_parse_test(void) "-x=65537", "-y=0x100000001", "-z=0x100000001", + "--dec=+1234567890", + "--neg=-1234567890", + "--hex=ABCDEF", + "--oct=12345670", "--discard", "--keep", "--arg-discard", @@ -286,6 +296,10 @@ void fuse_opt_parse_test(void) ASSERT(1 == data.x); ASSERT((long)0x100000001 == data.y); ASSERT((long long)0x100000001 == data.z); + ASSERT(+1234567890 == data.dec); + ASSERT(-1234567890 == data.neg); + ASSERT(0xABCDEF == data.hex); + ASSERT(012345670 == data.oct); ASSERT(1 == data.arg_discard); ASSERT(1 == data.arg_keep); ASSERT(1 == data.opt_discard);