From 7dfb40b93558321f8ec0e7d855500956be5e42a8 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Fri, 18 Jul 2008 09:27:56 +0000 Subject: [PATCH] * Add simpler modes to zzcat to better analyse what's going on. --- test/check-utils | 2 +- test/zzcat.c | 38 +++++++++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/test/check-utils b/test/check-utils index 0194fb3..079fd11 100755 --- a/test/check-utils +++ b/test/check-utils @@ -20,7 +20,7 @@ checkutils() else check "$ZZOPTS" "< $file" "zzuf" fi - for n in 1 2 3; do + for n in 0 10 11 12 20 21 22; do check "$ZZOPTS" "$ZZCAT $n $file" "zzcat $n" done if [ "$STATIC_CAT" = "" ]; then diff --git a/test/zzcat.c b/test/zzcat.c index eb052d7..00d8abe 100644 --- a/test/zzcat.c +++ b/test/zzcat.c @@ -75,7 +75,39 @@ int main(int argc, char *argv[]) /* Read shit here and there, using different methods */ switch(atoi(argv[1])) { - case 1: /* socket seeks and reads */ + case 0: /* only read() calls */ + fd = open(name, O_RDONLY); + if(fd < 0) + return EXIT_FAILURE; + for(i = 0; i < len; i++) + read(fd, data + i, 1); + close(fd); + break; + case 10: /* only fread() calls */ + stream = fopen(name, "r"); + if(!stream) + return EXIT_FAILURE; + for(i = 0; i < len; i++) + fread(data + i, 1, 1, stream); + fclose(stream); + break; + case 11: /* only getc() calls */ + stream = fopen(name, "r"); + if(!stream) + return EXIT_FAILURE; + for(i = 0; i < len; i++) + data[i] = getc(stream); + fclose(stream); + break; + case 12: /* only fgetc() calls */ + stream = fopen(name, "r"); + if(!stream) + return EXIT_FAILURE; + for(i = 0; i < len; i++) + data[i] = fgetc(stream); + fclose(stream); + break; + case 20: /* socket seeks and reads */ fd = open(name, O_RDONLY); if(fd < 0) return EXIT_FAILURE; @@ -92,7 +124,7 @@ int main(int argc, char *argv[]) } close(fd); break; - case 2: /* std streams seeks and reads */ + case 21: /* std streams seeks and reads */ stream = fopen(name, "r"); if(!stream) return EXIT_FAILURE; @@ -113,7 +145,7 @@ int main(int argc, char *argv[]) } fclose(stream); break; - case 3: /* mmap() */ + case 22: /* mmap() */ fd = open(name, O_RDONLY); if(fd < 0) return EXIT_FAILURE;