fdwalk should return 0 on an empty directory
[kopensolaris-gnu/glibc.git] / libio / bug-rewind2.c
1 #include <stdio.h>
2 #include <wchar.h>
3
4
5 static int fd;
6
7 static void prepare (void);
8 #define PREPARE(argc, argv) prepare ()
9
10
11 #define TEST_FUNCTION do_test ()
12 static int do_test (void);
13 #include "../test-skeleton.c"
14
15
16 static void
17 prepare (void)
18 {
19   fd = create_temp_file ("wrewind2.", NULL);
20   if (fd == -1)
21     exit (3);
22 }
23
24
25 static int
26 do_test (void)
27 {
28   wchar_t dummy[10];
29   int ret = 0;
30   FILE *fp;
31   int result = 0;
32
33   fp = fdopen (fd, "w+");
34   if (fp == NULL)
35     {
36       puts ("fopen(""testfile"", ""w+"") returned NULL.");
37       return 1;
38     }
39   else
40     {
41       fwprintf (fp, L"abcd");
42       printf ("current pos = %ld\n", ftell (fp));
43       if (ftell (fp) != 4)
44         result = 1;
45
46       rewind (fp);
47       ret = fwscanf (fp, L"%c", dummy);
48
49       printf ("current pos = %ld\n", ftell (fp));
50       if (ftell (fp) != 1)
51         result = 1;
52
53       rewind (fp);
54       printf ("current pos = %ld\n", ftell (fp));
55       if (ftell (fp) != 0)
56         result = 1;
57
58       fclose (fp);
59     }
60
61   return result;
62 }