[vlc-devel] [PATCH 1/2] tests: interrupt: Fix win32 build

Hugo Beauzée-Luyssen hugo at beauzee.fr
Thu Mar 9 11:06:55 CET 2017


On Wed, Mar 8, 2017, at 06:19 PM, Rémi Denis-Courmont wrote:
> Le keskiviikkona 8. maaliskuuta 2017, 10.57.16 EET Hugo Beauzée-Luyssen a 
> écrit :
> > ---
> >  src/test/interrupt.c | 18 +++++++++++++++++-
> >  1 file changed, 17 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/test/interrupt.c b/src/test/interrupt.c
> > index d58b52160c..463ee9dfb6 100644
> > --- a/src/test/interrupt.c
> > +++ b/src/test/interrupt.c
> > @@ -104,17 +104,32 @@ static void *test_thread_cancel(void *data)
> >      /* Test context clearing on cancellation */
> >      vlc_interrupt_set(ctx);
> >      for (;;)
> > +    {
> > +#ifndef _WIN32
> >          pause();
> > +#else
> > +        SleepEx(INFINITE, true);
> > +        vlc_testcancel();
> > +#endif
> > +    }
> > 
> >      vlc_assert_unreachable();
> >  }
> > 
> > +static void cancel_tests(void* data)
> > +{
> > +    (void)data;
> > +    assert(!"test timedout");
> > +}
> > +
> >  int main (void)
> >  {
> >      vlc_interrupt_t *ctx;
> >      vlc_thread_t th;
> > +    vlc_timer_t timer;
> > 
> > -    alarm(2);
> > +    assert(vlc_timer_create(&timer, cancel_tests, NULL) == 0);
> > +    vlc_timer_schedule(timer, false, 2 * CLOCK_FREQ, 0);
> > 
> >      ctx = vlc_interrupt_create();
> >      assert(ctx != NULL);
> > @@ -139,6 +154,7 @@ int main (void)
> >      vlc_cancel(th);
> >      vlc_join(th, NULL);
> > 
> > +    vlc_timer_destroy(timer);
> >      vlc_interrupt_destroy(ctx);
> >      vlc_sem_destroy(&sem);
> >      return 0;
> 
> We have plenty of users for alarm() and I certainly hope the plan is to
> not 
> copy-paste the same over and over, regardless of the merits of the 
> implementation.
> 
> Also depending on VLC timer before running the timer test does not sound
> like 
> such a great idea.
> 

Fair enough, I was surprised there wasn't so many but that's because
some tests are failing before we reach libvlc tests, and I forgot to
check.
I'm not sure having a compat function for tests is a good idea, I guess
we could reimplement a minimal wrapper around it in a common header,
kind of like test/libvlc/test.h
I agree that we should run the timer test before though (however, my
attempts at reordering the order of automake tests failed miserably so
far) as I don't see the point in writing code that would essentially be
the same as vlc_timer, maybe a bit easier, but still quite similar, and
untested.

Regards,


-- 
  Hugo Beauzée-Luyssen
  hugo at beauzee.fr


More information about the vlc-devel mailing list