mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-01-31 16:36:20 +00:00
test: add testutil.flip_one_bit which flips a randomly chosen bit of the input string
This commit is contained in:
parent
fe522e31a4
commit
9d14341c7d
@ -1,4 +1,5 @@
|
|||||||
import os, signal, time
|
import os, signal, time
|
||||||
|
from random import randrange
|
||||||
|
|
||||||
from twisted.internet import reactor, defer, task
|
from twisted.internet import reactor, defer, task
|
||||||
from twisted.python import failure
|
from twisted.python import failure
|
||||||
@ -12,6 +13,13 @@ def flip_bit(good, which):
|
|||||||
pieces = good[:which], good[which:which+1], good[which+1:]
|
pieces = good[:which], good[which:which+1], good[which+1:]
|
||||||
return pieces[0] + chr(ord(pieces[1]) ^ 0x01) + pieces[2]
|
return pieces[0] + chr(ord(pieces[1]) ^ 0x01) + pieces[2]
|
||||||
|
|
||||||
|
def flip_one_bit(s):
|
||||||
|
# flip one random bit of the string s
|
||||||
|
i = randrange(0, len(s))
|
||||||
|
result = s[:i] + chr(ord(s[i])^(0x01<<randrange(0, 8))) + s[i+1:]
|
||||||
|
assert result != s, "Internal error -- flip_one_bit() produced the same string as its input: %s == %s" % (result, s)
|
||||||
|
return result
|
||||||
|
|
||||||
class SignalMixin:
|
class SignalMixin:
|
||||||
# This class is necessary for any code which wants to use Processes
|
# This class is necessary for any code which wants to use Processes
|
||||||
# outside the usual reactor.run() environment. It is copied from
|
# outside the usual reactor.run() environment. It is copied from
|
||||||
|
Loading…
x
Reference in New Issue
Block a user