From 0a291040676bdb8eac311948db06bc8632f7db2b Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 4 Sep 2011 17:30:30 -0400 Subject: test fmemopen --- memstream.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/memstream.c b/memstream.c index 99be094..cdb4b0c 100644 --- a/memstream.c +++ b/memstream.c @@ -25,6 +25,7 @@ int test_memstream(void) FILE *f; char *s; size_t l; + char buf[100]; int i; s = 0; @@ -53,5 +54,43 @@ int test_memstream(void) fclose(f); free(s); + TEST_E(f = fmemopen(buf, 10, "r+")); + TEST_E(fputs("hello", f) >= 0); + TEST_E(fputc(0, f)==0); + TEST_E(fseek(f, 0, SEEK_SET)>=0); + i=0; + TEST_E(fscanf(f, "hello%n", &i)==0); + TEST(i, i, 5, "%d != %d"); + TEST(i, ftell(f), 5, "%d != %d"); + errno = 0; + TEST(i, fseek(f, 6, SEEK_CUR)<0, 1, ""); + TEST(i, errno!=0, 1, ""); + TEST(i, ftell(f), 5, "%d != %d"); + TEST_S(buf, "hello", ""); + fclose(f); + + TEST_E(f = fmemopen(buf, 10, "a+")); + TEST(i, ftell(f), 5, "%d != %d"); + TEST_E(fseek(f, 0, SEEK_SET)>=0); + TEST(i, getc(f), 'h', "%d != %d"); + TEST(i, getc(f), 'e', "%d != %d"); + TEST(i, getc(f), 'l', "%d != %d"); + TEST(i, getc(f), 'l', "%d != %d"); + TEST(i, getc(f), 'o', "%d != %d"); + TEST(i, getc(f), EOF, "%d != %d"); + TEST_E(fseek(f, 6, SEEK_SET)>=0); + TEST(i, ftell(f), 6, "%d != %d"); + TEST(i, getc(f), EOF, "%d != %d"); + TEST(i, ftell(f), 6, "%d != %d"); + TEST_E(fseek(f, 0, SEEK_SET)>=0); + TEST(i, getc(f), 'h', "%d != %d"); + TEST_E(fseek(f, 0, SEEK_CUR)>=0); + buf[7] = 'x'; + TEST_E(fprintf(f, "%d", i)==3); + TEST_E(fflush(f)==0); + TEST(i, ftell(f), 8, "%d != %d"); + TEST_S(buf, "hello104", ""); + fclose(f); + return err; } -- cgit v1.2.1