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