Mercurial > cpython-lru_cache-weakref
diff Lib/test/test_support.py @ 39417:74d23cd04421 legacy-trunk
Concatenation on a long string breaks (SF #1526585).
| author | Armin Rigo <arigo@tunes.org> |
|---|---|
| date | Wed, 09 Aug 2006 15:37:26 +0000 |
| parents | 0a83dc3529d1 |
| children | e33625895550 13b8ad679def |
line wrap: on
line diff
--- a/Lib/test/test_support.py Wed Aug 09 14:56:33 2006 +0000 +++ b/Lib/test/test_support.py Wed Aug 09 15:37:26 2006 +0000 @@ -314,6 +314,12 @@ _1G = 1024 * _1M _2G = 2 * _1G +# Hack to get at the maximum value an internal index can take. +class _Dummy: + def __getslice__(self, i, j): + return j +MAX_Py_ssize_t = _Dummy()[:] + def set_memlimit(limit): import re global max_memuse @@ -328,7 +334,9 @@ if m is None: raise ValueError('Invalid memory limit %r' % (limit,)) memlimit = int(float(m.group(1)) * sizes[m.group(3).lower()]) - if memlimit < 2.5*_1G: + if memlimit > MAX_Py_ssize_t: + memlimit = MAX_Py_ssize_t + if memlimit < _2G - 1: raise ValueError('Memory limit %r too low to be useful' % (limit,)) max_memuse = memlimit @@ -371,6 +379,17 @@ return wrapper return decorator +def bigaddrspacetest(f): + """Decorator for tests that fill the address space.""" + def wrapper(self): + if max_memuse < MAX_Py_ssize_t: + if verbose: + sys.stderr.write("Skipping %s because of memory " + "constraint\n" % (f.__name__,)) + else: + return f(self) + return wrapper + #======================================================================= # Preliminary PyUNIT integration.
