aboutsummaryrefslogtreecommitdiff
path: root/libio/bug-fseek.c
diff options
context:
space:
mode:
Diffstat (limited to 'libio/bug-fseek.c')
-rw-r--r--libio/bug-fseek.c123
1 files changed, 0 insertions, 123 deletions
diff --git a/libio/bug-fseek.c b/libio/bug-fseek.c
deleted file mode 100644
index 1b60580b53..0000000000
--- a/libio/bug-fseek.c
+++ /dev/null
@@ -1,123 +0,0 @@
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static char *fname;
-
-
-static void do_prepare (void);
-#define PREPARE(argc, argv) do_prepare ()
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
-
-
-static void
-do_prepare (void)
-{
- static const char pattern[] = "12345678901234567890";
- int fd = create_temp_file ("bug-fseek.", &fname);
- if (fd == -1)
- {
- printf ("cannot create temporary file: %m\n");
- exit (1);
- }
-
- if (write (fd, pattern, sizeof (pattern)) != sizeof (pattern))
- {
- perror ("short write");
- abort ();
- }
- close (fd);
-}
-
-
-
-static int
-do_test (void)
-{
- FILE *f;
- int result = 0;
- char buf[10];
-
-
- if ((f = fopen (fname, "r")) == (FILE *) NULL)
- {
- perror ("fopen(\"r\")");
- }
-
- fread (buf, 3, 1, f);
- errno = 0;
- if (fseek (f, -10, SEEK_CUR) == 0)
- {
- printf ("fseek() for r to before start of file worked!\n");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("\
-fseek() for r to before start of file did not set errno to EINVAL. \
-Got %d instead\n",
- errno);
- result = 1;
- }
-
- fclose (f);
-
-
- if ((f = fopen (fname, "r+")) == (FILE *) NULL)
- {
- perror ("fopen(\"r+\")");
- }
-
- fread (buf, 3, 1, f);
- errno = 0;
- if (fseek (f, -10, SEEK_CUR) == 0)
- {
- printf ("fseek() for r+ to before start of file worked!\n");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("\
-fseek() for r+ to before start of file did not set errno to EINVAL. \
-Got %d instead\n",
- errno);
- result = 1;
- }
-
- fclose (f);
-
-
- if ((f = fopen (fname, "r+")) == (FILE *) NULL)
- {
- perror ("fopen(\"r+\")");
- }
-
- fread (buf, 3, 1, f);
- if (ftell (f) != 3)
- {
- puts ("ftell failed");
- return 1;
- }
- errno = 0;
- if (fseek (f, -10, SEEK_CUR) == 0)
- {
- printf ("fseek() for r+ to before start of file worked!\n");
- result = 1;
- }
- else if (errno != EINVAL)
- {
- printf ("\
-fseek() for r+ to before start of file did not set errno to EINVAL. \
-Got %d instead\n",
- errno);
- result = 1;
- }
-
- fclose (f);
-
- return result;
-}