mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	This patch modifies several test cases to use test-skeleton.c. It was generated by a bash script written for this purpose and thus excludes several other tests which I deemed worth a visual inspection before making the change. I intend to follow up with individual patches to the tests skipped by the script. The script itself resides at http://git.io/WODAmg and should reproduce this very patch when run against master. ChangeLog: 2014-10-30 Arjun Shankar <arjun.is@lostca.se> * catgets/test-gencat.c: Use test-skeleton.c. * catgets/tst-catgets.c: Likewise. * csu/tst-empty.c: Likewise. * elf/tst-audit2.c: Likewise. * elf/tst-global1.c: Likewise. * elf/tst-pathopt.c: Likewise. * elf/tst-piemod1.c: Likewise. * elf/tst-tls10.c: Likewise. * elf/tst-tls11.c: Likewise. * elf/tst-tls12.c: Likewise. * gnulib/tst-gcc.c: Likewise. * iconvdata/tst-e2big.c: Likewise. * iconvdata/tst-loading.c: Likewise. * iconv/tst-iconv1.c: Likewise. * iconv/tst-iconv2.c: Likewise. * inet/test-inet6_opt.c: Likewise. * inet/tst-gethnm.c: Likewise. * inet/tst-network.c: Likewise. * inet/tst-ntoa.c: Likewise. * intl/tst-codeset.c: Likewise. * intl/tst-gettext2.c: Likewise. * intl/tst-gettext3.c: Likewise. * intl/tst-ngettext.c: Likewise. * intl/tst-translit.c: Likewise. * io/test-stat.c: Likewise. * libio/test-fmemopen.c: Likewise. * libio/tst-freopen.c: Likewise. * libio/tst-sscanf.c: Likewise. * libio/tst-ungetwc1.c: Likewise. * libio/tst-ungetwc2.c: Likewise. * libio/tst-widetext.c: Likewise. * localedata/tst-ctype.c: Likewise. * localedata/tst-digits.c: Likewise. * localedata/tst-leaks.c: Likewise. * localedata/tst-mbswcs1.c: Likewise. * localedata/tst-mbswcs2.c: Likewise. * localedata/tst-mbswcs3.c: Likewise. * localedata/tst-mbswcs4.c: Likewise. * localedata/tst-mbswcs5.c: Likewise. * localedata/tst-setlocale.c: Likewise. * localedata/tst-trans.c: Likewise. * localedata/tst-wctype.c: Likewise. * localedata/tst-xlocale1.c: Likewise. * login/tst-grantpt.c: Likewise. * malloc/tst-calloc.c: Likewise. * malloc/tst-malloc.c: Likewise. * malloc/tst-mallocstate.c: Likewise. * malloc/tst-mcheck.c: Likewise. * malloc/tst-mtrace.c: Likewise. * malloc/tst-obstack.c: Likewise. * math/atest-exp2.c: Likewise. * math/atest-exp.c: Likewise. * math/atest-sincos.c: Likewise. * math/test-matherr.c: Likewise. * math/test-misc.c: Likewise. * math/test-powl.c: Likewise. * math/tst-definitions.c: Likewise. * misc/tst-dirname.c: Likewise. * misc/tst-efgcvt.c: Likewise. * misc/tst-fdset.c: Likewise. * misc/tst-hsearch.c: Likewise. * misc/tst-mntent2.c: Likewise. * nptl/tst-sem7.c: Likewise. * nptl/tst-sem8.c: Likewise. * nptl/tst-sem9.c: Likewise. * nss/test-netdb.c: Likewise. * posix/tst-fnmatch.c: Likewise. * posix/tst-getlogin.c: Likewise. * posix/tst-gnuglob.c: Likewise. * posix/tst-mmap.c: Likewise. * pwd/tst-getpw.c: Likewise. * resolv/tst-inet_ntop.c: Likewise. * rt/tst-timer.c: Likewise. * stdio-common/test-fseek.c: Likewise. * stdio-common/test-popen.c: Likewise. * stdio-common/test-vfprintf.c: Likewise. * stdio-common/tst-cookie.c: Likewise. * stdio-common/tst-fileno.c: Likewise. * stdio-common/tst-gets.c: Likewise. * stdio-common/tst-obprintf.c: Likewise. * stdio-common/tst-perror.c: Likewise. * stdio-common/tst-sprintf2.c: Likewise. * stdio-common/tst-sprintf3.c: Likewise. * stdio-common/tst-sprintf.c: Likewise. * stdio-common/tst-swprintf.c: Likewise. * stdio-common/tst-tmpnam.c: Likewise. * stdio-common/tst-unbputc.c: Likewise. * stdio-common/tst-wc-printf.c: Likewise. * stdlib/tst-environ.c: Likewise. * stdlib/tst-fmtmsg.c: Likewise. * stdlib/tst-limits.c: Likewise. * stdlib/tst-rand48-2.c: Likewise. * stdlib/tst-rand48.c: Likewise. * stdlib/tst-random2.c: Likewise. * stdlib/tst-random.c: Likewise. * stdlib/tst-strtol.c: Likewise. * stdlib/tst-strtoll.c: Likewise. * stdlib/tst-tls-atexit.c: Likewise. * stdlib/tst-xpg-basename.c: Likewise. * string/test-ffs.c: Likewise. * string/tst-bswap.c: Likewise. * string/tst-inlcall.c: Likewise. * string/tst-strtok.c: Likewise. * string/tst-strxfrm.c: Likewise. * sysdeps/x86_64/tst-audit10.c: Likewise. * sysdeps/x86_64/tst-audit3.c: Likewise. * sysdeps/x86_64/tst-audit4.c: Likewise. * sysdeps/x86_64/tst-audit5.c: Likewise. * time/tst-ftime_l.c: Likewise. * time/tst-getdate.c: Likewise. * time/tst-mktime3.c: Likewise. * time/tst-mktime.c: Likewise. * time/tst-posixtz.c: Likewise. * time/tst-strptime2.c: Likewise. * time/tst-strptime3.c: Likewise. * wcsmbs/tst-btowc.c: Likewise. * wcsmbs/tst-mbrtowc.c: Likewise. * wcsmbs/tst-mbsrtowcs.c: Likewise. * wcsmbs/tst-wchar-h.c: Likewise. * wcsmbs/tst-wcpncpy.c: Likewise. * wcsmbs/tst-wcrtomb.c: Likewise. * wcsmbs/tst-wcsnlen.c: Likewise. * wcsmbs/tst-wcstof.c: Likewise.
		
			
				
	
	
		
			394 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			394 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <float.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| 
 | |
| #ifndef DECIMAL_DIG
 | |
| # define DECIMAL_DIG	21
 | |
| #endif
 | |
| 
 | |
| 
 | |
| static int
 | |
| do_test (void)
 | |
| {
 | |
|   unsigned short int xs[3] = { 0x0001, 0x0012, 0x0123 };
 | |
|   unsigned short int lxs[7];
 | |
|   unsigned short int *xsp;
 | |
|   int result = 0;
 | |
|   long int l;
 | |
|   double d;
 | |
|   double e;
 | |
| 
 | |
|   /* Test srand48.  */
 | |
|   srand48 (0x98765432);
 | |
|   /* Get the values of the internal Xi array.  */
 | |
|   xsp = seed48 (xs);
 | |
|   if (xsp[0] != 0x330e || xsp[1] != 0x5432 || xsp[2] != 0x9876)
 | |
|     {
 | |
|       puts ("srand48(0x98765432) didn't set correct value");
 | |
|       printf ("  expected: { %04hx, %04hx, %04hx }\n", 0x330e, 0x5432, 0x9876);
 | |
|       printf ("  seen:     { %04hx, %04hx, %04hx }\n", xsp[0], xsp[1], xsp[2]);
 | |
|       result = 1;
 | |
|     }
 | |
|   /* Put the values back.  */
 | |
|   memcpy (xs, xsp, sizeof (xs));
 | |
|   (void) seed48 (xs);
 | |
| 
 | |
|   /* See whether the correct values are installed.  */
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x2fed1413l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x2fed1413l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != -0x5d73effdl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, -0x5d73effdl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x585fcfb7l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x585fcfb7l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != -0x61770b8cl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, -0x61770b8cl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test seed48.  The previous call should have install the values in
 | |
|      the initialization of `xs' above.  */
 | |
|   xs[0] = 0x1234;
 | |
|   xs[1] = 0x5678;
 | |
|   xs[2] = 0x9012;
 | |
|   xsp = seed48 (xs);
 | |
|   if (xsp[0] != 0x62f2 || xsp[1] != 0xf474 || xsp[2] != 0x9e88)
 | |
|     {
 | |
|       puts ("seed48() did not install the values correctly");
 | |
|       printf ("  expected: { %04hx, %04hx, %04hx }\n", 0x62f2, 0xf474, 0x9e88);
 | |
|       printf ("  seen:     { %04hx, %04hx, %04hx }\n", xsp[0], xsp[1], xsp[2]);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test lrand48 and mrand48.  We continue from the seed established
 | |
|      above.  */
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x017e48b5l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x017e48b5l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != -0x1485e05dl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, -0x1485e05dl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x6b6a3f95l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x6b6a3f95l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != 0x175c0d6fl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x175c0d6fl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test lcong48.  */
 | |
|   lxs[0] = 0x4567;
 | |
|   lxs[1] = 0x6789;
 | |
|   lxs[2] = 0x8901;
 | |
|   lxs[3] = 0x0123;
 | |
|   lxs[4] = 0x2345;
 | |
|   lxs[5] = 0x1111;
 | |
|   lxs[6] = 0x2222;
 | |
|   lcong48 (lxs);
 | |
| 
 | |
|   /* See whether the correct values are installed.  */
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x6df63d66l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x6df63d66l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != 0x2f92c8e1l)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x2f92c8e1l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x3b4869ffl)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x3b4869ffl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != 0x5cd4cc3el)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x5cd4cc3el, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Check whether srand48() restores the A and C parameters.  */
 | |
|   srand48 (0x98765432);
 | |
| 
 | |
|   /* See whether the correct values are installed.  */
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x2fed1413l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x2fed1413l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != -0x5d73effdl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, -0x5d73effdl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x585fcfb7l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x585fcfb7l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != -0x61770b8cl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, -0x61770b8cl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* And again to see whether seed48() does the same.  */
 | |
|   lcong48 (lxs);
 | |
| 
 | |
|   /* See whether lxs wasn't modified.  */
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x6df63d66l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x6df63d66l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test seed48.  The previous call should have install the values in
 | |
|      the initialization of `xs' above.  */
 | |
|   xs[0] = 0x1234;
 | |
|   xs[1] = 0x5678;
 | |
|   xs[2] = 0x9012;
 | |
|   xsp = seed48 (xs);
 | |
|   if (xsp[0] != 0x0637 || xsp[1] != 0x7acd || xsp[2] != 0xdbec)
 | |
|     {
 | |
|       puts ("seed48() did not install the values correctly");
 | |
|       printf ("  expected: { %04hx, %04hx, %04hx }\n", 0x0637, 0x7acd, 0xdbec);
 | |
|       printf ("  seen:     { %04hx, %04hx, %04hx }\n", xsp[0], xsp[1], xsp[2]);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test lrand48 and mrand48.  We continue from the seed established
 | |
|      above.  */
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x017e48b5l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x017e48b5l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != -0x1485e05dl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, -0x1485e05dl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = lrand48 ();
 | |
|   if (l != 0x6b6a3f95l)
 | |
|     {
 | |
|       printf ("lrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x6b6a3f95l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = mrand48 ();
 | |
|   if (l != 0x175c0d6fl)
 | |
|     {
 | |
|       printf ("mrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x175c0d6fl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test drand48.  */
 | |
|   d = drand48 ();
 | |
|   if (d != 0.0908832261858485424)
 | |
|     {
 | |
|       printf ("drand48() in line %d failed: expected %.*g, seen %.*g\n",
 | |
| 	      __LINE__ - 4, DECIMAL_DIG, 0.0908832261858485424,
 | |
| 	      DECIMAL_DIG, d);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   d = drand48 ();
 | |
|   if (d != 0.943149381730059133133)
 | |
|     {
 | |
|       printf ("drand48() in line %d failed: expected %.*g, seen %.*g\n",
 | |
| 	      __LINE__ - 4, DECIMAL_DIG, 0.943149381730059133133,
 | |
| 	      DECIMAL_DIG, d);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Now the functions which get the Xis passed.  */
 | |
|   xs[0] = 0x3849;
 | |
|   xs[1] = 0x5061;
 | |
|   xs[2] = 0x7283;
 | |
| 
 | |
|   l = nrand48 (xs);
 | |
|   if (l != 0x1efe61a1l)
 | |
|     {
 | |
|       printf ("nrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x1efe61a1l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = jrand48 (xs);
 | |
|   if (l != -0xa973860l)
 | |
|     {
 | |
|       printf ("jrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, -0xa973860l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = nrand48 (xs);
 | |
|   if (l != 0x2a5e57fel)
 | |
|     {
 | |
|       printf ("nrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x2a5e57fel, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = jrand48 (xs);
 | |
|   if (l != 0x71a779a8l)
 | |
|     {
 | |
|       printf ("jrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x71a779a8l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test whether the global A and C are used.  */
 | |
|   lcong48 (lxs);
 | |
| 
 | |
|   l = nrand48 (xs);
 | |
|   if (l != 0x32beee9fl)
 | |
|     {
 | |
|       printf ("nrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x32beee9fl, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = jrand48 (xs);
 | |
|   if (l != 0x7bddf3bal)
 | |
|     {
 | |
|       printf ("jrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x7bddf3bal, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = nrand48 (xs);
 | |
|   if (l != 0x85bdf28l)
 | |
|     {
 | |
|       printf ("nrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x85bdf28l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   l = jrand48 (xs);
 | |
|   if (l != 0x7b433e47l)
 | |
|     {
 | |
|       printf ("jrand48() in line %d failed: expected %lx, seen %lx\n",
 | |
| 	      __LINE__ - 4, 0x7b433e47l, l);
 | |
|       result = 1;
 | |
|     }
 | |
| 
 | |
|   /* Test erand48.  Also compare with the drand48 results.  */
 | |
|   (void) seed48 (xs);
 | |
| 
 | |
|   d = drand48 ();
 | |
|   e = erand48 (xs);
 | |
|   if (d != e)
 | |
|     {
 | |
|       printf ("\
 | |
| drand48() and erand48 in lines %d and %d produce different results\n",
 | |
| 	      __LINE__ - 6, __LINE__ - 5);
 | |
|       printf ("  drand48() = %g, erand48() = %g\n", d, e);
 | |
|       result = 1;
 | |
|     }
 | |
|   else if (e != 0.640650904452755298735)
 | |
|     {
 | |
|       printf ("erand48() in line %d failed: expected %.*g, seen %.*g\n",
 | |
| 	      __LINE__ - 4, DECIMAL_DIG, 0.640650904452755298735,
 | |
| 	      DECIMAL_DIG, e);
 | |
|       result = 1;
 | |
| 
 | |
|     }
 | |
| 
 | |
|   d = drand48 ();
 | |
|   e = erand48 (xs);
 | |
|   if (d != e)
 | |
|     {
 | |
|       printf ("\
 | |
| drand48() and erand48 in lines %d and %d produce different results\n",
 | |
| 	      __LINE__ - 6, __LINE__ - 5);
 | |
|       printf ("  drand48() = %g, erand48() = %g\n", d, e);
 | |
|       result = 1;
 | |
|     }
 | |
|   else if (e != 0.115372323508150742555)
 | |
|     {
 | |
|       printf ("erand48() in line %d failed: expected %.*g, seen %.*g\n",
 | |
| 	      __LINE__ - 4, DECIMAL_DIG, 0.0115372323508150742555,
 | |
| 	      DECIMAL_DIG, e);
 | |
|       result = 1;
 | |
| 
 | |
|     }
 | |
| 
 | |
|   return result;
 | |
| }
 | |
| 
 | |
| #define TEST_FUNCTION do_test ()
 | |
| #include "../test-skeleton.c"
 |