#include #include "test_common.h" #include "../src/Drv/menu/view/menu_layout.h" #include "../src/Drv/menu/model/menu_tree_builder.h" static int noop_proc(void) { return 0; } int main(void) { tagMenuCtrl ctrl; tagMenuItem items[4]; uint8_t menu_num[4] = {0}; tagPMenuItem first[4] = {0}; tagPMenuItem index[4] = {0}; uint8_t max_len; const tagMenuModel model[4] = { {0, "Root", "", 0, 0, 0, (FUNCPTR)noop_proc}, {1, "设置", "", 0, 0, 0, (FUNCPTR)noop_proc}, {2, "子项", "", 0, 0, 0, (FUNCPTR)noop_proc}, {1, "查看", "", 0, 0, 0, (FUNCPTR)noop_proc}, }; memset(&ctrl, 0, sizeof(ctrl)); memset(items, 0, sizeof(items)); MenuTree_0LevelNumCal(&ctrl, model, 4); ASSERT_EQ_INT(1, ctrl.by0LevelNum); MenuTree_MainCreate(items, model, 4); ASSERT_EQ_INT(3, MenuLayout_Utf8LenCal((uint8_t *)"ABC")); ASSERT_EQ_INT(2, MenuLayout_Utf8LenCal((uint8_t *)"你")); first[0] = &items[0]; index[0] = &items[0]; max_len = MenuLayout_CharLenCal(0, menu_num, first, index); ASSERT_TRUE(max_len > 0); ASSERT_TRUE(menu_num[1] > 0); ASSERT_STREQ("设置", (const char *)items[1].byName); return 0; }