#include <stdio.h>
#include <stdio.h>
#include <wchar.h>
#include <err.h>
#include <stdlib.h>
#include <errno.h>
const char *
_umem_debug_init(void)
{
return ("default,verbose");
}
const char *
_umem_logging_init(void)
{
return ("fail,contents");
}
static void
check_reopen(FILE *f, const char *variant)
{
FILE *new = freopen(NULL, "r", f);
if (new != NULL) {
errx(EXIT_FAILURE, "TEST FAILED: was able to freopen %s",
variant);
}
if (errno != EBADF) {
errx(EXIT_FAILURE, "TEST FAILED: found wrong errno for %s: "
"expected %d, found %d", variant, EBADF, errno);
}
(void) printf("TEST PASSED: %s\n", variant);
}
int
main(void)
{
FILE *f;
char *c;
wchar_t *wc;
size_t sz;
f = fmemopen(NULL, 16, "a+");
if (f == NULL) {
err(EXIT_FAILURE, "failed to create fmemopen() stream");
}
check_reopen(f, "fmemopen()");
f = open_memstream(&c, &sz);
if (f == NULL) {
err(EXIT_FAILURE, "failed to create open_memstream() stream");
}
check_reopen(f, "open_memstream()");
free(c);
f = open_wmemstream(&wc, &sz);
if (f == NULL) {
err(EXIT_FAILURE, "failed to create open_wmemstream() stream");
}
check_reopen(f, "open_wmemstream()");
free(wc);
return (0);
}