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); }
void dir_search( dir_visitor_t visitor, void * ctx, const char * path, int maxLevel, error_monitor_t em, mem_allocrator_t talloc) { struct mem_buffer buffer; mem_buffer_init(&buffer, talloc); mem_buffer_strcat(&buffer, path); dir_search_i(visitor, ctx, maxLevel, em, &buffer); mem_buffer_clear(&buffer); }
int tools_main(error_monitor_t em) { struct cpe_dr_generate_ctx ctx; struct mem_buffer buffer; int rv; ctx.m_builder = NULL; ctx.m_metalib = NULL; ctx.m_em = em; rv = 0; ctx.m_builder = dr_metalib_builder_create(NULL, em); if (ctx.m_builder == NULL) { CPE_ERROR(em, "create metalib builder fail!"); return -1; } prepare_input(ctx.m_builder, em); dr_metalib_builder_analize(ctx.m_builder); mem_buffer_init(&buffer, 0); if (dr_inbuild_build_lib( &buffer, dr_metalib_bilder_lib(ctx.m_builder), em) == 0) { ctx.m_metalib = (LPDRMETALIB)mem_buffer_make_continuous(&buffer, 0), mem_buffer_size(&buffer); if (ctx.m_metalib) { if (do_validate(&ctx) != 0) rv = -1; if (do_generate_h(&ctx) != 0) rv = -1; if (do_generate_lib_bin(&ctx) != 0) rv = -1; if (do_generate_lib_c(&ctx) != 0) rv = -1; } } else { rv = -1; } mem_buffer_clear(&buffer); dr_metalib_builder_free(ctx.m_builder); return rv; }
const char * PrintPathTest::path(const char * p, const char * r) { EXPECT_TRUE(m_root) << "root not set!"; cfg_t input = cfg_find_cfg(m_root, p); EXPECT_TRUE(input) << "input path " << p << " not exist"; cfg_t to = 0; if (r) { to = cfg_find_cfg(m_root, r); EXPECT_TRUE(input) << "root path " << r << " not exist"; } struct mem_buffer buffer; mem_buffer_init(&buffer, t_tmp_allocrator()); return cfg_path(&buffer, input, to); }
static int do_generate_h(cpe_dr_generate_ctx_t ctx) { struct dr_metalib_source_it source_it; dr_metalib_source_t source; struct mem_buffer buffer; struct write_stream_file stream; int i; FILE * fp; int rv; mem_buffer_init(&buffer, 0); rv = 0; for(i = 0; i < o_h->count; ++i) { dr_metalib_builder_sources(&source_it, ctx->m_builder); while((source = dr_metalib_source_next(&source_it))) { const char * file_name; if (dr_metalib_source_from(source) != dr_metalib_source_from_user) continue; file_name = dr_metalib_source_file(source); if (file_name == NULL) continue; mem_buffer_clear_data(&buffer); mem_buffer_strcat(&buffer, o_h->filename[i]); mem_buffer_strcat(&buffer, "/"); file_name_append_base(&buffer, file_name); mem_buffer_strcat(&buffer, ".h"); fp = file_stream_open((char *)mem_buffer_make_continuous(&buffer, 0), "w", ctx->m_em); if (fp == NULL) { rv = -1; continue; } write_stream_file_init(&stream, fp, ctx->m_em); cpe_dr_generate_h((write_stream_t)&stream, source, ctx); file_stream_close(fp, ctx->m_em); } } mem_buffer_clear(&buffer); return rv; }
dr_metalib_source_t dr_metalib_builder_add_file(dr_metalib_builder_t builder, const char * name, const char * file) { dr_metalib_source_t source; struct mem_buffer name_buffer; size_t file_len; const char * suffix; dr_metalib_source_format_t format; assert(builder); assert(file); suffix = file_name_suffix(file); if (suffix == NULL) return 0; if (strcmp(suffix, "xml") == 0) { format = dr_metalib_source_format_xml; } else { return NULL; } mem_buffer_init(&name_buffer, 0); if (name == NULL) { name = file_name_base(file, &name_buffer); if (name == NULL) { mem_buffer_clear(&name_buffer); return NULL; } } assert(name); file_len = strlen(file) + 1; source = dr_metalib_source_create(builder, name, file_len, dr_metalib_source_type_file, format, dr_metalib_source_from_user); if (source == NULL) { mem_buffer_clear(&name_buffer); return NULL; } memcpy(source + 1, file, file_len); mem_buffer_clear(&name_buffer); return source; }
void with_dr_store::t_dr_store_reset(const char * name, const char * def) { struct mem_buffer buffer; mem_buffer_init(&buffer, t_tmp_allocrator()); EXPECT_EQ( 0, dr_create_lib_from_xml_ex( &buffer, def, strlen(def), NULL)); dr_store_t dr_store = dr_store_find_or_create(m_dr_store_mgr, name); ASSERT_TRUE(dr_store) << "find or crate dr_store " << name << " fail!"; EXPECT_EQ( 0, dr_store_set_lib(dr_store, (LPDRMETALIB)mem_buffer_make_continuous(&buffer, 0), NULL, NULL)); }
void ReadTest::SetUp() { Base::SetUp(); mem_buffer_init(&m_metaLib_buffer, NULL); }
void MergeTest::SetUp() { Base::SetUp(); mem_buffer_init(&m_result_buffer, NULL); }
void BufferTest::SetUp() { Base::SetUp(); mem_buffer_init(&m_buffer, t_allocrator()); }