Ejemplo n.º 1
0
 def produce_into(self, builder, r):
     v, A, v_index, descr = self.field_descr(builder, r)
     while True:
         if r.random() < 0.3:
             w = ConstInt(r.random_integer())
         else:
             w = r.choice(builder.intvars)
         value = w.getint()
         if rffi.cast(lltype.Signed, rffi.cast(A.OF, value)) == value:
             break
     builder.do(self.opnum, [v, v_index, w], descr)
Ejemplo n.º 2
0
 def gen_guard(self, builder, r):
     v = r.choice(builder.intvars)
     if r.random() > 0.8:
         other = r.choice(builder.intvars)
     else:
         if r.random() < 0.75:
             value = v.getint()
         elif r.random() < 0.5:
             value = v.getint() ^ 1
         else:
             value = r.random_integer()
         other = ConstInt(value)
     op = ResOperation(self.opnum, [v, other])
     return op, (v.getint() == other.getint())