1 // RUN: %clangxx -g %s -o %t && %run %t
7 int main(int argc, char **argv) {
8 FILE *fp = fopen(argv[0], "r");
11 // file should be good upon opening
12 assert(!feof(fp) && !ferror(fp));
16 while (fread(buf, 1, sizeof buf, fp) != 0) {}
21 assert(!feof(fp) && !ferror(fp));
23 // get file descriptor
27 // break the file by closing underlying descriptor
28 assert(close(fd) != -1);
30 // verify that an error is signalled
31 assert(fread(buf, 1, sizeof buf, fp) == 0);
36 assert(!feof(fp) && !ferror(fp));
38 // fclose() will return EBADF because of closed fd
39 assert(fclose(fp) == -1);