From 23daade028eca9287f7072a6af26871f99088fe9 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Mon, 25 Feb 2008 12:39:23 +0000 Subject: [PATCH] Merged revisions 61038,61042-61045,61047,61049-61053,61055-61057 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r61049 | christian.heimes | 2008-02-24 13:26:16 +0100 (Sun, 24 Feb 2008) | 1 line Use PY_FORMAT_SIZE_T instead of z for string formatting. Thanks Neal. ........ r61051 | mark.dickinson | 2008-02-24 19:12:36 +0100 (Sun, 24 Feb 2008) | 2 lines Remove duplicate 'import re' in decimal.py ........ r61052 | neal.norwitz | 2008-02-24 19:47:03 +0100 (Sun, 24 Feb 2008) | 11 lines Create a db_home directory with a unique name so multiple users can run the test simultaneously. The simplest thing I found that worked on both Windows and Unix was to use the PID. It's unique so should be sufficient. This should prevent many of the spurious failures of the automated tests since they run as different users. Also cleanup the directory consistenly in the tearDown methods. It would be nice if someone ensured that the directories are always created with a consistent name. ........ r61057 | christian.heimes | 2008-02-24 23:48:05 +0100 (Sun, 24 Feb 2008) | 2 lines Added dependency rules for Objects/stringlib/*.h stringobject, unicodeobject and the two formatters are rebuild whenever a header files changes ........ --- Lib/bsddb/test/test_associate.py | 16 ++++++++++++---- Lib/bsddb/test/test_basics.py | 11 +++++++---- Lib/bsddb/test/test_compare.py | 5 +++-- Lib/bsddb/test/test_cursor_pget_bug.py | 5 +++-- Lib/bsddb/test/test_dbobj.py | 9 ++++++--- Lib/bsddb/test/test_dbshelve.py | 8 ++++++-- Lib/bsddb/test/test_dbtables.py | 12 ++++++++---- Lib/bsddb/test/test_env_close.py | 12 ++++++------ Lib/bsddb/test/test_join.py | 8 ++++++-- Lib/bsddb/test/test_lock.py | 6 ++---- Lib/bsddb/test/test_misc.py | 13 ++++++++----- Lib/bsddb/test/test_pickle.py | 6 +++--- Lib/bsddb/test/test_recno.py | 17 ++++++++++------- Lib/bsddb/test/test_sequence.py | 6 +++--- Lib/bsddb/test/test_thread.py | 9 +++------ Lib/decimal.py | 3 +-- Lib/test/test_bsddb3.py | 14 ++++++++++++-- Lib/test/test_format.py | 3 ++- Lib/test/test_support.py | 9 +++++++++ Makefile.pre.in | 20 +++++++++----------- Objects/dictobject.c | 6 ++++-- Objects/listobject.c | 6 ++++-- 22 files changed, 127 insertions(+), 77 deletions(-) diff --git a/Lib/bsddb/test/test_associate.py b/Lib/bsddb/test/test_associate.py index ab7b6007806..1a32460bdd3 100644 --- a/Lib/bsddb/test/test_associate.py +++ b/Lib/bsddb/test/test_associate.py @@ -92,15 +92,23 @@ musicdata = { class AssociateErrorTestCase(unittest.TestCase): def setUp(self): self.filename = self.__class__.__name__ + '.db' - self.homeDir = tempfile.mkdtemp() + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) + self.homeDir = homeDir + try: + os.mkdir(homeDir) + except os.error: + import glob + files = glob.glob(os.path.join(self.homeDir, '*')) + for file in files: + os.remove(file) self.env = db.DBEnv() self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL) def tearDown(self): self.env.close() self.env = None - shutil.rmtree(self.homeDir) - + from test import test_support + test_support.rmtree(self.homeDir) def test00_associateDBError(self): if verbose: @@ -141,7 +149,7 @@ class AssociateTestCase(unittest.TestCase): def setUp(self): self.filename = self.__class__.__name__ + '.db' - homeDir = os.path.join(tempfile.gettempdir(), 'db_home') + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) self.homeDir = homeDir try: os.mkdir(homeDir) diff --git a/Lib/bsddb/test/test_basics.py b/Lib/bsddb/test/test_basics.py index 8d7f15d5798..77ef361c209 100644 --- a/Lib/bsddb/test/test_basics.py +++ b/Lib/bsddb/test/test_basics.py @@ -6,10 +6,10 @@ various DB flags, etc. import os import sys import errno -import shutil import string import tempfile from pprint import pprint +from test import test_support import unittest import time @@ -54,7 +54,10 @@ class BasicTestCase(unittest.TestCase): def setUp(self): if self.useEnv: - self.homeDir = tempfile.mkdtemp() + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) + self.homeDir = homeDir + test_support.rmtree(homeDir) + os.mkdir(homeDir) try: self.env = db.DBEnv() self.env.set_lg_max(1024*1024) @@ -68,7 +71,7 @@ class BasicTestCase(unittest.TestCase): tempfile.tempdir = old_tempfile_tempdir # Yes, a bare except is intended, since we're re-raising the exc. except: - shutil.rmtree(self.homeDir) + test_support.rmtree(homeDir) raise else: self.env = None @@ -92,8 +95,8 @@ class BasicTestCase(unittest.TestCase): def tearDown(self): self.d.close() if self.env is not None: + test_support.rmtree(self.homeDir) self.env.close() - shutil.rmtree(self.homeDir) ## Make a new DBEnv to remove the env files from the home dir. ## (It can't be done while the env is open, nor after it has been ## closed, so we make a new one to do it.) diff --git a/Lib/bsddb/test/test_compare.py b/Lib/bsddb/test/test_compare.py index 49aa7caba03..3e9ecce7984 100644 --- a/Lib/bsddb/test/test_compare.py +++ b/Lib/bsddb/test/test_compare.py @@ -66,7 +66,7 @@ class AbstractBtreeKeyCompareTestCase (unittest.TestCase): def setUp (self): self.filename = self.__class__.__name__ + '.db' - homeDir = os.path.join (tempfile.gettempdir(), 'db_home') + homeDir = os.path.join (tempfile.gettempdir(), 'db_home%d'%os.getpid()) self.homeDir = homeDir try: os.mkdir (homeDir) @@ -84,7 +84,8 @@ class AbstractBtreeKeyCompareTestCase (unittest.TestCase): if self.env is not None: self.env.close () self.env = None - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.homeDir) def addDataToDB (self, data): i = 0 diff --git a/Lib/bsddb/test/test_cursor_pget_bug.py b/Lib/bsddb/test/test_cursor_pget_bug.py index 32dd8a5b8b2..66821805911 100644 --- a/Lib/bsddb/test/test_cursor_pget_bug.py +++ b/Lib/bsddb/test/test_cursor_pget_bug.py @@ -14,7 +14,7 @@ class pget_bugTestCase(unittest.TestCase): db_name = 'test-cursor_pget.db' def setUp(self): - self.homeDir = os.path.join(tempfile.gettempdir(), 'db_home') + self.homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) try: os.mkdir(self.homeDir) except os.error: @@ -39,7 +39,8 @@ class pget_bugTestCase(unittest.TestCase): del self.secondary_db del self.primary_db del self.env - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.homeDir) def test_pget(self): cursor = self.secondary_db.cursor() diff --git a/Lib/bsddb/test/test_dbobj.py b/Lib/bsddb/test/test_dbobj.py index 22d46bc0280..2d0f916a879 100644 --- a/Lib/bsddb/test/test_dbobj.py +++ b/Lib/bsddb/test/test_dbobj.py @@ -2,7 +2,6 @@ import shutil import sys, os import unittest -import glob import tempfile try: @@ -20,14 +19,18 @@ class dbobjTestCase(unittest.TestCase): db_name = 'test-dbobj.db' def setUp(self): - self.homeDir = tempfile.mkdtemp() + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) + self.homeDir = homeDir + try: os.mkdir(homeDir) + except os.error: pass def tearDown(self): if hasattr(self, 'db'): del self.db if hasattr(self, 'env'): del self.env - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.homeDir) def test01_both(self): class TestDBEnv(dbobj.DBEnv): pass diff --git a/Lib/bsddb/test/test_dbshelve.py b/Lib/bsddb/test/test_dbshelve.py index 64cf59afd3b..c66c7c17b2e 100644 --- a/Lib/bsddb/test/test_dbshelve.py +++ b/Lib/bsddb/test/test_dbshelve.py @@ -262,6 +262,10 @@ class BasicEnvShelveTestCase(DBShelveTestCase): self.do_open() def do_open(self): + self.homeDir = homeDir = os.path.join( + tempfile.gettempdir(), 'db_home%d'%os.getpid()) + try: os.mkdir(homeDir) + except os.error: pass self.env = db.DBEnv() self.env.open(self.homeDir, self.envflags | db.DB_INIT_MPOOL | db.DB_CREATE) @@ -275,9 +279,9 @@ class BasicEnvShelveTestCase(DBShelveTestCase): def tearDown(self): + from test import test_support + test_support.rmtree(self.homeDir) self.do_close() - shutil.rmtree(self.homeDir) - class EnvBTreeShelveTestCase(BasicEnvShelveTestCase): diff --git a/Lib/bsddb/test/test_dbtables.py b/Lib/bsddb/test/test_dbtables.py index 149f3bd62b3..6c168bcfb98 100644 --- a/Lib/bsddb/test/test_dbtables.py +++ b/Lib/bsddb/test/test_dbtables.py @@ -20,7 +20,6 @@ # # $Id$ -import shutil import sys, os, re import pickle import tempfile @@ -43,13 +42,18 @@ class TableDBTestCase(unittest.TestCase): db_name = 'test-table.db' def setUp(self): - self.homeDir = tempfile.mkdtemp() + homeDir = tempfile.mkdtemp() + self.testHomeDir = homeDir + try: os.mkdir(homeDir) + except os.error: pass + self.tdb = dbtables.bsdTableDB( - filename='tabletest.db', dbhome=self.homeDir, create=1) + filename='tabletest.db', dbhome=homeDir, create=1) def tearDown(self): self.tdb.close() - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.testHomeDir) def test01(self): tabname = "test01" diff --git a/Lib/bsddb/test/test_env_close.py b/Lib/bsddb/test/test_env_close.py index 2ef5867bc72..fa3adad9fef 100644 --- a/Lib/bsddb/test/test_env_close.py +++ b/Lib/bsddb/test/test_env_close.py @@ -6,7 +6,6 @@ import os import shutil import sys import tempfile -import glob import unittest try: @@ -34,15 +33,16 @@ else: class DBEnvClosedEarlyCrash(unittest.TestCase): def setUp(self): - self.homeDir = tempfile.mkdtemp() - old_tempfile_tempdir = tempfile.tempdir + self.homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) + try: os.mkdir(self.homeDir) + except os.error: pass tempfile.tempdir = self.homeDir self.filename = os.path.split(tempfile.mktemp())[1] - tempfile.tempdir = old_tempfile_tempdir + tempfile.tempdir = None def tearDown(self): - shutil.rmtree(self.homeDir) - + from test import test_support + test_support.rmtree(self.homeDir) def test01_close_dbenv_before_db(self): dbenv = db.DBEnv() diff --git a/Lib/bsddb/test/test_join.py b/Lib/bsddb/test/test_join.py index 5657bd79fc0..07e7e0173b9 100644 --- a/Lib/bsddb/test/test_join.py +++ b/Lib/bsddb/test/test_join.py @@ -48,13 +48,17 @@ class JoinTestCase(unittest.TestCase): def setUp(self): self.filename = self.__class__.__name__ + '.db' - self.homeDir = tempfile.mkdtemp() + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) + self.homeDir = homeDir + try: os.mkdir(homeDir) + except os.error: pass self.env = db.DBEnv() self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL | db.DB_INIT_LOCK ) def tearDown(self): self.env.close() - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.homeDir) def test01_join(self): if verbose: diff --git a/Lib/bsddb/test/test_lock.py b/Lib/bsddb/test/test_lock.py index bbd88bdbea5..ca521de38f0 100644 --- a/Lib/bsddb/test/test_lock.py +++ b/Lib/bsddb/test/test_lock.py @@ -2,9 +2,6 @@ TestCases for testing the locking sub-system. """ -import os -from pprint import pprint -import shutil import sys import tempfile import time @@ -40,7 +37,8 @@ class LockingTestCase(unittest.TestCase): def tearDown(self): self.env.close() - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.homeDir) def test01_simple(self): diff --git a/Lib/bsddb/test/test_misc.py b/Lib/bsddb/test/test_misc.py index b7a6710c2b9..5b9ab0a61b1 100644 --- a/Lib/bsddb/test/test_misc.py +++ b/Lib/bsddb/test/test_misc.py @@ -19,14 +19,17 @@ except ImportError: class MiscTestCase(unittest.TestCase): def setUp(self): self.filename = self.__class__.__name__ + '.db' - self.homeDir = tempfile.mkdtemp() - - def tearDown(self): + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) + self.homeDir = homeDir try: - os.remove(self.filename) + os.mkdir(homeDir) except OSError: pass - shutil.rmtree(self.homeDir) + + def tearDown(self): + from test import test_support + test_support.unlink(self.filename) + test_support.rmtree(self.homeDir) def test01_badpointer(self): dbs = dbshelve.open(self.filename) diff --git a/Lib/bsddb/test/test_pickle.py b/Lib/bsddb/test/test_pickle.py index 9b413c4dfe5..01a5c456563 100644 --- a/Lib/bsddb/test/test_pickle.py +++ b/Lib/bsddb/test/test_pickle.py @@ -5,7 +5,6 @@ import pickle import tempfile import unittest import tempfile -import glob try: # For Pythons w/distutils pybsddb @@ -22,7 +21,7 @@ class pickleTestCase(unittest.TestCase): db_name = 'test-dbobj.db' def setUp(self): - homeDir = os.path.join(tempfile.gettempdir(), 'db_home') + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) self.homeDir = homeDir try: os.mkdir(homeDir) except os.error: pass @@ -32,7 +31,8 @@ class pickleTestCase(unittest.TestCase): del self.db if hasattr(self, 'env'): del self.env - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.homeDir) def _base_test_pickle_DBError(self, pickle): self.env = db.DBEnv() diff --git a/Lib/bsddb/test/test_recno.py b/Lib/bsddb/test/test_recno.py index e001b6371b1..dc15ad1d99c 100644 --- a/Lib/bsddb/test/test_recno.py +++ b/Lib/bsddb/test/test_recno.py @@ -26,14 +26,13 @@ letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' class SimpleRecnoTestCase(unittest.TestCase): def setUp(self): self.filename = tempfile.mktemp() - self.homeDir = tempfile.mkdtemp() + self.homeDir = None def tearDown(self): - try: - os.remove(self.filename) - except OSError as e: - if e.errno != errno.EEXIST: raise - shutil.rmtree(self.homeDir) + from test import test_support + test_support.unlink(self.filename) + if self.homeDir: + test_support.rmtree(self.homeDir) def test01_basic(self): d = db.DB() @@ -206,7 +205,11 @@ class SimpleRecnoTestCase(unittest.TestCase): just a line in the file, but you can set a different record delimiter if needed. """ - source = os.path.join(self.homeDir, 'test_recno.txt') + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) + self.homeDir = homeDir + source = os.path.join(homeDir, 'test_recno.txt') + if not os.path.isdir(homeDir): + os.mkdir(homeDir) f = open(source, 'w') # create the file f.close() diff --git a/Lib/bsddb/test/test_sequence.py b/Lib/bsddb/test/test_sequence.py index e630f1a58d1..fa80e7c9150 100644 --- a/Lib/bsddb/test/test_sequence.py +++ b/Lib/bsddb/test/test_sequence.py @@ -3,7 +3,6 @@ import os import shutil import sys import tempfile -import glob try: # For Pythons w/distutils pybsddb @@ -17,7 +16,7 @@ from bsddb.test.test_all import verbose class DBSequenceTest(unittest.TestCase): def setUp(self): self.int_32_max = 0x100000000 - self.homeDir = os.path.join(tempfile.gettempdir(), 'db_home') + self.homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) try: os.mkdir(self.homeDir) except os.error: @@ -42,7 +41,8 @@ class DBSequenceTest(unittest.TestCase): self.dbenv.close() del self.dbenv - shutil.rmtree(self.homeDir) + from test import test_support + test_support.rmtree(self.homeDir) def test_get(self): self.seq = db.DBSequence(self.d, flags=0) diff --git a/Lib/bsddb/test/test_thread.py b/Lib/bsddb/test/test_thread.py index 20a643bed46..7397a505594 100644 --- a/Lib/bsddb/test/test_thread.py +++ b/Lib/bsddb/test/test_thread.py @@ -5,7 +5,6 @@ import os import sys import time import errno -import shutil import tempfile from pprint import pprint from random import random @@ -47,7 +46,7 @@ class BaseThreadedTestCase(unittest.TestCase): if verbose: dbutils._deadlock_VerboseFile = sys.stdout - homeDir = os.path.join(tempfile.gettempdir(), 'db_home') + homeDir = os.path.join(tempfile.gettempdir(), 'db_home%d'%os.getpid()) self.homeDir = homeDir try: os.mkdir(homeDir) @@ -64,12 +63,10 @@ class BaseThreadedTestCase(unittest.TestCase): self.d.open(self.filename, self.dbtype, self.dbopenflags|db.DB_CREATE) def tearDown(self): + from test import test_support + test_support.rmtree(self.homeDir) self.d.close() self.env.close() - try: - shutil.rmtree(self.homeDir) - except OSError as e: - if e.errno != errno.EEXIST: raise def setEnvOpts(self): pass diff --git a/Lib/decimal.py b/Lib/decimal.py index 94a45684e88..2e89d290828 100644 --- a/Lib/decimal.py +++ b/Lib/decimal.py @@ -5202,8 +5202,7 @@ ExtendedContext = Context( ##### crud for parsing strings ############################################# -import re - +# # Regular expression used for parsing numeric strings. Additional # comments: # diff --git a/Lib/test/test_bsddb3.py b/Lib/test/test_bsddb3.py index a88b1136f1b..1f58c121c7d 100644 --- a/Lib/test/test_bsddb3.py +++ b/Lib/test/test_bsddb3.py @@ -2,11 +2,12 @@ """ Run all test cases. """ +import os import sys +import tempfile import time import unittest -import test.test_support -from test.test_support import requires, run_unittest, unlink +from test.test_support import requires, verbose, run_unittest, unlink, rmtree # When running as a script instead of within the regrtest framework, skip the # requires test, since it's obvious we want to run them. @@ -88,6 +89,15 @@ def suite(): # For invocation through regrtest def test_main(): run_unittest(suite()) + db_home = os.path.join(tempfile.gettempdir(), 'db_home') + # The only reason to remove db_home is in case if there is an old + # one lying around. This might be by a different user, so just + # ignore errors. We should always make a unique name now. + try: + rmtree(db_home) + except: + pass + rmtree('db_home%d' % os.getpid()) # For invocation as a script if __name__ == '__main__': diff --git a/Lib/test/test_format.py b/Lib/test/test_format.py index 7070286b38a..53e7d04df4c 100644 --- a/Lib/test/test_format.py +++ b/Lib/test/test_format.py @@ -234,7 +234,8 @@ test_exc('abc %a', 1, ValueError, test_exc(str(b'abc %\u3000', 'raw-unicode-escape'), 1, ValueError, "unsupported format character '?' (0x3000) at index 5") -test_exc('%d', '1', TypeError, "an integer is required") +#test_exc('%d', '1', TypeError, "an integer is required") +test_exc('%d', '1', TypeError, '%d format: a number is required, not str') test_exc('%g', '1', TypeError, "a float is required") test_exc('no format', '1', TypeError, "not all arguments converted during string formatting") diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index ba36448ec8a..4bc661945aa 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -9,6 +9,7 @@ import socket import sys import os import os.path +import shutil import warnings import unittest @@ -64,6 +65,14 @@ def unlink(filename): except OSError: pass +def rmtree(path): + try: + shutil.rmtree(path) + except OSError as e: + # Unix returns ENOENT, Windows returns ESRCH. + if e.errno not in (errno.ENOENT, errno.ESRCH): + raise + def forget(modname): '''"Forget" a module was ever imported by removing it from sys.modules and deleting any .pyc and .pyo files.''' diff --git a/Makefile.pre.in b/Makefile.pre.in index 91f791ded99..9e285bf0291 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -518,28 +518,26 @@ Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \ $(srcdir)/Objects/unicodetype_db.h BYTESTR_DEPS = Include/bytes_methods.h \ - $(srcdir)/Objects/stringlib/fastsearch.h \ $(srcdir)/Objects/stringlib/count.h \ + $(srcdir)/Objects/stringlib/ctype.h \ + $(srcdir)/Objects/stringlib/eq.h \ + $(srcdir)/Objects/stringlib/fastsearch.h \ $(srcdir)/Objects/stringlib/find.h \ $(srcdir)/Objects/stringlib/partition.h \ - $(srcdir)/Objects/stringlib/ctype.h \ - $(srcdir)/Objects/stringlib/transmogrify.h + $(srcdir)/Objects/stringlib/stringdefs.h \ + $(srcdir)/Objects/stringlib/string_format.h \ + $(srcdir)/Objects/stringlib/transmogrify.h \ + $(srcdir)/Objects/stringlib/unicodedefs.h \ Objects/stringobject.o: $(srcdir)/Objects/stringobject.c $(BYTESTR_DEPS) Objects/bytesobject.o: $(srcdir)/Objects/bytesobject.c $(BYTESTR_DEPS) Objects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c \ - $(srcdir)/Objects/stringlib/string_format.h \ - $(srcdir)/Objects/stringlib/unicodedefs.h \ - $(srcdir)/Objects/stringlib/fastsearch.h \ - $(srcdir)/Objects/stringlib/count.h \ - $(srcdir)/Objects/stringlib/find.h \ - $(srcdir)/Objects/stringlib/partition.h + $(BYTESTR_DEPS) Python/formatter_unicode.o: $(srcdir)/Python/formatter_unicode.c \ - $(srcdir)/Objects/stringlib/formatter.h - + $(BYTESTR_DEPS) ############################################################################ diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 3365c4757c1..fc2c8f0fe37 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -172,8 +172,10 @@ static size_t count_reuse = 0; static void show_alloc(void) { - fprintf(stderr, "Dict allocations: %zd\n", count_alloc); - fprintf(stderr, "Dict reuse through freelist: %zd\n", count_reuse); + fprintf(stderr, "Dict allocations: %" PY_FORMAT_SIZE_T "d\n", + count_alloc); + fprintf(stderr, "Dict reuse through freelist: %" PY_FORMAT_SIZE_T + "d\n", count_reuse); fprintf(stderr, "%.2f%% reuse rate\n\n", (100.0*count_reuse/(count_alloc+count_reuse))); } diff --git a/Objects/listobject.c b/Objects/listobject.c index d2917d2caa9..eec1c2248ce 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -72,8 +72,10 @@ static size_t count_reuse = 0; static void show_alloc(void) { - fprintf(stderr, "List allocations: %zd\n", count_alloc); - fprintf(stderr, "List reuse through freelist: %zd\n", count_reuse); + fprintf(stderr, "List allocations: %" PY_FORMAT_SIZE_T "d\n", + count_alloc); + fprintf(stderr, "List reuse through freelist: %" PY_FORMAT_SIZE_T + "d\n", count_reuse); fprintf(stderr, "%.2f%% reuse rate\n\n", (100.0*count_reuse/(count_alloc+count_reuse))); }