ZODB3 in PyPy ============= Testing the ZODB3 in a PyPy virtual environment. Aroldo Souza-Leite 2012-03-02 Ubuntu Lucid Lynx Verifying the virtual environment --------------------------------- .. code-block:: bash (tmp-env-pypy)aroldo@aroldo-laptop:~$ env |grep ENV VIRTUAL_ENV=/home/aroldo/tmp-env-pypy PIP_ENVIRONMENT=/home/aroldo/tmp-env-pypy (tmp-env-pypy)aroldo@aroldo-laptop:~$ python -v Python 2.7.2 (2881f17e1ffc, Mar 02 2012, 04:41:40) [PyPy 1.8.1-dev0 with GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. executing the Python startup file: "~/.pystartup" And now for something completely different: ``The migration to mercurial is completed! http://bitbucket.org/pypy/pypy'' Installing ZODB3 ---------------- .. code-block:: bash (tmp-env-pypy)aroldo@aroldo-laptop:~$ pip install zodb3 Downloading/unpacking zodb3 Downloading ZODB3-3.10.5.tar.gz (706Kb): 706Kb downloaded Running setup.py egg_info for package zodb3 Downloading/unpacking transaction>=1.1.0 (from zodb3) Downloading transaction-1.2.0.tar.gz (42Kb): 42Kb downloaded Running setup.py egg_info for package transaction Downloading/unpacking zc.lockfile (from zodb3) Downloading zc.lockfile-1.0.0.tar.gz Running setup.py egg_info for package zc.lockfile Downloading/unpacking ZConfig (from zodb3) Downloading ZConfig-2.9.2.tar.gz (261Kb): 261Kb downloaded Running setup.py egg_info for package ZConfig Downloading/unpacking zdaemon (from zodb3) Downloading zdaemon-2.0.4.tar.gz (42Kb): 42Kb downloaded Running setup.py egg_info for package zdaemon Downloading/unpacking zope.event (from zodb3) Downloading zope.event-3.5.1.tar.gz Running setup.py egg_info for package zope.event Downloading/unpacking zope.interface (from zodb3) Downloading zope.interface-3.8.0.tar.gz (111Kb): 111Kb downloaded Running setup.py egg_info for package zope.interface Requirement already satisfied (use --upgrade to upgrade): setuptools in ./tmp-e nv-pypy/site-packages/setuptools-0.6c11-py2.7.egg (from zc.lockfile->zodb3) Installing collected packages: zodb3, transaction, zc.lockfile, ZConfig, zdaemo n, zope.event, zope.interface Running setup.py install for zodb3 building 'BTrees._OOBTree' extension cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/BTrees /_OOBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_OOBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_OOBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_OOBTree.pypy-18.so building 'BTrees._IOBTree' extension cc -fPIC -Wimplicit -DEXCLUDE_INTSET_SUPPORT -Isrc -I/home/aroldo/tmp-env-p ypy/include -c src/BTrees/_IOBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_I OBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_IOBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_IOBTree.pypy-18.so building 'BTrees._OIBTree' extension cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/BTrees /_OIBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_OIBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_OIBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_OIBTree.pypy-18.so building 'BTrees._IIBTree' extension cc -fPIC -Wimplicit -DEXCLUDE_INTSET_SUPPORT -Isrc -I/home/aroldo/tmp-env-p ypy/include -c src/BTrees/_IIBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_I IBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_IIBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_IIBTree.pypy-18.so building 'BTrees._IFBTree' extension cc -fPIC -Wimplicit -DEXCLUDE_INTSET_SUPPORT -Isrc -I/home/aroldo/tmp-env-p ypy/include -c src/BTrees/_IFBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_I FBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_IFBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_IFBTree.pypy-18.so building 'BTrees._fsBTree' extension cc -fPIC -Wimplicit -DEXCLUDE_INTSET_SUPPORT -Isrc -I/home/aroldo/tmp-env-p ypy/include -c src/BTrees/_fsBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_f sBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_fsBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_fsBTree.pypy-18.so building 'BTrees._LOBTree' extension cc -fPIC -Wimplicit -DEXCLUDE_INTSET_SUPPORT -Isrc -I/home/aroldo/tmp-env-p ypy/include -c src/BTrees/_LOBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_L OBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_LOBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_LOBTree.pypy-18.so building 'BTrees._OLBTree' extension cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/BTrees /_OLBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_OLBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_OLBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_OLBTree.pypy-18.so building 'BTrees._LLBTree' extension cc -fPIC -Wimplicit -DEXCLUDE_INTSET_SUPPORT -Isrc -I/home/aroldo/tmp-env-p ypy/include -c src/BTrees/_LLBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_L LBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_LLBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_LLBTree.pypy-18.so building 'BTrees._LFBTree' extension cc -fPIC -Wimplicit -DEXCLUDE_INTSET_SUPPORT -Isrc -I/home/aroldo/tmp-env-p ypy/include -c src/BTrees/_LFBTree.c -o build/temp.linux-i686-2.7/src/BTrees/_L FBTree.o cc -shared build/temp.linux-i686-2.7/src/BTrees/_LFBTree.o -o build/lib.lin ux-i686-2.7/BTrees/_LFBTree.pypy-18.so building 'persistent.cPersistence' extension cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/persis tent/cPersistence.c -o build/temp.linux-i686-2.7/src/persistent/cPersistence.o src/persistent/cPersistence.c: In function ���Per_set_oid���: src/persistent/cPersistence.c:998: warning: passing argument 3 of ���PyObject _Cmp��� from incompatible pointer type /home/aroldo/tmp-env-pypy/include/pypy_decl.h:270: note: expected ���long int *��� but argument is of type ���int *��� src/persistent/cPersistence.c: In function ���Per_set_jar���: src/persistent/cPersistence.c:1034: warning: passing argument 3 of ���PyObjec t_Cmp��� from incompatible pointer type /home/aroldo/tmp-env-pypy/include/pypy_decl.h:270: note: expected ���long int *��� but argument is of type ���int *��� cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/persis tent/ring.c -o build/temp.linux-i686-2.7/src/persistent/ring.o cc -shared build/temp.linux-i686-2.7/src/persistent/cPersistence.o build/te mp.linux-i686-2.7/src/persistent/ring.o -o build/lib.linux-i686-2.7/persistent/ cPersistence.pypy-18.so building 'persistent.cPickleCache' extension cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/persis tent/cPickleCache.c -o build/temp.linux-i686-2.7/src/persistent/cPickleCache.o cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/persis tent/ring.c -o build/temp.linux-i686-2.7/src/persistent/ring.o cc -shared build/temp.linux-i686-2.7/src/persistent/cPickleCache.o build/te mp.linux-i686-2.7/src/persistent/ring.o -o build/lib.linux-i686-2.7/persistent/ cPickleCache.pypy-18.so building 'persistent.TimeStamp' extension cc -fPIC -Wimplicit -Isrc -I/home/aroldo/tmp-env-pypy/include -c src/persis tent/TimeStamp.c -o build/temp.linux-i686-2.7/src/persistent/TimeStamp.o cc -shared build/temp.linux-i686-2.7/src/persistent/TimeStamp.o -o build/li b.linux-i686-2.7/persistent/TimeStamp.pypy-18.so Installing fsdump script to /home/aroldo/tmp-env-pypy/bin Installing fstail script to /home/aroldo/tmp-env-pypy/bin Installing zeopack script to /home/aroldo/tmp-env-pypy/bin Installing runzeo script to /home/aroldo/tmp-env-pypy/bin Installing fsrefs script to /home/aroldo/tmp-env-pypy/bin Installing zeoctl script to /home/aroldo/tmp-env-pypy/bin Installing repozo script to /home/aroldo/tmp-env-pypy/bin Installing fsoids script to /home/aroldo/tmp-env-pypy/bin Installing zeopasswd script to /home/aroldo/tmp-env-pypy/bin Running setup.py install for transaction Running setup.py install for zc.lockfile Skipping installation of /home/aroldo/tmp-env-pypy/site-packages/zc/__init_ _.py (namespace package) Installing /home/aroldo/tmp-env-pypy/site-packages/zc.lockfile-1.0.0-py2.7- nspkg.pth Running setup.py install for ZConfig changing mode of build/scripts-2.7/zconfig from 644 to 755 changing mode of build/scripts-2.7/zconfig_schema2html from 644 to 755 changing mode of /home/aroldo/tmp-env-pypy/bin/zconfig_schema2html to 755 changing mode of /home/aroldo/tmp-env-pypy/bin/zconfig to 755 Running setup.py install for zdaemon Installing zdaemon script to /home/aroldo/tmp-env-pypy/bin Running setup.py install for zope.event Skipping installation of /home/aroldo/tmp-env-pypy/site-packages/zope/__ini t__.py (namespace package) Installing /home/aroldo/tmp-env-pypy/site-packages/zope.event-3.5.1-py2.7-n spkg.pth Running setup.py install for zope.interface Skipping installation of /home/aroldo/tmp-env-pypy/site-packages/zope/__ini t__.py (namespace package) Installing /home/aroldo/tmp-env-pypy/site-packages/zope.interface-3.8.0-py2 .7-nspkg.pth Successfully installed zodb3 transaction zc.lockfile ZConfig zdaemon zope.event zope.interface Cleaning up... Installing zope.testing ----------------------- .. code-block:: bash (tmp-env-pypy)aroldo@aroldo-laptop:~$ pip install zope.testing Downloading/unpacking zope.testing Downloading zope.testing-4.1.1.tar.gz (50Kb): 50Kb downloaded Running setup.py egg_info for package zope.testing warning: no files found matching '*.test' under directory 'src' warning: no files found matching 'sampletests' under directory 'src' Requirement already satisfied (use --upgrade to upgrade): setuptools in ./tmp-e nv-pypy/site-packages/setuptools-0.6c11-py2.7.egg (from zope.testing) Downloading/unpacking zope.exceptions (from zope.testing) Downloading zope.exceptions-3.6.1.zip Running setup.py egg_info for package zope.exceptions Requirement already satisfied (use --upgrade to upgrade): zope.interface in ./t mp-env-pypy/site-packages (from zope.testing) Installing collected packages: zope.testing, zope.exceptions Running setup.py install for zope.testing warning: no files found matching '*.test' under directory 'src' warning: no files found matching 'sampletests' under directory 'src' Skipping installation of /home/aroldo/tmp-env-pypy/site-packages/zope/__ini t__.py (namespace package) Installing /home/aroldo/tmp-env-pypy/site-packages/zope.testing-4.1.1-py2.7 -nspkg.pth Running setup.py install for zope.exceptions Skipping installation of /home/aroldo/tmp-env-pypy/site-packages/zope/__ini t__.py (namespace package) Installing /home/aroldo/tmp-env-pypy/site-packages/zope.exceptions-3.6.1-py 2.7-nspkg.pth Successfully installed zope.testing zope.exceptions Cleaning up... Running the tests ----------------- Calling the testZODB.py ~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash (tmp-env-pypy)aroldo@aroldo-laptop:~$ python -v Python 2.7.2 (2881f17e1ffc, Mar 02 2012, 04:41:40) [PyPy 1.8.1-dev0 with GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. executing the Python startup file: "~/.pystartup" And now for something completely different: ``what we achieved today: we discussed the ponyness of time-machines'' (tmp-env-pypy)aroldo@aroldo-laptop:~$ python tmp-env-pypy/site-packages/ZODB/te sts/testZODB.py Test results ~~~~~~~~~~~~ output:: EEEEEEEEEE ====================================================================== ERROR: checkExplicitTransactionManager (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 159, in checkE xplicitTransactionManager File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 50 , in has_key def has_key(self, key): return key in self.data File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkExportImport (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 54, in checkEx portImport File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 46, in populat e File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkExportImportAborted (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 122, in checkE xportImportAborted File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 54, in checkEx portImport File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 46, in populat e File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkFailingCommitSticks (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 289, in checkF ailingCommitSticks File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkFailingSavepointSticks (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 334, in checkF ailingSavepointSticks File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkMultipleUndoInOneTransaction (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 403, in checkM ultipleUndoInOneTransaction File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkResetCache (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 129, in checkR esetCache File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 46, in populat e File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkResetCachesAPI (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 139, in checkR esetCachesAPI File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 46, in populat e File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkSavepointDoesntGetInvalidations (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 204, in checkS avepointDoesntGetInvalidations File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ====================================================================== ERROR: checkTxnBeginImpliesAbort (__main__.ZODBTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "tmp-env-pypy/site-packages/ZODB/tests/testZODB.py", line 257, in checkT xnBeginImpliesAbort File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 63 , in __setitem__ self.__super_setitem(key, v) File "/home/aroldo/tmp-env-pypy/lib-python/modified-2.7/UserDict.py", line 29 , in __setitem__ def __setitem__(self, key, item): self.data[key] = item File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 30 , in __get__ return self.func(inst) File "/home/aroldo/tmp-env-pypy/site-packages/persistent/mapping.py", line 99 , in data data = self.__dict__.pop('_container') KeyError: '_container' ---------------------------------------------------------------------- Ran 10 tests in 0.439s FAILED (errors=10) .. code-block:: bash (tmp-env-pypy)aroldo@aroldo-laptop:~$