934b77ac65
2002-08-27 Ulrich Drepper <drepper@redhat.com> * sysdeps/arm/Dist: Add bits/link.h. * sunrpc/Makefile: Distribute thrsvc. * stdio-common/Makefile: Remove more left-overs from old stdio. * include/linewrap.h: Removed. * libio/bug-mmap-fflush.c: Rewrite to not touch source directory. * intl/Makefile (distribute): Add plural-eval.c. * stdio-common/Makefile (headers): Remove bits/stdio_lim.h. This file isn't distributed. Add special rules to install bits/stdio_lim.h. * Make-dist: Remove traces of old stdio. * Makeconfig: Likewise. * locale/Makefile (localedef-aux): New variable. Only md5 assigned to it. These files are not ddistributed in this directory. * sysdeps/unix/sysv/linux/s390/Dist: Add sys/procfs.h. * sysdeps/unix/sysv/linux/s390/s390-64/Dist: Remove sys/procfs.h. * sysdeps/unix/sysv/linux/s390/s390-32/Dist: Likewise. * sysdeps/unix/sysv/linux/Dist: Remove sys/sendfile.h.
54 lines
1011 B
C
54 lines
1011 B
C
/* Test for bug in fflush synchronization behavior. */
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
|
|
static char *fname;
|
|
|
|
static void prepare (void);
|
|
#define PREPARE(argc, argv) prepare ()
|
|
|
|
|
|
#define TEST_FUNCTION do_test ()
|
|
static int do_test (void);
|
|
#include "../test-skeleton.c"
|
|
|
|
|
|
static void
|
|
prepare (void)
|
|
{
|
|
int fd = create_temp_file ("bug-mmap-fflush.", &fname);
|
|
if (fd == -1)
|
|
exit (3);
|
|
/* We don't need the descriptor. */
|
|
close (fd);
|
|
}
|
|
|
|
|
|
static int
|
|
do_test (void)
|
|
{
|
|
FILE *f;
|
|
off_t o;
|
|
char buffer[1024];
|
|
|
|
snprintf (buffer, sizeof (buffer), "echo 'From foo@bar.com' > %s", fname);
|
|
system (buffer);
|
|
f = fopen (fname, "r");
|
|
fseek (f, 0, SEEK_END);
|
|
o = ftello (f);
|
|
fseek (f, 0, SEEK_SET);
|
|
fflush (f);
|
|
snprintf (buffer, sizeof (buffer), "echo 'From bar@baz.edu' >> %s", fname);
|
|
system (buffer);
|
|
fseek (f, o, SEEK_SET);
|
|
if (fgets (buffer, 1024, f) == NULL)
|
|
exit (1);
|
|
if (strncmp (buffer, "From ", 5) != 0)
|
|
exit (1);
|
|
fclose (f);
|
|
exit (0);
|
|
}
|