From 653ffbcd4d8aaf97cacbd4d4455ca319a157f34e Mon Sep 17 00:00:00 2001 From: Yann Sionneau Date: Mon, 19 Oct 2020 08:13:00 +0200 Subject: misc: add test for hasmntopt() option matching Signed-off-by: Yann Sionneau --- test/misc/tst-hasmntopt.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/misc/tst-hasmntopt.c (limited to 'test/misc') diff --git a/test/misc/tst-hasmntopt.c b/test/misc/tst-hasmntopt.c new file mode 100644 index 0000000..17655bd --- /dev/null +++ b/test/misc/tst-hasmntopt.c @@ -0,0 +1,47 @@ +/* Copyright (C) 2020 by Yann Sionneau */ + +#include +#include +#include +#include + +static int +do_test (void) +{ + char *res; + struct mntent m; + + /* check that "ro" does not match "erROr" */ + m.mnt_opts = "error"; + res = hasmntopt (&m, MNTOPT_RO); + if (res != NULL) { + puts ("error: hasmntopt() picked up non existing option"); + exit (1); + } + + /* check that "ro" does not match "remount-ro" */ + m.mnt_opts = "rw,relatime,errors=remount-ro"; + res = hasmntopt (&m, MNTOPT_RO); + if (res != NULL) { + puts ("error: hasmntopt() picked up non existing option"); + exit (1); + } + + /* check that "ro" does match "ro" */ + m.mnt_opts = "noatime,ro"; + res = hasmntopt (&m, MNTOPT_RO); + if (res == NULL) { + puts ("error: hasmntopt() did not pick up an existing option"); + exit (1); + } + + if (strncmp(res, "ro", 2) != 0) { + puts ("error: hasmntopt() did not return a pointer to corresponding option"); + exit (1); + } + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" -- cgit v1.2.3