#include #include #include #include #include #include "mocs.h" #include "tftp.h" tftp_custom_file_t file = { .data = (char*)"1234567890", .len = 11, .name = (char*)"test.txt", .offset = 0 }; tftp_custom_file_t write_file = { .data = NULL, .len = 0, .name = (char*)"test.txt", .offset = 0 }; TEST(TFTP, custom_fseek) { tftp_custom_fseek(&file, 5, SEEK_SET); EXPECT_EQ(file.offset, 5); tftp_custom_fseek(&file, 5, SEEK_CUR); EXPECT_EQ(file.offset, 10); } TEST(TFTP, custom_fread) { char buf[11]; tftp_custom_fseek(&file, 0, SEEK_SET); size_t bytes = tftp_custom_fread(buf, 11, &file); EXPECT_EQ(bytes, 11); EXPECT_EQ(file.offset, 11); EXPECT_EQ(memcmp(buf, "1234567890", 10), 0); memset(buf, 0, 11); tftp_custom_fseek(&file, 0, SEEK_SET); bytes = tftp_custom_fread(buf, 11, &file); EXPECT_EQ(bytes, 11); EXPECT_EQ(memcmp(buf, "1234567890", 10), 0); memset(buf, 0, 11); tftp_custom_fseek(&file, 0, SEEK_SET); bytes = tftp_custom_fread(buf, 5, &file); EXPECT_EQ(bytes, 5); EXPECT_EQ(memcmp(buf, "12345", 5), 0); memset(buf, 0, 11); bytes = tftp_custom_fread(buf, 5, &file); EXPECT_EQ(bytes, 5); EXPECT_EQ(memcmp(buf, "67890", 5), 0); } TEST(TFTP, custom_fwrite) { write_file.data = (char*)malloc(21 * sizeof(char)); write_file.len = 21; tftp_custom_fwrite("0987654321", 10, &write_file); EXPECT_EQ(write_file.offset, 10); EXPECT_EQ(write_file.len, 21); EXPECT_EQ(memcmp(write_file.data, "0987654321", 10), 0); tftp_custom_fwrite("1234567890", 10, &write_file); EXPECT_EQ(write_file.offset, 20); EXPECT_EQ(write_file.len, 21); EXPECT_EQ(memcmp(write_file.data, "09876543211234567890", 20), 0); free(write_file.data); write_file.data = NULL; write_file.len = 0; }