On 07/08/11 01:33, Brock Pytlik wrote:
Webrev:
https://cr.opensolaris.org/action/browse/pkg/bpytlik/parallel-test-v1

Bugs:
18636 a single test suite run should be parallelizable
18571 test suite uses obsolete unittest function makeSuite
18616 fakeroot_repo should die

src/setup.py:
  line 708: maybe 'jobs' instead?

  lines 772, 811: docstring so we know the purpose?

  lines 1230-1256: some comments would be helpful

  line 1416: s/not/no/

  line 1429: s/esimate/estimate/

  lines 1479-1485: space after ':' in strings please

-------

So after applying the patch to gate tip, there are some regressions / things I noticed:

  * output from a simple 'sudo python run.py -v' is no longer updated
    as each test runs, instead it appears to be updated only after
    each unit test (e.g. api.t_version) runs; this leaves the user
    sitting a long time without seeing any progress output

  * when I interrupted the test run above, I got this traceback:

^C
# Ran 158 tests in 178.591s - skipped 0 tests.
Traceback (most recent call last):

  File "/usr/lib/python2.6/multiprocessing/queues.py", line 242, in _feed
    send(obj)
IOError: [Errno 4] Interrupted system call
All spawned processes should be terminated, now cleaning up directories.
Directories successfully removed.

  * i also noticed that after the above, I was left with a zero-length
    test log file named /tmp/tmpHQRcRv.pkg-test.log

  * if I run just a single unit test successfully, I still see a
    zero-length log flie on exist such as /tmp/tmpVclAYf.pkg-test.log;
    I realise the earlier log message said it was logging there, but
    it never seems to contain anything?

* I then did another test run with -j 16 and interrupted it after a while and saw a mammoth traceback that basically repeated this:

...
Process Process-27:
  File "/usr/lib/python2.6/multiprocessing/queues.py", line 89, in get
Traceback (most recent call last):
    self._rlock.acquire()
KeyboardInterrupt
  File "/usr/lib/python2.6/multiprocessing/queues.py", line 89, in get
    test_suite = inq.get()
  File "/usr/lib/python2.6/multiprocessing/queues.py", line 89, in get
    self._rlock.acquire()
KeyboardInterrupt
    self._rlock.acquire()
KeyboardInterrupt
Process Process-32:
Traceback (most recent call last):
File "/usr/lib/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "./pkg5unittest.py", line 1235, in q_run
    test_suite = inq.get()
  File "/usr/lib/python2.6/multiprocessing/queues.py", line 89, in get
    self._rlock.acquire()
KeyboardInterrupt
Process Process-23:
    test_suite = inq.get()
    self._target(*self._args, **self._kwargs)
  File "./pkg5unittest.py", line 1235, in q_run
    test_suite = inq.get()
  File "/usr/lib/python2.6/multiprocessing/queues.py", line 89, in get
    self._rlock.acquire()
KeyboardInterrupt
    test_suite = inq.get()
  File "/usr/lib/python2.6/multiprocessing/queues.py", line 89, in get
    self._rlock.acquire()
KeyboardInterrupt
  File "/usr/lib/python2.6/multiprocessing/queues.py", line 89, in get
Traceback (most recent call last):

  * when i cancelled the above test run, I also noticed some empty
    directories hung around (three to be precise, in my case named
    /tmp/tmpFyGS6Z, /tmp/tmpJG0SnH, /tmp/tmpjFImyq.  If it helps,
    all three had an owner group of noaccess:noaccess, so I suspect
    a bug with cleanup when dealing with tests that use su_wrap.

  * I then ran the tests again with -j4 and ^C'd them after a few
    minutes, and got a message about a traceback, but no actual
    traceback:

# logging to /tmp/tmpklqfAK.pkg-test.log
^CAll spawned processes should be terminated, now cleaning up directories.
Directories successfully removed.
Traceback (most recent call last):


-Shawn
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to