5 const char test_name[] = "grow-two-files";
8 static char buf_a[FILE_SIZE];
9 static char buf_b[FILE_SIZE];
12 write_some_bytes (const char *filename, int fd, const char *buf, size_t *ofs)
16 size_t block_size = random_ulong () % (FILE_SIZE / 8) + 1;
17 if (block_size > FILE_SIZE - *ofs)
18 block_size = FILE_SIZE - *ofs;
20 if (write (fd, buf + *ofs, block_size) <= 0)
21 fail ("write %zu bytes at offset %zu in \"%s\"",
22 block_size, *ofs, filename);
34 random_bytes (buf_a, sizeof buf_a);
35 random_bytes (buf_b, sizeof buf_b);
37 check (create ("a", 0), "create \"a\"");
38 check (create ("b", 0), "create \"b\"");
40 check ((fd_a = open ("a")) > 1, "open \"a\"");
41 check ((fd_b = open ("b")) > 1, "open \"b\"");
43 msg ("write \"a\" and \"b\" alternately");
44 while (ofs_a < FILE_SIZE || ofs_b < FILE_SIZE)
46 write_some_bytes ("a", fd_a, buf_a, &ofs_a);
47 write_some_bytes ("b", fd_b, buf_b, &ofs_b);
56 check_file ("a", buf_a, FILE_SIZE);
57 check_file ("b", buf_b, FILE_SIZE);