awtk/tests/fs_test.cc

157 lines
4.1 KiB
C++
Raw Normal View History

#include "tkc/fs.h"
#include "tkc/mem.h"
#include "gtest/gtest.h"
TEST(Fs, basic) {
2020-05-04 17:14:00 +08:00
ASSERT_EQ(fs_test(os_fs()), RET_OK);
}
TEST(Fs, read_part) {
char buff[128];
uint32_t size = 0;
const char* str = "hello world";
const char* filename = "test.bin";
file_write(filename, str, strlen(str));
char* ret = (char*)file_read(filename, &size);
ASSERT_EQ(file_read_part(filename, buff, sizeof(buff), 0), strlen(str));
ASSERT_EQ(strcmp(ret, str), 0);
ASSERT_EQ(size, strlen(str));
file_remove(filename);
2018-04-29 16:51:54 +08:00
TKMEM_FREE(ret);
}
2019-10-15 15:11:59 +08:00
TEST(Fs, eof) {
char buff[128];
const char* str = "hello world";
const char* filename = "test.bin";
file_write(filename, str, strlen(str));
fs_file_t* f = fs_open_file(os_fs(), filename, "r");
2019-10-16 11:07:30 +08:00
memset(buff, 0x00, sizeof(buff));
2019-10-15 15:11:59 +08:00
fs_file_read(f, buff, sizeof(buff));
ASSERT_STREQ(buff, str);
ASSERT_EQ(fs_file_eof(f), TRUE);
fs_file_close(f);
file_remove(filename);
}
2020-12-10 09:18:38 +08:00
TEST(Fs, read_line1) {
char buff[128];
const char* str = "1\r22\r\n333\n4444";
const char* filename = "test.bin";
file_write(filename, str, strlen(str));
2020-12-10 17:49:13 +08:00
fs_file_t* f = fs_open_file(os_fs(), filename, "rb");
2020-12-10 09:18:38 +08:00
2020-12-14 11:33:25 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, sizeof(buff) - 1), 1);
2020-12-10 09:18:38 +08:00
ASSERT_STREQ(buff, "1");
ASSERT_EQ(fs_file_eof(f), FALSE);
2020-12-14 11:33:25 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, sizeof(buff) - 1), 2);
2020-12-10 09:18:38 +08:00
ASSERT_STREQ(buff, "22");
ASSERT_EQ(fs_file_eof(f), FALSE);
2020-12-14 11:33:25 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, sizeof(buff) - 1), 3);
2020-12-10 09:18:38 +08:00
ASSERT_STREQ(buff, "333");
ASSERT_EQ(fs_file_eof(f), FALSE);
2020-12-14 11:33:25 +08:00
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, 3), 3);
ASSERT_STREQ(buff, "444");
ASSERT_EQ(fs_file_eof(f), FALSE);
2020-12-14 11:33:25 +08:00
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, 3), 1);
ASSERT_STREQ(buff, "4");
2020-12-14 11:33:25 +08:00
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, 3), 0);
ASSERT_EQ(fs_file_eof(f), TRUE);
fs_file_close(f);
file_remove(filename);
}
TEST(Fs, read_line2) {
char buff[256];
2020-12-14 11:33:25 +08:00
const char* str =
"11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
"11111111111111111111111111111111111";
2020-12-10 09:18:38 +08:00
const char* filename = "test.bin";
file_write(filename, str, strlen(str));
2020-12-10 17:49:13 +08:00
fs_file_t* f = fs_open_file(os_fs(), filename, "rb");
2020-12-10 09:18:38 +08:00
2020-12-14 11:33:25 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, sizeof(buff) - 1), 127);
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_eof(f), FALSE);
2020-12-14 11:33:25 +08:00
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, 3), 0);
ASSERT_EQ(fs_file_eof(f), TRUE);
fs_file_close(f);
file_remove(filename);
}
TEST(Fs, read_line3) {
char buff[256];
2020-12-14 11:33:25 +08:00
const char* str =
"11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
"111111111111111111111111111111111111\r\n";
2020-12-10 09:18:38 +08:00
const char* filename = "test.bin";
file_write(filename, str, strlen(str));
2020-12-10 17:49:13 +08:00
fs_file_t* f = fs_open_file(os_fs(), filename, "rb");
2020-12-10 09:18:38 +08:00
2020-12-14 11:33:25 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, sizeof(buff) - 1), 128);
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_eof(f), FALSE);
2020-12-14 11:33:25 +08:00
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, 3), 0);
ASSERT_EQ(fs_file_eof(f), TRUE);
fs_file_close(f);
file_remove(filename);
}
TEST(Fs, read_line4) {
char buff[256];
2020-12-14 11:33:25 +08:00
const char* str =
"11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
"11111111111111111111111111111111111\r\nabc";
2020-12-10 09:18:38 +08:00
const char* filename = "test.bin";
file_write(filename, str, strlen(str));
2020-12-10 17:49:13 +08:00
fs_file_t* f = fs_open_file(os_fs(), filename, "rb");
2020-12-10 09:18:38 +08:00
2020-12-14 11:33:25 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, sizeof(buff) - 1), 127);
ASSERT_EQ(fs_file_read_line(f, buff, sizeof(buff) - 1), 3);
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_eof(f), FALSE);
2020-12-14 11:33:25 +08:00
2020-12-10 09:18:38 +08:00
ASSERT_EQ(fs_file_read_line(f, buff, 3), 0);
ASSERT_EQ(fs_file_eof(f), TRUE);
fs_file_close(f);
file_remove(filename);
}
2020-12-18 16:34:29 +08:00
TEST(Fs, create_dir_r) {
char cwd[MAX_PATH + 1];
ASSERT_EQ(fs_get_cwd(os_fs(), cwd), RET_OK);
ASSERT_EQ(fs_create_dir_r(os_fs(), "a/b/c/d"), RET_OK);
ASSERT_EQ(fs_dir_exist(os_fs(), "a/b/c/d"), TRUE);
ASSERT_EQ(file_write("a/b/c/d/test.txt", "hello", 5), RET_OK);
ASSERT_EQ(fs_change_dir(os_fs(), "a/b/c/d"), RET_OK);
ASSERT_EQ(fs_change_dir(os_fs(), cwd), RET_OK);
ASSERT_EQ(fs_remove_dir_r(os_fs(), "a"), RET_OK);
ASSERT_EQ(fs_dir_exist(os_fs(), "a"), FALSE);
}