TEST_F(MgrTest, object_from_addr_basic) { CPE_HS_DEF_VAR(className, "class1"); addClass("class1", 20); gd_om_oid_t oid = obj_alloc(className); EXPECT_TRUE(oid != GD_OM_INVALID_OID); void * objData = gd_om_obj_get(m_omm, oid, t_em()); ASSERT_TRUE(objData); EXPECT_EQ(oid, gd_om_obj_id_from_addr(m_omm, objData, t_em())); }
TEST_F(MgrTest, object_alloc_basic) { CPE_HS_DEF_VAR(className, "class1"); addClass("class1", 20); gd_om_oid_t oid = obj_alloc(className); EXPECT_TRUE(oid != GD_OM_INVALID_OID); void * objData = gd_om_obj_get(m_omm, oid, t_em()); ASSERT_TRUE(objData); gd_om_class_t cls = gd_om_obj_class(m_omm, oid, t_em()); ASSERT_TRUE(cls); EXPECT_STREQ("class1", gd_om_class_name(cls)); }
int ReadTest::read(const char * decodeTypeName, const void * data, size_t data_size) { LPDRMETA meta = dr_lib_find_meta_by_name(m_metaLib, decodeTypeName); EXPECT_TRUE(meta) << "get meta " << decodeTypeName << " error!"; t_elist_clear(); char buf[1024]; int len = dr_pbuf_write(buf, sizeof(buf), data, data_size, meta, t_em()); EXPECT_GT(len, 0); int r = dr_pbuf_read(m_result_buffer, sizeof(m_result_buffer), buf, len, meta, t_em()); m_result_bufffer_len = r; m_result_meta = meta; return r; }
void SearchDirTest::do_search(int maxLevel) { struct dir_visitor visitor; visitor.on_dir_enter = on_dir_enter; visitor.on_dir_leave = on_dir_leave; visitor.on_file = on_file; dir_search(&visitor, this, t_dir_base(), maxLevel, t_em(), t_allocrator()); }
TEST_F(MgrTest, object_size) { CPE_HS_DEF_VAR(className, "class1"); addClass("class1", 20); gd_om_oid_t oid1 = obj_alloc(className); EXPECT_TRUE(oid1 != GD_OM_INVALID_OID); void * objData1 = gd_om_obj_get(m_omm, oid1, t_em()); ASSERT_TRUE(objData1); gd_om_oid_t oid2 = obj_alloc(className); EXPECT_TRUE(oid2 != GD_OM_INVALID_OID); void * objData2 = gd_om_obj_get(m_omm, oid2, t_em()); ASSERT_TRUE(objData2); EXPECT_EQ(1, (int)(oid2 - oid1)); EXPECT_EQ(20, (int)((char*)objData2 - (char*)objData1)); }
int MergeTest::merge(const char * input, cfg_policy_t policy) { cfg_t inputCfg = cfg_create(t_tmp_allocrator()); EXPECT_TRUE(inputCfg); if (inputCfg) { install(inputCfg, input); } return cfg_merge(m_root, inputCfg, policy, t_em()); }
int WriteTest::write(const char * typeName, const void * data, size_t data_size) { LPDRMETA meta = dr_lib_find_meta_by_name(m_metaLib, typeName); EXPECT_TRUE(meta) << "get meta " << typeName << " error!"; t_elist_clear(); int r = dr_pbuf_write(m_buffer, sizeof(m_buffer), data, data_size, meta, t_em()); m_bufffer_len = r >= 0 ? (size_t)r : 0; return r; }
int ReadTest::read(const char * encodeTypeName, const char * decodeTypeName, const char * defs) { LPDRMETA meta = dr_lib_find_meta_by_name(m_metaLib, encodeTypeName); EXPECT_TRUE(meta) << "get meta " << encodeTypeName << " error!"; char buf[1024]; int r = dr_cfg_read(buf, sizeof(buf), t_cfg_parse(defs), meta, 0, t_em()); EXPECT_GT(r, 0); return read(decodeTypeName, buf, r); }
int WriteTest::write(const char * typeName, const char * defs) { LPDRMETA meta = dr_lib_find_meta_by_name(m_metaLib, typeName); EXPECT_TRUE(meta) << "get meta " << typeName << " error!"; char buf[1024]; int r = dr_cfg_read(buf, sizeof(buf), t_cfg_parse(defs), meta, 0, t_em()); EXPECT_GT(r, 0); return write(typeName, buf, r); }
void ReadTest::installMeta(const char * def) { m_metaLib = NULL; mem_buffer_init(&m_metaLib_buffer, NULL); EXPECT_EQ( 0, dr_create_lib_from_xml_ex(&m_metaLib_buffer, def, strlen(def), t_em())) << "install meta error"; m_metaLib = (LPDRMETALIB)mem_buffer_make_exactly(&m_metaLib_buffer); }
cfg_t ReadTest::result(void) { EXPECT_TRUE(m_result_meta) << "result meta not exist"; cfg_t r = t_cfg_create(); EXPECT_EQ( 0, dr_cfg_write( r, m_result_buffer, m_result_meta, t_em())); return r; }
int ReadTest::read(const char * data, const char * typeName, int policy, size_t capacity) { LPDRMETA meta = dr_lib_find_meta_by_name(m_metaLib, typeName); EXPECT_TRUE(meta) << "get meta " << typeName << " error!"; if (meta == 0) return -1; if (capacity == 0) { capacity = dr_meta_size(meta); } cfg_t input = t_cfg_parse(data); EXPECT_TRUE(input) << "parse input to cfg fail!"; if (input == 0) return -1; t_elist_clear(); mem_buffer_clear(&m_buffer); return dr_cfg_read( mem_buffer_alloc(&m_buffer, capacity), capacity, input, meta, policy, t_em()); }
gd_om_oid_t MgrTest::obj_alloc(cpe_hash_string_t className) { return gd_om_obj_alloc(m_omm, className, t_em()); }
gd_om_class_id_t MgrTest::addClass(const char * className, size_t object_size) { return gd_om_mgr_add_class(m_omm, className, object_size, 4, t_em()); }
void MergeTest::install(cfg_t cfg, const char * input) { struct read_stream_mem stream = CPE_READ_STREAM_MEM_INITIALIZER(input, strlen(input)); ASSERT_EQ(0, cfg_read(cfg, (read_stream_t)&stream, cfg_replace, t_em())); }
int PrintTest::print(const void * data, const char * typeName) { LPDRMETA meta = dr_lib_find_meta_by_name(m_metaLib, typeName); EXPECT_TRUE(meta) << "get meta " << typeName << " error!"; t_elist_clear(); struct write_stream_buffer stream = CPE_WRITE_STREAM_BUFFER_INITIALIZER(&m_buffer); int r = dr_json_print((write_stream_t)&stream, data, meta, DR_JSON_PRINT_BEAUTIFY, t_em()); stream_putc((write_stream_t)&stream, 0); return r; }