From bdcae085f5b836c655fabf7d03e48e8cc342984b Mon Sep 17 00:00:00 2001 From: AN Long Date: Sat, 16 Sep 2023 20:46:21 +0800 Subject: [PATCH 1/5] using random to generate unique string in sys.intern test --- Lib/test/test_sys.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index f4948ceec66226..e5b3910a9b21ea 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -4,6 +4,7 @@ import locale import operator import os +import random import struct import subprocess import sys @@ -29,10 +30,6 @@ def requires_subinterpreters(meth): 'subinterpreters required')(meth) -# count the number of test runs, used to create unique -# strings to intern in test_intern() -INTERN_NUMRUNS = 0 - DICT_KEY_STRUCT_FORMAT = 'n2BI2n' class DisplayHookTest(unittest.TestCase): @@ -695,10 +692,8 @@ def test_43581(self): self.assertEqual(sys.__stdout__.encoding, sys.__stderr__.encoding) def test_intern(self): - global INTERN_NUMRUNS - INTERN_NUMRUNS += 1 self.assertRaises(TypeError, sys.intern) - s = "never interned before" + str(INTERN_NUMRUNS) + s = "never interned before" + str(random.random()) self.assertTrue(sys.intern(s) is s) s2 = s.swapcase().swapcase() self.assertTrue(sys.intern(s2) is s) @@ -716,9 +711,7 @@ def __hash__(self): @requires_subinterpreters def test_subinterp_intern_dynamically_allocated(self): - global INTERN_NUMRUNS - INTERN_NUMRUNS += 1 - s = "never interned before" + str(INTERN_NUMRUNS) + s = "never interned before" + str(random.random()) t = sys.intern(s) self.assertIs(t, s) From 1653d056d9a51dd9b26b62f066a9270beb00cd1f Mon Sep 17 00:00:00 2001 From: AN Long Date: Tue, 19 Sep 2023 19:34:07 +0800 Subject: [PATCH 2/5] remove float in intern test --- Lib/test/test_sys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index e5b3910a9b21ea..4fc7985906c008 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -693,7 +693,7 @@ def test_43581(self): def test_intern(self): self.assertRaises(TypeError, sys.intern) - s = "never interned before" + str(random.random()) + s = "never interned before" + str(random.int(10**8, 10**9)) self.assertTrue(sys.intern(s) is s) s2 = s.swapcase().swapcase() self.assertTrue(sys.intern(s2) is s) @@ -711,7 +711,7 @@ def __hash__(self): @requires_subinterpreters def test_subinterp_intern_dynamically_allocated(self): - s = "never interned before" + str(random.random()) + s = "never interned before" + str(random.int(10**8, 10**9)) t = sys.intern(s) self.assertIs(t, s) From a586b39c20d6c0d0959b3be8ce808201c47acc37 Mon Sep 17 00:00:00 2001 From: AN Long Date: Tue, 19 Sep 2023 20:52:50 +0800 Subject: [PATCH 3/5] fix test cases --- Lib/test/test_sys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 4fc7985906c008..91db5a2a75375b 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -693,7 +693,7 @@ def test_43581(self): def test_intern(self): self.assertRaises(TypeError, sys.intern) - s = "never interned before" + str(random.int(10**8, 10**9)) + s = "never interned before" + str(random.randint(10**8, 10**9)) self.assertTrue(sys.intern(s) is s) s2 = s.swapcase().swapcase() self.assertTrue(sys.intern(s2) is s) @@ -711,7 +711,7 @@ def __hash__(self): @requires_subinterpreters def test_subinterp_intern_dynamically_allocated(self): - s = "never interned before" + str(random.int(10**8, 10**9)) + s = "never interned before" + str(random.randint(10**8, 10**9)) t = sys.intern(s) self.assertIs(t, s) From 4978df98d586bd1b404a2e28944bc56d0a6fb280 Mon Sep 17 00:00:00 2001 From: AN Long Date: Tue, 19 Sep 2023 23:05:25 +0800 Subject: [PATCH 4/5] using random.randrange instead of random.randint and increase range --- Lib/test/test_sys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 91db5a2a75375b..8eea59ce88587e 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -693,7 +693,7 @@ def test_43581(self): def test_intern(self): self.assertRaises(TypeError, sys.intern) - s = "never interned before" + str(random.randint(10**8, 10**9)) + s = "never interned before" + str(random.randrange(0, 10**18)) self.assertTrue(sys.intern(s) is s) s2 = s.swapcase().swapcase() self.assertTrue(sys.intern(s2) is s) @@ -711,7 +711,7 @@ def __hash__(self): @requires_subinterpreters def test_subinterp_intern_dynamically_allocated(self): - s = "never interned before" + str(random.randint(10**8, 10**9)) + s = "never interned before" + str(random.randrange(0, 10**18)) t = sys.intern(s) self.assertIs(t, s) From 785393d0dff3a749102527f598aa320229de1008 Mon Sep 17 00:00:00 2001 From: AN Long Date: Thu, 21 Sep 2023 19:48:28 +0800 Subject: [PATCH 5/5] using 9 digits random range in intern test --- Lib/test/test_sys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 8eea59ce88587e..f15d6a115116e4 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -693,7 +693,7 @@ def test_43581(self): def test_intern(self): self.assertRaises(TypeError, sys.intern) - s = "never interned before" + str(random.randrange(0, 10**18)) + s = "never interned before" + str(random.randrange(0, 10**9)) self.assertTrue(sys.intern(s) is s) s2 = s.swapcase().swapcase() self.assertTrue(sys.intern(s2) is s) @@ -711,7 +711,7 @@ def __hash__(self): @requires_subinterpreters def test_subinterp_intern_dynamically_allocated(self): - s = "never interned before" + str(random.randrange(0, 10**18)) + s = "never interned before" + str(random.randrange(0, 10**9)) t = sys.intern(s) self.assertIs(t, s)