This commit is contained in:
lixianjing 2022-09-22 17:56:46 +08:00
parent ac46275c9d
commit 5a65d44b33
6 changed files with 142 additions and 0 deletions

View File

@ -1,5 +1,10 @@
# 最新动态
2022/09/22
* 完善fscript单元测试(感谢雨欣提供补丁)
* 增加判断目录是否为空的接口(感谢兆坤提供补丁)
* 完善types_def.h(感谢文静提供补丁)
2022/09/21
* 完善编译脚本对mingw的支持(感谢俊杰提供补丁)
* 按钮失去焦点后取消按下状态(感谢兆坤提供补丁)。

View File

@ -545,6 +545,31 @@ ret_t fs_remove_dir_r(fs_t* fs, const char* name) {
return ret;
}
bool_t fs_dir_is_empty(fs_t* fs, const char* name) {
bool_t ret = TRUE;
fs_dir_t* dir = NULL;
fs_item_t item;
return_value_if_fail(fs != NULL && name != NULL, ret);
dir = fs_open_dir(fs, name);
return_value_if_fail(dir != NULL, ret);
do {
if (fs_dir_read(dir, &item) != RET_OK) {
break;
}
if (tk_str_eq(item.name, ".") || tk_str_eq(item.name, "..")) {
continue;
} else {
ret = FALSE;
}
} while (ret);
fs_dir_close(dir);
return ret;
}
#ifndef TK_COPY_BUFF_SIZE
#define TK_COPY_BUFF_SIZE 4096
#endif /*TK_COPY_BUFF_SIZE*/

View File

@ -579,6 +579,18 @@ ret_t fs_create_dir_r(fs_t* fs, const char* name);
*/
ret_t fs_remove_dir_r(fs_t* fs, const char* name);
/**
* @method fs_dir_is_empty
*
*
*
* @param {fs_t*} fs os_fs()
* @param {const char*} name
*
* @return {bool_t} TRUE表示目录为空
*/
bool_t fs_dir_is_empty(fs_t* fs, const char* name);
/**
* @method fs_dir_exist
*

View File

@ -32,6 +32,7 @@
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <limits.h>
#include <inttypes.h>

View File

@ -156,6 +156,18 @@ TEST(Fs, create_dir_r) {
ASSERT_EQ(fs_dir_exist(os_fs(), "a"), FALSE);
}
TEST(Fs, dir_empty) {
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(fs_dir_is_empty(os_fs(), "a/b/c/d"), TRUE);
ASSERT_EQ(file_write("a/b/c/d/test.txt", "hello", 5), RET_OK);
ASSERT_EQ(fs_dir_is_empty(os_fs(), "a/b/c/d"), FALSE);
ASSERT_EQ(fs_remove_dir_r(os_fs(), "a"), RET_OK);
ASSERT_EQ(fs_dir_exist(os_fs(), "a"), FALSE);
}
TEST(Fs, copy_file) {
const char* src = "./test.txt";
const char* dst = "./a/b/test.txt";

View File

@ -308,6 +308,10 @@ TEST(FScript, join) {
ASSERT_STREQ(value_str(&v), "a,b,c");
value_reset(&v);
fscript_eval(obj, "join(\",\", str(123), str(456), str(789), \"abc\")", &v);
ASSERT_STREQ(value_str(&v), "123,456,789,abc");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -328,6 +332,11 @@ TEST(FScript, iformat) {
ASSERT_STREQ(value_str(&v), "hello:123");
value_reset(&v);
fscript_eval(obj, "iformat(\"hello:%d\", 123) + str(456)", &v);
ASSERT_STREQ(value_str(&v), "hello:123456");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -338,6 +347,10 @@ TEST(FScript, fformat) {
ASSERT_STREQ(value_str(&v), "hello:123.000000");
value_reset(&v);
fscript_eval(obj, "fformat(\"hello:%f\", 123) + str(456)", &v);
ASSERT_STREQ(value_str(&v), "hello:123.000000456");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -549,6 +562,10 @@ TEST(FScript, trim) {
ASSERT_STREQ(value_str(&v), "aaa");
value_reset(&v);
fscript_eval(obj, "trim(\"aaa \") + str(123)", &v);
ASSERT_STREQ(value_str(&v), "aaa123");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -579,6 +596,10 @@ TEST(FScript, toupper) {
ASSERT_STREQ(value_str(&v), "AAA");
value_reset(&v);
fscript_eval(obj, "toupper(\"aaa\") + str(123)", &v);
ASSERT_STREQ(value_str(&v), "AAA123");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -594,6 +615,10 @@ TEST(FScript, tolower) {
ASSERT_STREQ(value_str(&v), "aaa");
value_reset(&v);
fscript_eval(obj, "tolower(\"AAA\") + str(123)", &v);
ASSERT_STREQ(value_str(&v), "aaa123");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -609,6 +634,10 @@ TEST(FScript, replace) {
ASSERT_STREQ(value_str(&v), "123");
value_reset(&v);
fscript_eval(obj, "replace(\"aaa123\", \"a\", \"\") + str(456)", &v);
ASSERT_STREQ(value_str(&v), "123456");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -643,6 +672,10 @@ TEST(FScript, substr) {
ASSERT_STREQ(value_str(&v), "1234567");
value_reset(&v);
fscript_eval(obj, "substr(\"1234567\", 1, 3) + str(123)", &v);
ASSERT_STREQ(value_str(&v), "234123");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -917,6 +950,10 @@ TEST(FExr, sum) {
ASSERT_EQ(value_int(&v), 0);
value_reset(&v);
fscript_eval(obj, "str(123) + str(456)", &v);
ASSERT_STREQ(value_str(&v), "123456");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -1701,6 +1738,21 @@ TEST(FExr, global) {
TK_OBJECT_UNREF(obj);
}
TEST(FExr, totitle) {
value_t v;
tk_object_t* obj = object_default_create();
fscript_eval(obj, "totitle(\"it is ok!\")", &v);
ASSERT_STREQ(value_str(&v), "It Is Ok!");
value_reset(&v);
fscript_eval(obj, "totitle(\"it is ok!\") + str(123)", &v);
ASSERT_STREQ(value_str(&v), "It Is Ok!123");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
TEST(FExr, text_count) {
value_t v;
tk_object_t* obj = object_default_create();
@ -1722,6 +1774,37 @@ TEST(FExr, text_reverse) {
ASSERT_STREQ(value_str(&v), "cba");
value_reset(&v);
fscript_eval(obj, "text_reverse(\"abc\") + str(123)", &v);
ASSERT_STREQ(value_str(&v), "cba123");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
TEST(FExr, usubstr) {
value_t v;
tk_object_t* obj = object_default_create();
fscript_eval(obj, "usubstr('致远电子', 0, 1)", &v);
ASSERT_STREQ(value_str(&v), "");
value_reset(&v);
fscript_eval(obj, "usubstr('致远电子', 0, -1)", &v);
ASSERT_STREQ(value_str(&v), "致远电");
value_reset(&v);
fscript_eval(obj, "usubstr('致远电子', -2, -1)", &v);
ASSERT_STREQ(value_str(&v), "");
value_reset(&v);
fscript_eval(obj, "usubstr('致远电子', -3)", &v);
ASSERT_STREQ(value_str(&v), "远电子");
value_reset(&v);
fscript_eval(obj, "usubstr('致远电子', -3) + str(123)", &v);
ASSERT_STREQ(value_str(&v), "远电子123");
value_reset(&v);
TK_OBJECT_UNREF(obj);
}
@ -2084,6 +2167,10 @@ TEST(FExr, char_at) {
ASSERT_STREQ(value_str(&v1), "h");
value_reset(&v1);
fscript_eval(obj, "char_at(\"hello\", 2) + str(123)", &v1);
ASSERT_STREQ(value_str(&v1), "l123");
value_reset(&v1);
TK_OBJECT_UNREF(obj);
}