// fgets must not modify the buffer on eof
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "test.h"
#define ASSERT(c) do { if (!(c)) t_error("%s failed\n", #c); } while(0)
int main(void)
{
char buf[] = "test";
char s[10];
FILE *f;
ASSERT((f = fmemopen(buf, sizeof buf, "r")) != 0);
ASSERT(fgets(s, sizeof s, f) == s);
ASSERT(strcmp(s, buf) == 0);
ASSERT(fgets(s, sizeof s, f) == 0);
if (s[0] != 't')
t_error("fgets modified the buffer after eof\n");
return t_status;
}