xref: /openbsd-src/regress/lib/libfuse/fuse-opt-match.c (revision f3de9d7dd81d004e964f4bd559c4dd6d7cb610e1)
1*f3de9d7dShelg /* $OpenBSD: fuse-opt-match.c,v 1.5 2018/07/20 12:05:08 helg Exp $ */
24cd66a05Ssyl /*
360376174Shelg  * Copyright (c) 2017 Helg Bredow <xx404@msn.com>
44cd66a05Ssyl  *
54cd66a05Ssyl  * Permission to use, copy, modify, and distribute this software for any
64cd66a05Ssyl  * purpose with or without fee is hereby granted, provided that the above
74cd66a05Ssyl  * copyright notice and this permission notice appear in all copies.
84cd66a05Ssyl  *
94cd66a05Ssyl  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
104cd66a05Ssyl  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
114cd66a05Ssyl  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
124cd66a05Ssyl  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
134cd66a05Ssyl  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
144cd66a05Ssyl  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
154cd66a05Ssyl  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
164cd66a05Ssyl  */
174cd66a05Ssyl 
1860376174Shelg #include <assert.h>
1960376174Shelg #include <stddef.h>
204cd66a05Ssyl #include <fuse_opt.h>
214cd66a05Ssyl 
2260376174Shelg static const struct fuse_opt emptyopts[] = {
234cd66a05Ssyl 	FUSE_OPT_END
244cd66a05Ssyl };
254cd66a05Ssyl 
2660376174Shelg static const struct fuse_opt opts[] = {
2760376174Shelg 	FUSE_OPT_KEY("-p ",		FUSE_OPT_KEY_DISCARD),
2860376174Shelg 	FUSE_OPT_KEY("-C",		FUSE_OPT_KEY_DISCARD),
2960376174Shelg 	FUSE_OPT_KEY("-V",		FUSE_OPT_KEY_DISCARD),
3060376174Shelg 	FUSE_OPT_KEY("--version",	FUSE_OPT_KEY_DISCARD),
3160376174Shelg 	FUSE_OPT_KEY("-h",		FUSE_OPT_KEY_DISCARD),
3260376174Shelg 	FUSE_OPT_KEY("const=false",	FUSE_OPT_KEY_DISCARD),
3360376174Shelg 	FUSE_OPT_KEY("cache=no",	FUSE_OPT_KEY_DISCARD),
3460376174Shelg 	FUSE_OPT_KEY("cache=yes",	FUSE_OPT_KEY_DISCARD),
3560376174Shelg 	FUSE_OPT_KEY("debug",		FUSE_OPT_KEY_DISCARD),
3660376174Shelg 	FUSE_OPT_KEY("ro",		FUSE_OPT_KEY_DISCARD),
3760376174Shelg 	FUSE_OPT_KEY("--foo=",		FUSE_OPT_KEY_DISCARD),
3860376174Shelg 	FUSE_OPT_KEY("bars=%s",		FUSE_OPT_KEY_DISCARD),
3960376174Shelg 	FUSE_OPT_KEY("--fool=%lu",	FUSE_OPT_KEY_DISCARD),
4060376174Shelg 	FUSE_OPT_KEY("-x ",		FUSE_OPT_KEY_DISCARD),
4160376174Shelg 	FUSE_OPT_KEY("-n %u",		FUSE_OPT_KEY_DISCARD),
4260376174Shelg 	FUSE_OPT_KEY("-P",		FUSE_OPT_KEY_DISCARD),
434cd66a05Ssyl 	FUSE_OPT_END
444cd66a05Ssyl };
454cd66a05Ssyl 
464cd66a05Ssyl int
main(void)4760376174Shelg main(void)
484cd66a05Ssyl {
4960376174Shelg 	assert(fuse_opt_match(emptyopts, "debug")	==	0);
5060376174Shelg 
5160376174Shelg 	assert(fuse_opt_match(opts, NULL)		==	0);
5260376174Shelg 	assert(fuse_opt_match(opts, "-p ")		==	1);
5360376174Shelg 	assert(fuse_opt_match(opts, "-C")		==	1);
5460376174Shelg 	assert(fuse_opt_match(opts, "-c")		==	0);
5560376174Shelg 	assert(fuse_opt_match(opts, "-V")		==	1);
5660376174Shelg 	assert(fuse_opt_match(opts, "--version")	==	1);
5760376174Shelg 	assert(fuse_opt_match(opts, "-h")		==	1);
5860376174Shelg 	assert(fuse_opt_match(opts, "const=false")	==	1);
5960376174Shelg 	assert(fuse_opt_match(opts, "const=falsefalse")	==	0);
6060376174Shelg 	assert(fuse_opt_match(opts, "cache=no")		==	1);
6160376174Shelg 	assert(fuse_opt_match(opts, "cache=yes")	==	1);
6260376174Shelg 	assert(fuse_opt_match(opts, "debug")		==	1);
6360376174Shelg 	assert(fuse_opt_match(opts, "ro")		==	1);
6460376174Shelg 	assert(fuse_opt_match(opts, "ro_fallback")	==	0);
6560376174Shelg 	assert(fuse_opt_match(opts, "--foo=bar")	==	1);
6660376174Shelg 	assert(fuse_opt_match(opts, "bars=foo")		==	1);
6760376174Shelg 	assert(fuse_opt_match(opts, "--fool=bool")	==	1);
6860376174Shelg 	assert(fuse_opt_match(opts, "--fool=1")		==	1);
6960376174Shelg 	assert(fuse_opt_match(opts, "-x bar")		==	1);
7060376174Shelg 	assert(fuse_opt_match(opts, "-xbar")		==	1);
7160376174Shelg 	assert(fuse_opt_match(opts, "-n 100")		==	1);
7260376174Shelg 	assert(fuse_opt_match(opts, "-n100")		==	1);
7360376174Shelg 	assert(fuse_opt_match(opts, "-P")		==	1);
7460376174Shelg 
754cd66a05Ssyl 	return (0);
764cd66a05Ssyl }
77