diff options
Diffstat (limited to 'REORG.TODO/misc/tst-mntent.c')
-rw-r--r-- | REORG.TODO/misc/tst-mntent.c | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/REORG.TODO/misc/tst-mntent.c b/REORG.TODO/misc/tst-mntent.c new file mode 100644 index 0000000000..b6ad8afcc6 --- /dev/null +++ b/REORG.TODO/misc/tst-mntent.c @@ -0,0 +1,82 @@ +/* Test case by Horst von Brand <vonbrand@sleipnir.valparaiso.cl> + and Ulrich Drepper <drepper@cygnus.com>. */ +#include <mntent.h> +#include <stdio.h> +#include <string.h> + + +static int +do_test (void) +{ + int result = 0; + struct mntent mef; + struct mntent *mnt = &mef; + FILE *fp; + + mef.mnt_fsname = strdupa ("/dev/hda1"); + mef.mnt_dir = strdupa ("/some dir"); + mef.mnt_type = strdupa ("ext2"); + mef.mnt_opts = strdupa ("defaults"); + mef.mnt_freq = 1; + mef.mnt_passno = 2; + + if (hasmntopt (mnt, "defaults")) + printf ("Found!\n"); + else + { + printf ("Didn't find it\n"); + result = 1; + } + + fp = tmpfile (); + if (fp == NULL) + { + printf ("Cannot open temporary file: %m\n"); + result = 1; + } + else + { + char buf[1024]; + + /* Write the name entry. */ + addmntent (fp, &mef); + + /* Prepare for reading. */ + rewind (fp); + + /* First, read it raw. */ + if (fgets (buf, sizeof (buf), fp) == NULL) + { + printf ("Cannot read temporary file: %m"); + result = 1; + } + else + if (strcmp (buf, "/dev/hda1 /some\\040dir ext2 defaults 1 2\n") != 0) + { + puts ("Raw file data not correct"); + result = 1; + } + + /* Prepare for reading, part II. */ + rewind (fp); + + /* Now read it cooked. */ + mnt = getmntent (fp); + + if (strcmp (mnt->mnt_fsname, "/dev/hda1") != 0 + || strcmp (mnt->mnt_dir, "/some dir") != 0 + || strcmp (mnt->mnt_type, "ext2") != 0 + || strcmp (mnt->mnt_opts, "defaults") != 0 + || mnt->mnt_freq != 1 + || mnt->mnt_passno != 2) + { + puts ("Error while reading written entry back in"); + result = 1; + } + } + + return result; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |