def test_simple(self): from __pypy__ import taint, untaint, TaintError x = taint(6) x = x * 7 raises(TaintError, "if x: y = 1") t = type(x) raises(TaintError, "if t is int: y = 1") assert untaint(int, x) == 42 raises(TaintError, "untaint(float, x)")
def test_taint_atomic(self): from __pypy__ import taint, untaint, TaintError, taint_atomic x = taint(6) x *= 7 def dummy(x): if x > 40: return 5 else: return 3 dummy = taint_atomic(dummy) y = dummy(x) raises(TaintError, "if y == 3: z = 1") assert untaint(int, y) == 5