[openstack-dev] [Quantum] Unit tests and memory consumption

Zhongyue Luo zhongyue.luo at gmail.com
Mon Nov 5 07:58:17 UTC 2012


This is kind of off topic but I was wondering why there are two different
methods of testing? run_tests and tox

Maybe I'm missing something but can't we just get rid of run_tests and use
only tox?


On Mon, Nov 5, 2012 at 3:05 PM, Monty Taylor <mordred at inaugust.com> wrote:

>
>
> On 11/05/2012 07:56 AM, Gary Kotton wrote:
> > On 11/04/2012 10:48 PM, Monty Taylor wrote:
> >>
> >> On 11/04/2012 03:26 PM, Gary Kotton wrote:
> >>> On 10/24/2012 03:24 PM, Gary Kotton wrote:
> >>>> On 10/24/2012 12:20 AM, Monty Taylor wrote:
> >>>>> I believe that we can address this for both run_tests and tox with
> >>>>> some
> >>>>> of the testtools/fixtures stuff clark has been playing with. We'll
> >>>>> poke
> >>>>> at it tomorrow (he's out for the day) and see if we can get an
> >>>>> approach
> >>>>> that would make everyone happy.
> >>> I tried playing around with the flags in the tox.ini file. There are
> >>> options to run this in multiple processes. There are two flags that are
> >>> of interest:
> >>>
> >>> 1. NOSE_PROCESS_RESTARTWORKER: - This is documented as follows:
> >>> "--process-restartworker
> >>>                          If set, will restart each worker process
> >>> once their
> >>>                          tests are done, this helps control memory
> leaks
> >>> from
> >>>                          killing the system.
> >>> [NOSE_PROCESS_RESTARTWORKER]"
> >>> 2. NOSE_PROCESSES: - This is documented as follows:
> >>> "--processes=NUM       Spread test run among this many processes. Set a
> >>>                          number equal to the number of processors or
> >>> cores in
> >>>                          your machine for best results.
> >>> [NOSE_PROCESSES]"
> >> So - we're moving towards using testr as the test runner _instead_ of
> >> nose. There are several reasons for this, but one of them is better
> >> support for parallelism.
> >>
> >> clarkb has been working on this for quantum - you might want to sync up
> >> with him if you're interested in helping out.
> >
> > Thanks. I have been in touch with Clark. If I understand correctly when
> > he ran parallel tests this did not reduce the amount of memory consumed.
> > This was the reason I tried to set the above flags. I was hoping for a
> > magic bullet.
>
> AH - gotcha. Yeah, magic bullet would be nice.
>
> >>> The problem that I have is that when the first variable is set nothing
> >>> is done, this is really dependent on the second. The problem when
> >>> setting the second is that I get the following exception:
> >>>
> >>> garyk at linus:~/quantum$ tox
> >>> GLOB sdist-make: /home/garyk/quantum/setup.py
> >>> py26 create: /home/garyk/quantum/.tox/py26
> >>> ERROR: InterpreterNotFound: python2.6
> >>> py27 sdist-reinst: /home/garyk/quantum/.tox/dist/quantum-2013.1.zip
> >>> py27 runtests: commands[0]
> >>>
> >>>
> /home/garyk/quantum/.tox/py27/local/lib/python2.7/site-packages/sqlalchemy/ext/declarative.py:1343:
> >>>
> >>> SAWarning: The classname 'NetworkBinding' is already in the registry of
> >>> this declarative base, mapped to<class
> >>> 'quantum.plugins.openvswitch.ovs_models_v2.NetworkBinding'>
> >>>    _as_declarative(cls, classname, cls.__dict__)
> >>>
> >>> Traceback (most recent call last):
> >>>    File ".tox/py27/bin/nosetests", line 9, in<module>
> >>>      load_entry_point('nose==1.2.1', 'console_scripts', 'nosetests')()
> >>>    File
> >>>
> "/home/garyk/quantum/.tox/py27/local/lib/python2.7/site-packages/nose/core.py",
> >>>
> >>> line 118, in __init__
> >>>      **extra_args)
> >>>    File "/usr/lib/python2.7/unittest/main.py", line 95, in __init__
> >>>      self.runTests()
> >>>    File
> >>>
> "/home/garyk/quantum/.tox/py27/local/lib/python2.7/site-packages/nose/core.py",
> >>>
> >>> line 197, in runTests
> >>>      result = self.testRunner.run(self.test)
> >>>    File
> >>>
> "/home/garyk/quantum/.tox/py27/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",
> >>>
> >>> line 357, in run
> >>>      testQueue = Queue()
> >>>    File "/usr/lib/python2.7/multiprocessing/managers.py", line 667,
> >>> in temp
> >>>      token, exp = self._create(typeid, *args, **kwds)
> >>>    File "/usr/lib/python2.7/multiprocessing/managers.py", line 565, in
> >>> _create
> >>>      conn = self._Client(self._address, authkey=self._authkey)
> >>>    File "/usr/lib/python2.7/multiprocessing/connection.py", line 175,
> in
> >>> Client
> >>>      answer_challenge(c, authkey)
> >>>    File "/usr/lib/python2.7/multiprocessing/connection.py", line 413,
> in
> >>> answer_challenge
> >>>      message = connection.recv_bytes(256)         # reject large
> message
> >>> IOError: [Errno 11] Resource temporarily unavailable
> >>>
> >>> Has anyone ever encountered something like this.
> >>> Thanks
> >>> Gary
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> OpenStack-dev mailing list
> >>> OpenStack-dev at lists.openstack.org
> >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >>>
> >> _______________________________________________
> >> OpenStack-dev mailing list
> >> OpenStack-dev at lists.openstack.org
> >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
> >
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev at lists.openstack.org
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>



-- 
*Intel SSG/SSD/SOTC/PRC/CITT*
880 Zixing Road, Zizhu Science Park, Minhang District, Shanghai, 200241,
China
+862161166500
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20121105/c845a34e/attachment.html>


More information about the OpenStack-dev mailing list