Lines Matching refs:ty
28 def gen_rand_init(ty, v, indent = " ", parent = None): argument
30 if isinstance(ty, idl.Enumeration):
31 s += "%s = %s;\n" % (ty.pass_arg(v, parent is None), randomize_enum(ty))
32 elif isinstance(ty, idl.Array):
35 s += "%s = test_rand(8);\n" % (parent + ty.lenvar.name)
37 (v, parent + ty.lenvar.name, v)
41 s += " for (i=0; i<%s; i++)\n" % (parent + ty.lenvar.name)
42 s += gen_rand_init(ty.elem_type, v+"[i]",
45 elif isinstance(ty, idl.KeyedUnion):
48 s += gen_rand_init(ty.keyvar.type, parent + ty.keyvar.name, indent, parent)
49 s += "switch (%s) {\n" % (parent + ty.keyvar.name)
50 for f in ty.fields:
51 (nparent,fexpr) = ty.member(v, f, parent is None)
57 elif isinstance(ty, idl.Struct) \
58 and (parent is None or ty.json_gen_fn is None):
59 for f in [f for f in ty.fields if not f.const]:
60 (nparent,fexpr) = ty.member(v, f, parent is None)
62 elif hasattr(ty, "rand_init") and ty.rand_init is not None:
63 s += "%s(%s);\n" % (ty.rand_init,
64 ty.pass_arg(v, isref=parent is None,
66 elif ty.typename in ["libxl_uuid", "libxl_mac", "libxl_hwcap", "libxl_ms_vm_genid"]:
68 elif ty.typename in ["libxl_domid", "libxl_devid"] or isinstance(ty, idl.Number):
70 (ty.pass_arg(v, parent is None),
71 ty.pass_arg(v, parent is None))
72 elif ty.typename in ["bool"]:
74 elif ty.typename in ["libxl_defbool"]:
76 elif ty.typename in ["char *"]:
78 elif ty.private:
80 elif ty.typename in handcoded:
81 raise Exception("Gen for handcoded %s" % ty.typename)
83 raise Exception("Cannot randomly init %s" % ty.typename)
221 for ty in builtins + types:
222 if isinstance(ty, idl.Number): continue
223 if ty.typename not in handcoded:
225 (ty.typename,
226 ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
228 (ty.typename,
229 ty.make_arg("p", passby=idl.PASS_BY_REFERENCE)))
231 f.write(gen_rand_init(ty, "p"))
234 ty.rand_init = "%s_rand_init" % ty.typename
241 for ty in types:
243 (ty.typename, ty.typename, ty.typename))
261 for ty in [t for t in types if t.json_gen_fn is not None]:
262 arg = ty.typename + "_val"
263 f.write(" %s_rand_init(%s);\n" % (ty.typename, \
264 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
265 if not isinstance(ty, idl.Enumeration):
268 f.write(" %s_init(%s_new);\n" % (ty.typename, \
269 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
272 (ty.typename, ty.pass_arg(arg, isref=False)))
273 f.write(" printf(\"%%s: %%s\\n\", \"%s\", s);\n" % ty.typename)
276 (ty.typename, ty.typename))
279 (ty.typename, ty.pass_arg(arg, isref=False)))
288 if ty.dispose_fn is not None:
290 f.write(" %s(&%s_val);\n" % (ty.dispose_fn, ty.typename))
292 f.write(" %s(&%s_val_new);\n" % (ty.dispose_fn, ty.typename))
299 for ty in [t for t in types if t.copy_fn is not None]:
300 f.write(" printf(\"Testing %s_copy, \");\n" % ty.typename)
301 arg = ty.typename + "_val"
302 f.write(" %s_init(%s);\n" % (ty.typename, \
303 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
304 f.write(" %s_rand_init(%s);\n" % (ty.typename, \
305 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
306 f.write(" %s_init(%s_new);\n" % (ty.typename, \
307 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
308 f.write(" %s_copy(ctx, %s_new, %s);\n" % (ty.typename, \
309 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE), \
310 ty.pass_arg(arg, isref=False, passby=idl.PASS_BY_REFERENCE)))
312 (ty.typename, ty.pass_arg(arg, isref=False)))
315 (ty.typename, ty.pass_arg(arg, isref=False)))
319 % ty.typename)
326 if ty.dispose_fn is not None:
327 f.write(" %s(&%s_val);\n" % (ty.dispose_fn, ty.typename))
328 f.write(" %s(&%s_val_new);\n" % (ty.dispose_fn, ty.typename))
336 for ty in [t for t in types if isinstance(t,idl.Enumeration)]:
337 f.write(" printf(\"%s -- to string:\\n\");\n" % (ty.typename))
338 for v in ty.values:
341 (v.valuename, v.name, ty.typename, v.name))
344 f.write(" printf(\"%s -- to JSON:\\n\");\n" % (ty.typename))
345 for v in ty.values:
347 (ty.typename, v.name))
355 f.write(" printf(\"%s -- from string:\\n\");\n" % (ty.typename))
356 for v in [v.valuename for v in ty.values] + ["AN INVALID VALUE"]:
358 f.write(" %s_val = -1;\n" % (ty.typename))
360 (ty.typename, n, ty.typename))
364 (v, n, ty.typename))