7
7
import itertools
8
8
import random
9
9
import socket
10
+ import string
10
11
import sys
11
12
import weakref
12
13
15
16
16
17
PAGESIZE = mmap .PAGESIZE
17
18
19
+ tagname_prefix = f'python_{ os .getpid ()} _test_mmap'
20
+ def random_tagname (length = 10 ):
21
+ suffix = '' .join (random .choices (string .ascii_uppercase , k = length ))
22
+ return f'{ tagname_prefix } _{ suffix } '
18
23
19
24
class MmapTests (unittest .TestCase ):
20
25
@@ -610,21 +615,23 @@ def test_tagname(self):
610
615
data1 = b"0123456789"
611
616
data2 = b"abcdefghij"
612
617
assert len (data1 ) == len (data2 )
618
+ tagname1 = random_tagname ()
619
+ tagname2 = random_tagname ()
613
620
614
621
# Test same tag
615
- m1 = mmap .mmap (- 1 , len (data1 ), tagname = "foo" )
622
+ m1 = mmap .mmap (- 1 , len (data1 ), tagname = tagname1 )
616
623
m1 [:] = data1
617
- m2 = mmap .mmap (- 1 , len (data2 ), tagname = "foo" )
624
+ m2 = mmap .mmap (- 1 , len (data2 ), tagname = tagname1 )
618
625
m2 [:] = data2
619
626
self .assertEqual (m1 [:], data2 )
620
627
self .assertEqual (m2 [:], data2 )
621
628
m2 .close ()
622
629
m1 .close ()
623
630
624
631
# Test different tag
625
- m1 = mmap .mmap (- 1 , len (data1 ), tagname = "foo" )
632
+ m1 = mmap .mmap (- 1 , len (data1 ), tagname = tagname1 )
626
633
m1 [:] = data1
627
- m2 = mmap .mmap (- 1 , len (data2 ), tagname = "boo" )
634
+ m2 = mmap .mmap (- 1 , len (data2 ), tagname = tagname2 )
628
635
m2 [:] = data2
629
636
self .assertEqual (m1 [:], data1 )
630
637
self .assertEqual (m2 [:], data2 )
@@ -635,17 +642,18 @@ def test_tagname(self):
635
642
@unittest .skipUnless (os .name == 'nt' , 'requires Windows' )
636
643
def test_sizeof (self ):
637
644
m1 = mmap .mmap (- 1 , 100 )
638
- tagname = "foo"
645
+ tagname = random_tagname ()
639
646
m2 = mmap .mmap (- 1 , 100 , tagname = tagname )
640
647
self .assertEqual (sys .getsizeof (m2 ),
641
648
sys .getsizeof (m1 ) + len (tagname ) + 1 )
642
649
643
650
@unittest .skipUnless (os .name == 'nt' , 'requires Windows' )
644
651
def test_crasher_on_windows (self ):
645
652
# Should not crash (Issue 1733986)
646
- m = mmap .mmap (- 1 , 1000 , tagname = "foo" )
653
+ tagname = random_tagname ()
654
+ m = mmap .mmap (- 1 , 1000 , tagname = tagname )
647
655
try :
648
- mmap .mmap (- 1 , 5000 , tagname = "foo" )[:] # same tagname, but larger size
656
+ mmap .mmap (- 1 , 5000 , tagname = tagname )[:] # same tagname, but larger size
649
657
except :
650
658
pass
651
659
m .close ()
@@ -857,7 +865,7 @@ def test_resize_succeeds_with_error_for_second_named_mapping(self):
857
865
"""
858
866
start_size = 2 * PAGESIZE
859
867
reduced_size = PAGESIZE
860
- tagname = "TEST"
868
+ tagname = random_tagname ()
861
869
data_length = 8
862
870
data = bytes (random .getrandbits (8 ) for _ in range (data_length ))
863
871
0 commit comments