""" Basic tests for general functionality. """ import fiu # Test unknown failure point. assert not fiu.fail('unknown') # Test enable/disable. fiu.enable('p1') assert fiu.fail('p1') fiu.disable('p1') assert not fiu.fail('p1') # Test enable_random. fiu.enable_random('p1', probability = 0.5) result = { True: 0, False: 0 } for i in range(1000): result[fiu.fail('p1')] += 1 assert 400 < result[True] < 600, result assert 400 < result[False] < 600, result # Test repeated enabling/disabling. fiu.enable('p1') fiu.enable('p1') assert fiu.fail('p1') fiu.disable('p1') assert not fiu.fail('p1')
""" Basic tests for general functionality. """ import fiu # Test unknown failure point. assert not fiu.fail('unknown') # Test enable/disable. fiu.enable('p1') assert fiu.fail('p1') fiu.disable('p1') assert not fiu.fail('p1') # Test enable_random. fiu.enable_random('p1', probability=0.5) result = {True: 0, False: 0} for i in range(1000): result[fiu.fail('p1')] += 1 assert 400 < result[True] < 600, result assert 400 < result[False] < 600, result # Test repeated enabling/disabling. fiu.enable('p1') fiu.enable('p1') assert fiu.fail('p1') fiu.disable('p1') assert not fiu.fail('p1')
""" Test the creation of many failure points. """ import fiu N = 1000 for i in range(N): fiu.enable(str(i)) for i in range(N): assert fiu.fail(str(i)) # Remove only half and check again; this will stress the shrinking of our data # structures. for i in range(N / 2): fiu.disable(str(i)) for i in range(N / 2, N): assert fiu.fail(str(i)) for i in range(N / 2, N): fiu.disable(str(i))
import fiu fiu.enable("a:b:c") assert fiu.fail("a:b:c") fiu.enable("a:b:*") assert fiu.fail("a:b:c") assert fiu.fail("a:b:x") assert fiu.fail("a:b:c:d") fiu.enable("a:b:*") # Test repeated enabling of a wildcard. fiu.enable("a:b:c:d") assert fiu.fail("a:b:c:d") fiu.disable("a:b:c") assert fiu.fail("a:b:c") fiu.disable("a:b:*") assert not fiu.fail("a:b:c") assert not fiu.fail("a:b:x") assert fiu.fail("a:b:c:d") fiu.disable("a:b:c:d") assert not fiu.fail("a:b:c:d") s = "x" for i in range(200): fiu.enable(s + "/*") s += "/x"
""" Tests to make sure cache invalidation works. """ import fiu # Unknown - add - fail - remove - not fail. # The initial unknown is relevant because it places a negative match in the # cache. assert not fiu.fail('p1') fiu.enable('p1') assert fiu.fail('p1') fiu.disable('p1') assert not fiu.fail('p1') # Same as above, but with wildcards. assert not fiu.fail('p2/x') fiu.enable('p2/*') assert fiu.fail('p2/x') fiu.disable('p2/*') assert not fiu.fail('p2/x')