コード例 #1
0
 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)")
コード例 #2
0
 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)")
コード例 #3
0
    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
コード例 #4
0
    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