Lines Matching full:schema
133 static void qmp_schema_init(QmpSchema *schema) in qmp_schema_init() argument
142 resp = qtest_qmp(qts, "{ 'execute': 'query-qmp-schema' }"); in qmp_schema_init()
145 visit_type_SchemaInfoList(qiv, NULL, &schema->list, &error_abort); in qmp_schema_init()
151 schema->hash = g_hash_table_new(g_str_hash, g_str_equal); in qmp_schema_init()
153 /* Build @schema: hash table mapping entity name to SchemaInfo */ in qmp_schema_init()
154 for (tail = schema->list; tail; tail = tail->next) { in qmp_schema_init()
155 g_hash_table_insert(schema->hash, tail->value->name, tail->value); in qmp_schema_init()
159 static SchemaInfo *qmp_schema_lookup(QmpSchema *schema, const char *name) in qmp_schema_lookup() argument
161 return g_hash_table_lookup(schema->hash, name); in qmp_schema_lookup()
164 static void qmp_schema_cleanup(QmpSchema *schema) in qmp_schema_cleanup() argument
166 qapi_free_SchemaInfoList(schema->list); in qmp_schema_cleanup()
167 g_hash_table_destroy(schema->hash); in qmp_schema_cleanup()
185 static void add_query_tests(QmpSchema *schema) in add_query_tests() argument
192 for (tail = schema->list; tail; tail = tail->next) { in add_query_tests()
202 arg_type = qmp_schema_lookup(schema, si->u.command.arg_type); in add_query_tests()
207 ret_type = qmp_schema_lookup(schema, si->u.command.ret_type); in add_query_tests()
347 QmpSchema schema; in main() local
352 qmp_schema_init(&schema); in main()
353 add_query_tests(&schema); in main()
360 qmp_schema_cleanup(&schema); in main()