You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-python/mpi4py/files/mpi4py-1.3.1-py3-test-backp...

82 lines
2.7 KiB

test/test_win.py | 48 +++++++++++++++++++++++++++++++++++++-----------
1 file changed, 37 insertions(+), 11 deletions(-)
diff --git a/test/test_win.py b/test/test_win.py
index 6da5c1f..7127e56 100644
--- a/test/test_win.py
+++ b/test/test_win.py
@@ -1,6 +1,30 @@
import sys
from mpi4py import MPI
import mpiunittest as unittest
+try:
+ from sys import getrefcount
+except ImportError:
+ class getrefcount(object):
+ def __init__(self, arg):
+ pass
+ def __eq__(self, other):
+ return True
+ def __add__(self, other):
+ return self
+ def __sub__(self, other):
+ return self
+
+def memzero(m):
+ n = len(m)
+ if n == 0: return
+ try:
+ zero = '\0'.encode('ascii')
+ m[0] = zero
+ except TypeError:
+ zero = 0
+ m[0] = zero
+ for i in range(n):
+ m[i] = zero
class BaseTestWin(object):
@@ -11,29 +35,31 @@ class BaseTestWin(object):
try:
self.mpi_memory = MPI.Alloc_mem(10)
self.memory = self.mpi_memory
- try:
- zero = bytearray([0])
- except NameError:
- zero = str('\0')
- self.memory[:] = zero * len(self.memory)
+ memzero(self.memory)
except MPI.Exception:
from array import array
self.mpi_memory = None
self.memory = array('B',[0]*10)
- refcnt = sys.getrefcount(self.memory)
+ refcnt = getrefcount(self.memory)
self.WIN = MPI.Win.Create(self.memory, 1, self.INFO, self.COMM)
if type(self.memory).__name__ == 'buffer':
- self.assertEqual(sys.getrefcount(self.memory), refcnt+1)
+ self.assertEqual(getrefcount(self.memory), refcnt+1)
else:
- self.assertEqual(sys.getrefcount(self.memory), refcnt)
+ if sys.version_info[:3] < (3, 3):
+ self.assertEqual(getrefcount(self.memory), refcnt)
+ else:
+ self.assertEqual(getrefcount(self.memory), refcnt+1)
def tearDown(self):
- refcnt = sys.getrefcount(self.memory)
+ refcnt = getrefcount(self.memory)
self.WIN.Free()
if type(self.memory).__name__ == 'buffer':
- self.assertEqual(sys.getrefcount(self.memory), refcnt-1)
+ self.assertEqual(getrefcount(self.memory), refcnt-1)
else:
- self.assertEqual(sys.getrefcount(self.memory), refcnt)
+ if sys.version_info[:3] < (3, 3):
+ self.assertEqual(getrefcount(self.memory), refcnt)
+ else:
+ self.assertEqual(getrefcount(self.memory), refcnt-1)
if self.mpi_memory:
MPI.Free_mem(self.mpi_memory)