From 85e408d451e2320afc38aad5397800211aaef087 Mon Sep 17 00:00:00 2001 From: Guillaume Valadon <guillaume.valadon@ssi.gouv.fr> Date: Wed, 4 Jan 2017 15:36:51 +0100 Subject: [PATCH] Fix CPython & pypy random outputs --- scapy/volatile.py | 13 +++++++++++++ test/regression.uts | 18 +++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/scapy/volatile.py b/scapy/volatile.py index 116bf860..152eb5bf 100644 --- a/scapy/volatile.py +++ b/scapy/volatile.py @@ -97,6 +97,12 @@ class RandNum(RandField): def _fix(self): return random.randrange(self.min, self.max+1) + def __int__(self): + return int(self._fix()) + + def __str__(self): + return str(self._fix()) + class RandNumGamma(RandField): def __init__(self, alpha, beta): self.alpha = alpha @@ -229,6 +235,9 @@ class RandTermString(RandString): self.term = term def _fix(self): return RandString._fix(self)+self.term + + def __str__(self): + return str(self._fix()) @@ -517,6 +526,7 @@ class RandSingNum(RandSingularity): if not mn <= i <= mx: sing.remove(i) self._choice = list(sing) + self._choice.sort() class RandSingByte(RandSingNum): @@ -607,6 +617,9 @@ class RandSingString(RandSingularity): r"\\myserver\share", "foo.exe:", "foo.exe\\", ] + + def __str__(self): + return str(self._fix()) class RandPool(RandField): diff --git a/test/regression.uts b/test/regression.uts index 506adfc4..7739a02b 100644 --- a/test/regression.uts +++ b/test/regression.uts @@ -7413,10 +7413,11 @@ print r6 == "2001:0db8::9ccb" random.seed(0x2807) rm = RandMAC() -rm == "12:5a:ef:f5:91:44" +rm == "d2:12:e4:5a:db:ef" rm = RandMAC("00:01:02:03:04:0-7") -rm == "00:01:02:03:04:01" +rm == "00:01:02:03:04:05" + = RandOID @@ -7440,22 +7441,25 @@ print re == "vmuvr @ 906 g" random.seed(0x2807) cb = CorruptedBytes("ABCDE", p=0.5) -sane(cb) == "pB..E" +sane(str(cb)) == ".BCD)" cb = CorruptedBits("ABCDE", p=0.2) -sane(cb) == "E.Kl`" +sane(str(cb)) == "ECk@Y" = Rand* random.seed(0x2807) rs = RandSingNum(-28, 07) -print rs == -7 +rs == 3 +random.seed(0x2807) rss = RandSingString() rss == "CON:" +random.seed(0x2807) rek = RandEnumKeys({'a': 1, 'b': 2}) -str(rek) == 'b' +rek == 'b' +random.seed(0x2807) rts = RandTermString(4, "scapy") -sane(str(rts)) == "[...scapy" +sane(str(rts)) == "...[scapy" -- GitLab