Skip to content

Commit c773ab3

Browse files
committed
test: fmem_mem should be called while the file is still open
1 parent ebe9072 commit c773ab3

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

test/tests.c

+24-16
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ void teardown(void) { fmem_term(&fm); }
1010

1111
TestSuite(fmem, .init = setup, .fini = teardown);
1212

13-
#define assert_written(Fmem, What) do { \
14-
const char *__str = (What); \
15-
void *__base; \
16-
size_t __size; \
17-
fmem_mem(&(Fmem), &__base, &__size); \
18-
cr_assert_eq(__size, strlen(__str), \
19-
"size is %llu, not %llu", \
20-
(unsigned long long) __size, \
21-
(unsigned long long) strlen(__str)); \
22-
cr_assert_str_eq((char *)__base, __str); \
13+
#define assert_written(Fmem, What) do { \
14+
const char *__str = (What); \
15+
void *__base; \
16+
size_t __size; \
17+
fmem_mem(&(Fmem), &__base, &__size); \
18+
cr_assert_eq(__size, strlen(__str), \
19+
"size is %llu, not %llu", \
20+
(unsigned long long) __size, \
21+
(unsigned long long) strlen(__str)); \
22+
cr_assert(!memcmp((char *)__base, __str, __size)); \
2323
} while (0)
2424

2525
Test(fmem, open)
@@ -35,9 +35,10 @@ Test(fmem, mem)
3535

3636
FILE *f = fmem_open(&fm, "w+");
3737
fprintf(f, "%s", str);
38-
fclose(f);
38+
fflush(f);
3939

4040
assert_written(fm, str);
41+
fclose(f);
4142
}
4243

4344
Test(fmem, append)
@@ -50,24 +51,27 @@ Test(fmem, append)
5051
assert_written(fm, "abcd");
5152

5253
fprintf(f, "efgh");
53-
fclose(f);
54+
fflush(f);
5455

5556
assert_written(fm, "abcdefgh");
57+
fclose(f);
5658
}
5759

5860
Test(fmem, reopen)
5961
{
6062
FILE *f = fmem_open(&fm, "w+");
6163
fprintf(f, "abcd");
62-
fclose(f);
64+
fflush(f);
6365

6466
assert_written(fm, "abcd");
67+
fclose(f);
6568

6669
f = fmem_open(&fm, "w+");
6770
fprintf(f, "efgh");
68-
fclose(f);
71+
fflush(f);
6972

7073
assert_written(fm, "efgh");
74+
fclose(f);
7175
}
7276

7377
Test(fmem, cursor)
@@ -76,9 +80,11 @@ Test(fmem, cursor)
7680
fprintf(f, "abcd");
7781
fseek(f, 2, SEEK_SET);
7882
fprintf(f, "efgh");
79-
fclose(f);
83+
fflush(f);
8084

8185
assert_written(fm, "abefgh");
86+
87+
fclose(f);
8288
}
8389

8490
Test(fmem, large)
@@ -97,7 +103,7 @@ Test(fmem, large)
97103
}
98104
}
99105

100-
fclose(f);
106+
fflush(f);
101107

102108
void *base;
103109
size_t size;
@@ -107,4 +113,6 @@ Test(fmem, large)
107113
"size is %llu, not %llu",
108114
(unsigned long long) size,
109115
(unsigned long long) 1024 * sizeof (buf));
116+
117+
fclose(f);
110118
}

0 commit comments

Comments
 (0)