diff --git a/test/test_read_file.c b/test/test_read_file.c index 90e2ff8..5bef1f4 100644 --- a/test/test_read_file.c +++ b/test/test_read_file.c @@ -104,7 +104,7 @@ END_TEST START_TEST (test_read_file_too_big) char *content; - const char *filename = "test_read_file_simple"; + const char *filename = "test_read_file_too_big"; size_t len; ssize_t rc; @@ -124,6 +124,32 @@ START_TEST (test_read_file_too_big) unlink(filename); END_TEST +START_TEST (test_read_file_big) + char *content; + const char *filename = "test_read_file_big"; + char buf[4096 * 16]; + size_t len; + ssize_t rc; + + int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0664); + fail_if(fd == -1); + memset(buf, 'a', sizeof buf); + + rc = write(fd, buf, sizeof buf); + fail_if(rc != sizeof buf, "rc was %ld", (long)rc); + + close(fd); + + content = uc_read_file(filename, &len, 4096*16); + fail_if(content == NULL); + fail_if(len != sizeof buf); + fail_if(memcmp(content, buf, sizeof buf) != 0); + + free(content); + + unlink(filename); +END_TEST + Suite *read_file_suite(void) { Suite *s = suite_create("read_file"); @@ -134,6 +160,7 @@ Suite *read_file_suite(void) tcase_add_test(tc, test_read_file_boundary); tcase_add_test(tc, test_read_file_devnull); tcase_add_test(tc, test_read_file_too_big); + tcase_add_test(tc, test_read_file_big); suite_add_tcase(s, tc);