mirror of git://sourceware.org/git/glibc.git
				
				
				
			
		
			
				
	
	
		
			83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
| /* 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"
 |