Fix hang when running tests on OpenBSD by skipping two tests
normalperson at yhbt.net
Mon Nov 14 22:17:44 EST 2011
Jeremy Evans <jeremyevans0 at gmail.com> wrote:
> On Mon, Nov 14, 2011 at 9:54 PM, Eric Wong <normalperson at yhbt.net> wrote:
> > Jeremy Evans <jeremyevans0 at gmail.com> wrote:
> >> This is obviously not a permanent fix, but I'm not sure why the tests
> >> are hanging, and hanging during a test is bad. I suppose you could
> >> also use a timeout, so the test fails instead of hangs. I'll be happy
> >> to test other patches to either the test suite or the library code
> >> (assuming the hang is fixable on OpenBSD).
> > I'd like to investigate why this fails.
> Makes sense. Is there something I can do to help debug?
I normally use "set -x" (using the "V=2" env for gmake should enable it)
or strace (or whatever the OpenBSD equivalent is).
Syscall tracers are *much* easier to follow under MRI 1.9.3 than 1.9.2
due to the timer-thread being non-polling. I always use "-f" to strace
nowadays to follow process/thread creations.
> > So everything under t/ (gmake test-integration) works, too?
> > I much prefer shell-based the test suite myself
> I didn't even know about that test suite till now. :)
> I started running those tests on OpenBSD. With the way the test suite
> is currently setup, it's a bit of a pain to debug, as it stops at the
> first error. So I have to:
I usually prefer to work on each problem, one-at-a-time. However,
GNU make already has a handy -k/--keep-going flag to ignore failures.
I also use "set -e" in all my shell scripts to catch errors early on.
> ruby 1.9.3 has a couple regular test failures (skipping the two hangs
> with the earlier patch):
> : 1) Error:
> : test_parse_error(HttpParserTest):
> : RuntimeError: can't set length of shared string
> : test/unit/test_http_parser.rb:350:in `headers'
> : test/unit/test_http_parser.rb:350:in `test_parse_error'
That's odd, is this with the latest version? (4.1.1)
I thought I fixed all of those issues several months ago...
> : 1) Failure:
> : test_help(ExecTest) [test/exec/test_exec.rb:319]:
> : <0> expected but was
> : <158>.
Can you dump out "test_stderr.#$$.log" just before that assertion?
More information about the mongrel-unicorn