diff options
author | DJ Delorie <dj@redhat.com> | 2000-05-17 17:21:36 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2000-05-17 17:21:36 +0000 |
commit | d3d8c2db17912229eb96349f3cadd442f27f6362 (patch) | |
tree | 4dff135610eaf3924f416cfe7fad3f6444e387c5 /winsup/cygwin/testsuite/winsup.api/iospeed.c | |
parent | 6201d15e3c588fe8b8db8381c329d09745dba908 (diff) | |
download | cygnal-d3d8c2db17912229eb96349f3cadd442f27f6362.tar.gz cygnal-d3d8c2db17912229eb96349f3cadd442f27f6362.tar.bz2 cygnal-d3d8c2db17912229eb96349f3cadd442f27f6362.zip |
* testsuite/winsup.api/crlf.c: New
* testsuite/winsup.api/iospeed.c: New
Diffstat (limited to 'winsup/cygwin/testsuite/winsup.api/iospeed.c')
-rw-r--r-- | winsup/cygwin/testsuite/winsup.api/iospeed.c | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/winsup/cygwin/testsuite/winsup.api/iospeed.c b/winsup/cygwin/testsuite/winsup.api/iospeed.c new file mode 100644 index 000000000..d286f90bd --- /dev/null +++ b/winsup/cygwin/testsuite/winsup.api/iospeed.c @@ -0,0 +1,115 @@ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <stdarg.h> +#include <fcntl.h> +#include <unistd.h> +#include <windows.h> + +int verbose = 0; + +void +v(char *fmt, ...) +{ + va_list ap; + if (!verbose) return; + va_start(ap, fmt); + vfprintf(stdout, fmt, ap); + va_end(ap); +} + +#define TSIZE (1024 * 1024 * 16) + +unsigned long start_tic; + +void +start(FILE *f) +{ + fseek(f, 0, SEEK_SET); + start_tic = GetTickCount(); +} + +void +end() +{ + unsigned long end_tic = GetTickCount(); + printf("%6d", end_tic - start_tic); +} + +void +test(int linesz, int cr) +{ + FILE *f = fopen("iospeed.dat", "wb"); + char buf[65536]; + int i, fd; + + memset(buf, 'x', linesz); + buf[linesz-1] = '\n'; + if (cr) + buf[linesz-2] = '\r'; + for (i=0; i<TSIZE; i += linesz) + fwrite(buf, 1, linesz, f); + fclose(f); + + f = fopen("iospeed.dat", "rt"); + fd = fileno(f); + + printf("%6d%6d", linesz, cr); + for (i=0; i<TSIZE; i+= 65536) + read(fd, buf, 65536); + + start(f); + while (getc(f) != EOF); + end(); + + start(f); + while (fread(buf, 1, 256, f) > 0); + end(); + + start(f); + while (fgets(buf, 64436, f)); + end(); + + f = fopen("iospeed.dat", "rb"); + fd = fileno(f); + + for (i=0; i<TSIZE; i+= 65536) + read(fd, buf, 65536); + + start(f); + while (getc(f) != EOF); + end(); + + start(f); + while (fread(buf, 1, 256, f) > 0); + end(); + + start(f); + while (fgets(buf, 64436, f)); + end(); + + printf("\n"); +} + +int +main(int argc, char **argv) +{ + if (argc > 1 && strcmp(argv[1],"-v") == 0) + verbose = 1; + + setbuf(stdout, 0); + + printf(" ----- text ----- ---- binary ----\n"); + printf("linesz cr getc fread fgets getc fread fgets\n"); + + test(4, 0); + test(64, 0); + test(4096, 0); + test(4, 1); + test(64, 1); + test(4096, 1); + + remove ("iospeed.dat"); + + return 0; +} |