Skip to content
Snippets Groups Projects
Commit b5551379 authored by rtm's avatar rtm
Browse files

oops, O_CREATE doesn't truncate, so holes can't exist, thus no bug

parent 3d5f21ee
No related branches found
No related tags found
No related merge requests found
......@@ -138,76 +138,6 @@ writetest1(void)
printf(stdout, "big files ok\n");
}
void
writetest2(void)
{
int fd, fd1, n;
printf(stdout, "files with holes\n");
fd = open("hole", O_CREATE|O_RDWR);
if(fd < 0){
printf(stdout, "error: creat hole failed!\n");
exit();
}
buf[0] = 1;
if(write(fd, buf, 512) != 512) {
printf(stdout, "error: write hole file failed\n");
exit();
}
// now truncate, while fd is still open
fd1 = open("hole", O_CREATE | O_RDWR);
if(fd < 0){
printf(stdout, "error: 2nd creat hole failed!\n");
exit();
}
close(fd1);
// now write another block, should be 2nd in file
buf[0] = 2;
if(write(fd, buf, 512) != 512) {
printf(stdout, "error: 2nd write hole file failed\n");
exit();
}
close(fd);
fd = open("hole", O_RDONLY);
if(fd < 0){
printf(stdout, "error: open hole failed!\n");
exit();
}
n = read(fd, buf, 512);
if(n != 512){
printf(stdout, "error: 1st hole read failed\n");
exit();
}
if(buf[0] != 0){
printf(stdout, "error: 1st hole block didn't have zeros\n");
exit();
}
n = read(fd, buf, 512);
if(n != 512){
printf(stdout, "error: 2nd hole read failed\n");
exit();
}
if(buf[0] != 1){
printf(stdout, "error: 2nd hole block wrong content\n");
exit();
}
close(fd);
if(unlink("hole") < 0) {
printf(stdout, "unlink hole failed\n");
exit();
}
printf(stdout, "hole files ok\n");
}
void
createtest(void)
{
......@@ -1180,7 +1110,6 @@ main(int argc, char *argv[])
opentest();
writetest();
writetest1();
writetest2();
createtest();
mem();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment