mirror of
git://sourceware.org/git/glibc.git
synced 2026-10-20 11:52:27 +08:00
Update.
* conform/conformtest.pl (@headers): Add monetary.h-data, mqueue.h-data, ndbm.h-data, nl_types.h-data, and poll.h-data. * conform/data/monetary.h-data: New file. * conform/data/mqueue.h-data: New file. * conform/data/ndbm.h-data: New file. * conform/data/nl_types.h.h-data: New file. * conform/data/poll.h-data: New file.
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
#define THE_COOKIE ((void *) 0xdeadbeeful)
|
||||
|
||||
static int errors;
|
||||
|
||||
|
||||
static int cookieread_called;
|
||||
static ssize_t
|
||||
cookieread (void *cookie, char *buf, size_t count)
|
||||
{
|
||||
printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
|
||||
(unsigned long int) cookie);
|
||||
if (cookie != THE_COOKIE)
|
||||
++errors;
|
||||
cookieread_called = 1;
|
||||
return 42;
|
||||
}
|
||||
|
||||
|
||||
static int cookiewrite_called;
|
||||
static ssize_t
|
||||
cookiewrite (void *cookie, const char *buf, size_t count)
|
||||
{
|
||||
printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
|
||||
(unsigned long int) cookie);
|
||||
if (cookie != THE_COOKIE)
|
||||
++errors;
|
||||
cookiewrite_called = 1;
|
||||
return 43;
|
||||
}
|
||||
|
||||
|
||||
static int cookieseek_called;
|
||||
static int
|
||||
cookieseek (void *cookie, off_t offset, int whence)
|
||||
{
|
||||
printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
|
||||
(unsigned long int) cookie);
|
||||
if (cookie != THE_COOKIE)
|
||||
++errors;
|
||||
cookieseek_called = 1;
|
||||
return 44;
|
||||
}
|
||||
|
||||
|
||||
static int cookieclose_called;
|
||||
static int
|
||||
cookieclose (void *cookie)
|
||||
{
|
||||
printf ("`%s' called with cookie %#lx\n", __FUNCTION__,
|
||||
(unsigned long int) cookie);
|
||||
if (cookie != THE_COOKIE)
|
||||
++errors;
|
||||
cookieclose_called = 1;
|
||||
return 45;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
cookie_io_functions_t fcts;
|
||||
char buf[1];
|
||||
FILE *f;
|
||||
|
||||
fcts.read = cookieread;
|
||||
fcts.seek = cookieseek;
|
||||
fcts.close = cookieclose;
|
||||
fcts.write = cookiewrite;
|
||||
|
||||
f = fopencookie (THE_COOKIE, "r+", fcts);
|
||||
|
||||
fread (buf, 1, 1, f);
|
||||
fwrite (buf, 1, 1, f);
|
||||
fseek (f, 0, SEEK_CUR);
|
||||
fclose (f);
|
||||
|
||||
if (cookieread_called == 0
|
||||
|| cookiewrite_called == 0
|
||||
|| cookieseek_called == 0
|
||||
|| cookieclose_called == 0)
|
||||
++errors;
|
||||
|
||||
return errors != 0;
|
||||
}
|
||||
Reference in New Issue
Block a user