Threads regression tests (was: Re: ACE Proactor and libkse)
Daniel Eischen
eischen at vigrid.com
Wed Jul 16 01:22:32 PDT 2003
On Tue, 15 Jul 2003, David Schultz wrote:
> On Wed, Jul 16, 2003, David Xu wrote:
> > Can you test my libkse patch ?
> > http://people.freebsd.org/~davidxu/libpthread_bound.diffs
> > If you can test the patch to make sure I don't break signal
> > code, then I will commit this patch.
>
> Is there interest in incrementally building a threads-related
> regression test suite in src/tools/regression? This would mean
> less breakage for people who are trying to use KSE/libthr, and an
> easy way for threads developers to be somewhat confident that
> their changes are correct. For example, two weeks ago I was
> tearing my hair out over a sigwait() problem that caused the
> following program to deadlock. Since I already bothered to
> isolate the bug, why not do the last 1% of the work and check in a
> test so that it never comes back? Thoughts?
That's why lib{c_r|pthread|thr}/test/ exists.
> #include <err.h>
> #include <signal.h>
> #include <stdlib.h>
>
> int main() {
>
> sigset_t mask;
> int sig;
>
> sigemptyset(&mask);
> sigaddset(&mask, SIGALRM);
> if (sigprocmask(SIG_BLOCK, &mask, NULL) < 0)
> err(1, "sigprocmask");
>
> if (raise(SIGALRM) < 0)
> err(1, "raise");
>
> if (sigwait(&mask, &sig) < 0)
> err(1, "sigwait");
>
> return (0);
> }
This seems to be kernel bug (if it is a bug). If you build
it without linking any of the threads libraries it still
exits the program without sigwait receiving the signal.
--
Dan Eischen
More information about the freebsd-threads
mailing list