TEST_F(BuilderBasicTest, it_basic) { dr_metalib_source_t source_a = dr_metalib_builder_add_file(m_builder, NULL, "a.xml"); dr_metalib_source_t source_b = dr_metalib_builder_add_file(m_builder, NULL, "b.xml"); struct dr_metalib_source_it it; dr_metalib_builder_sources(&it, m_builder); EXPECT_TRUE(source_a == dr_metalib_source_next(&it)); EXPECT_TRUE(source_b == dr_metalib_source_next(&it)); EXPECT_TRUE(NULL == dr_metalib_source_next(&it)); }
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; }
TEST_F(BuilderBasicTest, it_empty) { struct dr_metalib_source_it it; dr_metalib_builder_sources(&it, m_builder); EXPECT_TRUE(NULL == dr_metalib_source_next(&it)); }