This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [patch] Add tests for atexit/on_exit firing order
On Mon, 10 Jul 2017, Paul Pluzhnikov wrote:
> On Mon, Jul 10, 2017 at 8:18 AM, Joseph Myers <joseph@codesourcery.com> wrote:
>
> >> This patch adds such test. I am using on_exit here because it
> >> conveniently allows passing an argument.
> >
> > I'd think that it would make sense to test all of atexit, on_exit,
> > at_quick_exit this way.
>
> I could be missing something, but I don't see an easy way to test
> atexit and at_quick_exit the same way due to them not taking an
> argument.
>
> To test atexit, I would have to implement separate fn1 .. fn8 and
> hard-code expected call sequence into each of them, wouldn't I?
You might have more separate functions, however the call sequence is
encoded. There are various ways with wrapper functions, macros etc. it
should be possible to share the same test structure for all the functions
(e.g. have wrappers for each function that call it with different
arguments, and have my_on_exit select such a wrapper from an array).
> That would make for a more verbose and more difficult to modify test,
> and given that all 3 functions currently share implementation, that
> seems like an overkill. Of course if later the implementation is
> un-shared, it would be nice to have a test case for each. But it seems
> unlikely to ever happen.
Every public interface should have adequate test coverage. All three are
public interfaces, so all three should have test coverage.
--
Joseph S. Myers
joseph@codesourcery.com