projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
qacl: port to Windows better
[gnulib.git]
/
tests
/
test-fpurge.c
diff --git
a/tests/test-fpurge.c
b/tests/test-fpurge.c
index
13388ec
..
da8ddf0
100644
(file)
--- a/
tests/test-fpurge.c
+++ b/
tests/test-fpurge.c
@@
-1,5
+1,5
@@
/* Test of fpurge() function.
/* Test of fpurge() function.
- Copyright (C) 2007-20
09
Free Software Foundation, Inc.
+ Copyright (C) 2007-20
13
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-18,27
+18,19
@@
#include <config.h>
#include <config.h>
+/* None of the files accessed by this test are large, so disable the
+ fseek link warning if we are not using the gnulib fseek module. */
+#define _GL_NO_LARGE_FILES
#include <stdio.h>
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include <string.h>
-#define ASSERT(expr) \
- do \
- { \
- if (!(expr)) \
- { \
- fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
- fflush (stderr); \
- abort (); \
- } \
- } \
- while (0)
+#include "macros.h"
#define TESTFILE "t-fpurge.tmp"
int
#define TESTFILE "t-fpurge.tmp"
int
-main ()
+main (
void
)
{
int check_filepos;
{
int check_filepos;
@@
-49,54
+41,54
@@
main ()
/* Create a file with some contents. */
fp = fopen (TESTFILE, "w");
if (fp == NULL)
/* Create a file with some contents. */
fp = fopen (TESTFILE, "w");
if (fp == NULL)
- goto skip;
+
goto skip;
if (fwrite ("foobarsh", 1, 8, fp) < 8)
if (fwrite ("foobarsh", 1, 8, fp) < 8)
- goto skip;
+
goto skip;
if (fclose (fp))
if (fclose (fp))
- goto skip;
+
goto skip;
/* The file's contents is now "foobarsh". */
/* Open it in read-write mode. */
fp = fopen (TESTFILE, "r+");
if (fp == NULL)
/* The file's contents is now "foobarsh". */
/* Open it in read-write mode. */
fp = fopen (TESTFILE, "r+");
if (fp == NULL)
- goto skip;
+
goto skip;
if (fseek (fp, 3, SEEK_CUR))
if (fseek (fp, 3, SEEK_CUR))
- goto skip;
+
goto skip;
if (fwrite ("g", 1, 1, fp) < 1)
if (fwrite ("g", 1, 1, fp) < 1)
- goto skip;
+
goto skip;
if (fflush (fp))
if (fflush (fp))
- goto skip;
+
goto skip;
if (fwrite ("bz", 1, 2, fp) < 2)
if (fwrite ("bz", 1, 2, fp) < 2)
- goto skip;
+
goto skip;
/* Discard pending write. */
ASSERT (fpurge (fp) == 0);
/* Verify that when discarding pending output, the file position is set
/* Discard pending write. */
ASSERT (fpurge (fp) == 0);
/* Verify that when discarding pending output, the file position is set
- back to where it was before the write calls. */
+
back to where it was before the write calls. */
if (check_filepos)
if (check_filepos)
- ASSERT (ftell (fp) == 4);
+
ASSERT (ftell (fp) == 4);
ASSERT (fclose (fp) == 0);
/* Open it in read-only mode. */
fp = fopen (TESTFILE, "r");
if (fp == NULL)
ASSERT (fclose (fp) == 0);
/* Open it in read-only mode. */
fp = fopen (TESTFILE, "r");
if (fp == NULL)
- goto skip;
+
goto skip;
/* Verify that the pending writes before the fpurge were really
/* Verify that the pending writes before the fpurge were really
- discarded. */
+
discarded. */
{
{
- char buf[8];
- if (fread (buf, 1, 7, fp) < 7)
- goto skip;
- ASSERT (memcmp (buf, "foogars", 7) == 0);
+
char buf[8];
+
if (fread (buf, 1, 7, fp) < 7)
+
goto skip;
+
ASSERT (memcmp (buf, "foogars", 7) == 0);
}
/* Discard the buffered 'h'. */
if (check_filepos)
}
/* Discard the buffered 'h'. */
if (check_filepos)
- ASSERT (ftell (fp) == 7);
+
ASSERT (ftell (fp) == 7);
ASSERT (fpurge (fp) == 0);
/* Verify that when discarding pending input, the file position is
ASSERT (fpurge (fp) == 0);
/* Verify that when discarding pending input, the file position is
- advanced to match the end of the previously read input. */
+
advanced to match the end of the previously read input. */
if (check_filepos)
if (check_filepos)
- ASSERT (ftell (fp) == 8);
+
ASSERT (ftell (fp) == 8);
ASSERT (getc (fp) == EOF);
ASSERT (fclose (fp) == 0);
ASSERT (getc (fp) == EOF);
ASSERT (fclose (fp) == 0);
@@
-105,25
+97,27
@@
main ()
/* Ensure that purging a read does not corrupt subsequent writes. */
fp = fopen (TESTFILE, "r+");
if (fp == NULL)
/* Ensure that purging a read does not corrupt subsequent writes. */
fp = fopen (TESTFILE, "r+");
if (fp == NULL)
- goto skip;
+
goto skip;
if (fseek (fp, -1, SEEK_END))
if (fseek (fp, -1, SEEK_END))
- goto skip;
+
goto skip;
ASSERT (getc (fp) == 'h');
ASSERT (getc (fp) == EOF);
if (check_filepos)
ASSERT (getc (fp) == 'h');
ASSERT (getc (fp) == EOF);
if (check_filepos)
- ASSERT (ftell (fp) == 8);
+
ASSERT (ftell (fp) == 8);
ASSERT (fpurge (fp) == 0);
if (check_filepos)
ASSERT (fpurge (fp) == 0);
if (check_filepos)
- ASSERT (ftell (fp) == 8);
+
ASSERT (ftell (fp) == 8);
ASSERT (putc ('!', fp) == '!');
ASSERT (putc ('!', fp) == '!');
+ if (check_filepos)
+ ASSERT (ftell (fp) == 9);
ASSERT (fclose (fp) == 0);
fp = fopen (TESTFILE, "r");
if (fp == NULL)
ASSERT (fclose (fp) == 0);
fp = fopen (TESTFILE, "r");
if (fp == NULL)
- goto skip;
+
goto skip;
{
{
- char buf[10];
- ASSERT (fread (buf, 1, 10, fp) == 9);
- ASSERT (memcmp (buf, "foogarsh!", 9) == 0);
+
char buf[10];
+
ASSERT (fread (buf, 1, 10, fp) == 9);
+
ASSERT (memcmp (buf, "foogarsh!", 9) == 0);
}
ASSERT (fclose (fp) == 0);
}
ASSERT (fclose (fp) == 0);