1/* Check that basic (ll|f)seek sim functionality works.  Also uses basic
2   file open/write functionality.  */
3#include <stdio.h>
4#include <stdlib.h>
5#include <string.h>
6
7int
8main (void)
9{
10  FILE *f;
11  const char fname[] = "sk1test.dat";
12  const char tsttxt[]
13    = "A random line of text, used to test correct read, write and seek.\n";
14  char buf[sizeof tsttxt] = "";
15
16  f = fopen (fname, "w");
17  if (f == NULL
18      || fwrite (tsttxt, 1, strlen (tsttxt), f) != strlen (tsttxt)
19      || fclose (f) != 0)
20    {
21      printf ("fail\n");
22      exit (1);
23    }
24
25  /* Using "rb" to make this test similar to the use in genconf.c in
26     GhostScript.  */
27  f = fopen (fname, "rb");
28  if (f == NULL
29      || fseek (f, 0L, SEEK_END) != 0
30      || ftell (f) != strlen (tsttxt))
31    {
32      printf ("fail\n");
33      exit (1);
34    }
35
36  rewind (f);
37  if (fread (buf, 1, strlen (tsttxt), f) != strlen (tsttxt)
38      || strcmp (buf, tsttxt) != 0
39      || fclose (f) != 0)
40    {
41      printf ("fail\n");
42      exit (1);
43    }
44
45  printf ("pass\n");
46  exit (0);
47}
48