]>
Commit | Line | Data |
---|---|---|
28f540f4 RM |
1 | #include <stdio.h> |
2 | #include <string.h> | |
3 | ||
4 | int | |
11336c16 | 5 | main (int argc, char *argv[]) |
28f540f4 RM |
6 | { |
7 | FILE *f = tmpfile (); | |
8 | char obuf[99999], ibuf[sizeof obuf]; | |
9 | char *line; | |
10 | size_t linesz; | |
11 | ||
12 | if (! f) | |
13 | { | |
14 | perror ("tmpfile"); | |
15 | return 1; | |
16 | } | |
17 | ||
18 | if (fputs ("line\n", f) == EOF) | |
19 | { | |
20 | perror ("fputs"); | |
21 | return 1; | |
22 | } | |
23 | ||
24 | memset (obuf, 'z', sizeof obuf); | |
25 | memset (ibuf, 'y', sizeof ibuf); | |
11336c16 | 26 | |
28f540f4 RM |
27 | if (fwrite (obuf, sizeof obuf, 1, f) != 1) |
28 | { | |
29 | perror ("fwrite"); | |
30 | return 1; | |
31 | } | |
32 | ||
33 | rewind (f); | |
34 | ||
35 | line = NULL; | |
36 | linesz = 0; | |
37 | if (getline (&line, &linesz, f) != 5) | |
38 | { | |
39 | perror ("getline"); | |
40 | return 1; | |
41 | } | |
42 | if (strcmp (line, "line\n")) | |
43 | { | |
44 | puts ("Lines differ. Test FAILED!"); | |
45 | return 1; | |
46 | } | |
47 | ||
48 | if (fread (ibuf, sizeof ibuf, 1, f) != 1) | |
49 | { | |
50 | perror ("fread"); | |
51 | return 1; | |
52 | } | |
53 | ||
54 | if (memcmp (ibuf, obuf, sizeof ibuf)) | |
55 | { | |
56 | puts ("Buffers differ. Test FAILED!"); | |
57 | return 1; | |
58 | } | |
59 | ||
60 | asprintf (&line, "\ | |
61 | GDB is free software and you are welcome to distribute copies of it\n\ | |
62 | under certain conditions; type \"show copying\" to see the conditions.\n\ | |
63 | There is absolutely no warranty for GDB; type \"show warranty\" for details.\n\ | |
64 | "); | |
65 | ||
66 | puts ("Test succeeded."); | |
67 | return 0; | |
68 | } |