• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/gdb/sim/testsuite/sim/cris/c/
1/* Check that the truncate syscall works trivially.
2#notarget: cris*-*-elf
3*/
4
5#include <stdio.h>
6#include <stdlib.h>
7#include <string.h>
8
9#ifndef PREFIX
10#define PREFIX
11#endif
12int
13main (void)
14{
15  FILE *f;
16  const char fname[] = PREFIX "sk1test.dat";
17  const char tsttxt1[]
18    = "This is the first and only line of this file.\n";
19  const char tsttxt2[] = "Now there is a second line.\n";
20  char buf[sizeof (tsttxt1) + sizeof (tsttxt2) - 1] = "";
21
22  f = fopen (fname, "w+");
23  if (f == NULL
24      || fwrite (tsttxt1, 1, strlen (tsttxt1), f) != strlen (tsttxt1)
25      || fclose (f) != 0)
26    {
27      printf ("fail\n");
28      exit (1);
29    }
30
31  if (truncate (fname, strlen(tsttxt1) - 10) != 0)
32    {
33      perror ("truncate");
34      exit (1);
35    }
36
37  f = fopen (fname, "r");
38  if (f == NULL
39      || fread (buf, 1, sizeof (buf), f) != strlen (tsttxt1) - 10
40      || strncmp (buf, tsttxt1, strlen (tsttxt1) - 10) != 0
41      || fclose (f) != 0)
42    {
43      printf ("fail\n");
44      exit (1);
45    }
46
47  printf ("pass\n");
48  exit (0);
49}
50