#include #include #include #include #include #include #include #define LOOPMAX 1500 #define ERRMAX 10 #define STRMAX 512 static void die(const char *str) { perror(str); exit(1); } char * gentext(void) { int len = 1+lrand48()%STRMAX; char *buf = malloc(len); char *p = buf; int i; if (!buf) die("malloc failure"); for (i=0; i> != <<%s>>\n", text, output); if (++errcnt > ERRMAX) exit(1); } free(output); free(text); } } static void init_random(void) { long seed; int f = open("/dev/urandom", O_RDONLY); if (f == -1) die("init_random"); read(f, &seed, sizeof seed); close(f); srand48(seed); } int main(int argc, char **argv) { RECODE_OUTER outer = recode_new_outer(true); RECODE_REQUEST request = recode_new_request(outer); setlocale(LC_ALL,""); recode_scan_request(request, "UTF-8..ISO-8859-1"); init_random(); test_harness(request); recode_delete_request(request); recode_delete_outer(outer); return 0; }