error (0, 0, "Iteration %zd - different strings, %s (%zd, %zd, %zd)", n, impl->name, align1, align2, len);
printf ("\ Iteration %zd - different strings, %s (%zd, %zd, %zd)\n", n, impl->name, align1, align2, len);
do_random_tests (void){  size_t i, j, n, align1, align2, len, dlen;  unsigned char *p1 = buf1 + page_size - 512;  unsigned char *p2 = buf2 + page_size - 512;  unsigned char *res;  for (n = 0; n < ITERATIONS; n++)    {      align1 = random () & 31;      if (random () & 1)	align2 = random () & 31;      else	align2 = align1 + (random () & 24);      len = random () & 511;      j = align1;      if (align2 > j)	j = align2;      if (len + j >= 511)	len = 510 - j - (random () & 7);      j = len + align1 + 64;      if (j > 512)	j = 512;      for (i = 0; i < j; i++)	{	  if (i == len + align1)	    p1[i] = 0;	  else	    {	      p1[i] = random () & 255;	      if (i >= align1 && i < len + align1 && !p1[i])		p1[i] = (random () & 127) + 3;	    }	}      switch (random () & 7)	{	case 0:	  dlen = len - (random () & 31);	  if (dlen > len)	    dlen = len;	  break;	case 1:	  dlen = (size_t) -1;	  break;	case 2:	  dlen = len + 1 + (random () & 65535);	  break;	case 3:	  dlen = len + 1 + (random () & 255);	  break;	case 4:	  dlen = len + 1 + (random () & 31);	  break;	case 5:	  dlen = len + 1 + (random () & 7);	  break;	case 6:	  dlen = len + 1 + (random () & 3);	  break;	default:	  dlen = len + 1;	  break;	}      FOR_EACH_IMPL (impl, 1)	{	  if (dlen <= len)	    {	      if (impl->test != 1)		{		  chk_fail_ok = 1;		  if (setjmp (chk_fail_buf) == 0)		    {		      res = CALL (impl, p2 + align2, p1 + align1, dlen);		      error (0, 0, "Iteration %zd - did not __chk_fail", n);		      chk_fail_ok = 0;		      ret = 1;		    }		}	      continue;	    }	  memset (p2 - 64, '\1', 512 + 64);	  res = CALL (impl, p2 + align2, p1 + align1, dlen);	  if (res != STRCPY_RESULT (p2 + align2, len))	    {	      error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd) %p != %p",		     n, impl->name, align1, align2, len, res,		     STRCPY_RESULT (p2 + align2, len));	      ret = 1;	    }	  for (j = 0; j < align2 + 64; ++j)	    {	      if (p2[j - 64] != '\1')		{		  error (0, 0, "Iteration %zd - garbage before, %s (%zd, %zd, %zd)",			 n, impl->name, align1, align2, len);		  ret = 1;		  break;		}	    }	  for (j = align2 + len + 1; j < 512; ++j)	    {	      if (p2[j] != '\1')		{		  error (0, 0, "Iteration %zd - garbage after, %s (%zd, %zd, %zd)",			 n, impl->name, align1, align2, len);		  ret = 1;		  break;		}	    }	  if (memcmp (p1 + align1, p2 + align2, len + 1))	    {	      error (0, 0, "Iteration %zd - different strings, %s (%zd, %zd, %zd)",		     n, impl->name, align1, align2, len);	      ret = 1;	    }	}    }}