X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-fpurge.c;h=89fe8c0caf6be70369fb8a762d46f80d683e27c0;hb=524d6a2ef5cb6f367d4f14d5ab5a35df4c7fe08f;hp=2197b89df65746d94f18b2960cfcbd1b302c4a8a;hpb=7becd9d708425924f3a402fdd3c6e18ba2a7e4e3;p=gnulib.git diff --git a/tests/test-fpurge.c b/tests/test-fpurge.c index 2197b89df..89fe8c0ca 100644 --- a/tests/test-fpurge.c +++ b/tests/test-fpurge.c @@ -1,5 +1,5 @@ /* Test of fpurge() function. - Copyright (C) 2007-2009 Free Software Foundation, Inc. + Copyright (C) 2007-2010 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 @@ -18,28 +18,14 @@ #include +/* 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 -#include #include -/* 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. */ -#if !GNULIB_FSEEK -# undef fseek -#endif - -#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" @@ -55,54 +41,54 @@ main (void) /* Create a file with some contents. */ fp = fopen (TESTFILE, "w"); if (fp == NULL) - goto skip; + goto skip; if (fwrite ("foobarsh", 1, 8, fp) < 8) - goto skip; + goto skip; 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) - goto skip; + goto skip; if (fseek (fp, 3, SEEK_CUR)) - goto skip; + goto skip; if (fwrite ("g", 1, 1, fp) < 1) - goto skip; + goto skip; if (fflush (fp)) - goto skip; + goto skip; 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 - back to where it was before the write calls. */ + back to where it was before the write calls. */ 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) - goto skip; + goto skip; /* 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) - ASSERT (ftell (fp) == 7); + ASSERT (ftell (fp) == 7); 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) - ASSERT (ftell (fp) == 8); + ASSERT (ftell (fp) == 8); ASSERT (getc (fp) == EOF); ASSERT (fclose (fp) == 0); @@ -111,25 +97,25 @@ main (void) /* 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)) - goto skip; + goto skip; 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 (ftell (fp) == 8); + ASSERT (ftell (fp) == 8); ASSERT (putc ('!', fp) == '!'); 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);