#ident "$Id$" #include "dbufio.h" #include #include #include #include #include #include enum { N = 5 }; enum { M = 10 }; static void test1 (size_t chars_per_file, size_t bytes_per_read) { int fds[N]; char fnames[N][100]; size_t n_read[N]; int still_live[N]; int n_live=N; for (int i=0; i=0); n_read[i]=0; still_live[i]=i; for (size_t j=0; j0) { int indirectnum = random()%n_live; int filenum = still_live[indirectnum]; char buf[bytes_per_read]; size_t n_read_here=0; int r = dbufio_fileset_read(bfs, filenum, buf, bytes_per_read, &n_read_here); //printf("read(%d) -> %d (%ld) (old n_read=%ld)\n", filenum, r, n_read_here, n_read[filenum]); if (r==0) { // did read something assert(n_read_here==bytes_per_read); n_read[filenum]+=n_read_here; //printf(" new n_read=%ld\n", n_read[filenum]); assert(n_read[filenum]<=chars_per_file); } else { assert(r==EOF); assert(n_read[filenum]==chars_per_file); still_live[indirectnum] = still_live[n_live-1]; n_live--; } } { int r = destroy_dbufio_fileset(bfs); assert(r==0); } for (int i=0; i