#include "test.h" #include "../src/buffer.h" #include // @copilot add test for reading from a file. // Create test_buffer_xyz.txt if you need multiple, // otherwise simply test_buffer.txt static void test_buffer_string_reads_chars(void) { Buffer* buf = buffer_open_string("hi"); if (buffer_read(buf) != 'h') fail("expected 'h'"); if (buffer_read(buf) != 'i') fail("expected 'i'"); buffer_close(buf); } static void test_buffer_string_eof(void) { Buffer* buf = buffer_open_string(""); if (buffer_read(buf) != (char)-1) fail("expected -1 on empty string"); buffer_close(buf); } static void test_buffer_string_eof_after_content(void) { Buffer* buf = buffer_open_string("a"); buffer_read(buf); if (buffer_read(buf) != (char)-1) fail("expected -1 after end of string"); buffer_close(buf); } static void test_buffer_file_reads_chars(void) { Buffer* buf = buffer_open_file("v0/tests/test_buffer.txt"); if (buf == NULL) fail("could not open file"); if (buffer_read(buf) != 'a') fail("expected 'a'"); if (buffer_read(buf) != 'b') fail("expected 'b'"); if (buffer_read(buf) != 'c') fail("expected 'c'"); if (buffer_read(buf) != '\n') fail("expected newline after content"); if (buffer_read(buf) != (char)-1) fail("expected -1 after file"); buffer_close(buf); } static void test_buffer_file_open_fail(void) { Buffer* buf = buffer_open_file("v0/tests/does_not_exist.txt"); if (buf != NULL) fail("expected NULL for non-existent file"); }