Lines Matching refs:ty
26 def gen_rand_init(ty, v, indent = " ", parent = None): argument
28 if isinstance(ty, idl.Enumeration):
29 s += "%s = %s;\n" % (ty.pass_arg(v, parent is None), randomize_enum(ty))
30 elif isinstance(ty, idl.Array):
33 s += "%s = test_rand(8);\n" % (parent + ty.lenvar.name)
35 (v, parent + ty.lenvar.name, v)
39 s += " for (i=0; i<%s; i++)\n" % (parent + ty.lenvar.name)
40 s += gen_rand_init(ty.elem_type, v+"[i]",
43 elif isinstance(ty, idl.KeyedUnion):
46 s += gen_rand_init(ty.keyvar.type, parent + ty.keyvar.name, indent, parent)
47 s += "switch (%s) {\n" % (parent + ty.keyvar.name)
48 for f in ty.fields:
49 (nparent,fexpr) = ty.member(v, f, parent is None)
55 elif isinstance(ty, idl.Struct) \
56 and (parent is None or ty.json_gen_fn is None):
57 for f in [f for f in ty.fields if not f.const]:
58 (nparent,fexpr) = ty.member(v, f, parent is None)
60 elif hasattr(ty, "rand_init") and ty.rand_init is not None:
61 s += "%s(%s);\n" % (ty.rand_init,
62 ty.pass_arg(v, isref=parent is None,
64 elif ty.typename in ["libxl_uuid", "libxl_mac", "libxl_hwcap", "libxl_ms_vm_genid"]:
66 elif ty.typename in ["libxl_domid", "libxl_devid"] or isinstance(ty, idl.Number):
68 (ty.pass_arg(v, parent is None),
69 ty.pass_arg(v, parent is None))
70 elif ty.typename in ["bool"]:
72 elif ty.typename in ["libxl_defbool"]:
74 elif ty.typename in ["char *"]:
76 elif ty.private:
78 elif ty.typename in handcoded:
79 raise Exception("Gen for handcoded %s" % ty.typename)
81 raise Exception("Cannot randomly init %s" % ty.typename)
219 for ty in builtins + types:
220 if isinstance(ty, idl.Number): continue
221 if ty.typename not in handcoded:
223 (ty.typename,
224 ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
226 (ty.typename,
227 ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
229 f.write(gen_rand_init(ty, "p"))
232 ty.rand_init = "%s_rand_init" % ty.typename
239 for ty in types:
241 (ty.typename, ty.typename, ty.typename))
259 for ty in [t for t in types if t.json_gen_fn is not None]:
260 arg = ty.typename + "_val"
261 f.write(" %s_rand_init(%s);\n" % (ty.typename, \
262 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
263 if not isinstance(ty, idl.Enumeration):
266 f.write(" %s_init(%s_new);\n" % (ty.typename, \
267 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
270 (ty.typename, ty.pass_arg(arg, isref=False)))
271 f.write(" printf(\"%%s: %%s\\n\", \"%s\", s);\n" % ty.typename)
274 (ty.typename, ty.typename))
277 (ty.typename, ty.pass_arg(arg, isref=False)))
286 if ty.dispose_fn is not None:
288 f.write(" %s(&%s_val);\n" % (ty.dispose_fn, ty.typename))
290 f.write(" %s(&%s_val_new);\n" % (ty.dispose_fn, ty.typename))
297 for ty in [t for t in types if t.copy_fn is not None]:
298 f.write(" printf(\"Testing %s_copy, \");\n" % ty.typename)
299 arg = ty.typename + "_val"
300 f.write(" %s_init(%s);\n" % (ty.typename, \
301 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
302 f.write(" %s_rand_init(%s);\n" % (ty.typename, \
303 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
304 f.write(" %s_init(%s_new);\n" % (ty.typename, \
305 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
306 f.write(" %s_copy(ctx, %s_new, %s);\n" % (ty.typename, \
307 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE), \
308 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
310 (ty.typename, ty.pass_arg(arg, isref=False)))
313 (ty.typename, ty.pass_arg(arg, isref=False)))
317 % ty.typename)
324 if ty.dispose_fn is not None:
325 f.write(" %s(&%s_val);\n" % (ty.dispose_fn, ty.typename))
326 f.write(" %s(&%s_val_new);\n" % (ty.dispose_fn, ty.typename))
334 for ty in [t for t in types if isinstance(t,idl.Enumeration)]:
335 f.write(" printf(\"%s -- to string:\\n\");\n" % (ty.typename))
336 for v in ty.values:
339 (v.valuename, v.name, ty.typename, v.name))
342 f.write(" printf(\"%s -- to JSON:\\n\");\n" % (ty.typename))
343 for v in ty.values:
345 (ty.typename, v.name))
353 f.write(" printf(\"%s -- from string:\\n\");\n" % (ty.typename))
354 for v in [v.valuename for v in ty.values] + ["AN INVALID VALUE"]:
356 f.write(" %s_val = -1;\n" % (ty.typename))
358 (ty.typename, n, ty.typename))
362 (v, n, ty.typename))