tst-ext2.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <stdio.h>
  2. #include <stdio_ext.h>
  3. static char *fname;
  4. #define PREPARE(argc, argv) \
  5. do { \
  6. int fd = create_temp_file ("tst-ext2", &fname); \
  7. if (fd == -1) \
  8. { \
  9. puts ("cannot create temporary file"); \
  10. exit (1); \
  11. } \
  12. close (fd); \
  13. } while (0)
  14. static int
  15. do_test (void)
  16. {
  17. int res = 0;
  18. FILE *fp;
  19. fp = fopen (fname, "w");
  20. printf ("Initial state for write-only stream: %d %d\n",
  21. __freading (fp) != 0, __fwriting (fp) != 0);
  22. res |= ((__freading (fp) != 0) != 0
  23. || (__fwriting (fp) != 0) != 1);
  24. fclose (fp);
  25. fp = fopen (fname, "r");
  26. printf ("Initial state for read-only stream: %d %d\n",
  27. __freading (fp) != 0, __fwriting (fp) != 0);
  28. res |= ((__freading (fp) != 0) != 1
  29. || (__fwriting (fp) != 0) != 0);
  30. fclose (fp);
  31. fp = fopen (fname, "r+");
  32. printf ("Initial state for read-write stream: %d %d\n",
  33. __freading (fp) != 0, __fwriting (fp) != 0);
  34. res |= ((__freading (fp) != 0) != 0
  35. || (__fwriting (fp) != 0) != 0);
  36. fclose (fp);
  37. fp = fopen (fname, "w+");
  38. printf ("Initial state for read-write stream: %d %d\n",
  39. __freading (fp) != 0, __fwriting (fp) != 0);
  40. res |= ((__freading (fp) != 0) != 0
  41. || (__fwriting (fp) != 0) != 0);
  42. fclose (fp);
  43. return res;
  44. }
  45. #define TEST_FUNCTION do_test ()
  46. #include "../test-skeleton.c"