[PATCH weston] tests: fix a race condition in ivi-shell tests

Ucan, Emre (ADITG/ESB) eucan at de.adit-jv.com
Wed Feb 14 12:00:38 UTC 2018


Hi Pekka,


> -----Original Message-----
> From: wayland-devel [mailto:wayland-devel-
> bounces at lists.freedesktop.org] On Behalf Of Pekka Paalanen
> Sent: Mittwoch, 14. Februar 2018 12:22
> To: Ucan, Emre (ADITG/ESB)
> Cc: wayland-devel at lists.freedesktop.org
> Subject: Re: [PATCH weston] tests: fix a race condition in ivi-shell tests
> 
> On Wed, 14 Feb 2018 11:06:54 +0100
> Emre Ucan <eucan at de.adit-jv.com> wrote:
> 
> > ivi-shell tests load their own controller plugin
> > for testing purposes. Tests also uses the generated
> > weston-ivi.in config file, which causes weston to
> > load hmi-controller and its helper client.
> > Existence of hmi-controller and its helper client
> > confuses test plugins. Because they are creating
> > surfaces and layers which are not expected by
> > test plugins.
> >
> > We can start ivi-shell tests without config file
> > to solve this problem. Then, weston will not load
> > hmi-controller plugin.
> >
> > Reported-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> > Signed-off-by: Emre Ucan <eucan at de.adit-jv.com>
> > ---
> >  Makefile.am            | 16 +---------------
> >  tests/weston-tests-env |  4 ++--
> >  2 files changed, 3 insertions(+), 17 deletions(-)
> >
> > diff --git a/Makefile.am b/Makefile.am
> > index 32c9a0f..c534c56 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -30,15 +30,6 @@ ivi-shell/weston.ini : $(srcdir)/ivi-shell/weston.ini.in
> >  		-e 's|@plugin_prefix[@]||g' \
> >  		$< > $@
> >
> > -tests/weston-ivi.ini : $(srcdir)/ivi-shell/weston.ini.in
> > -	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(SED) \
> > -		-e 's|@bindir[@]|$(bindir)|g' \
> > -		-e 's|@abs_top_builddir[@]|$(abs_top_builddir)|g' \
> > -		-e 's|@abs_top_srcdir[@]|$(abs_top_srcdir)|g' \
> > -		-e 's|@libexecdir[@]|$(abs_builddir)|g' \
> > -		-e 's|@plugin_prefix[@]|$(abs_top_builddir)/.libs/|g' \
> > -		$< > $@
> > -
> >  all-local : weston.ini ivi-shell/weston.ini
> >
> >  AM_CFLAGS = $(GCC_CFLAGS)
> > @@ -56,7 +47,6 @@ AM_CPPFLAGS =
> 	\
> >
> >  CLEANFILES = weston.ini				\
> >  	ivi-shell/weston.ini			\
> > -	tests/weston-ivi.ini			\
> >  	internal-screenshot-00.png		\
> >  	$(BUILT_SOURCES)
> >
> > @@ -1238,10 +1228,6 @@ weston_tests =
> 	\
> >  	devices.weston				\
> >  	touch.weston
> >
> > -ivi_tests =
> > -
> > -$(ivi_tests) : $(builddir)/tests/weston-ivi.ini
> > -
> >  AM_TESTS_ENVIRONMENT = \
> >  	abs_builddir='$(abs_builddir)'; export abs_builddir; \
> >  	abs_top_srcdir='$(abs_top_srcdir)'; export abs_top_srcdir;
> > @@ -1472,7 +1458,7 @@ nodist_ivi_layout_test_la_SOURCES =
> 	\
> >  	protocol/weston-test-protocol.c		\
> >  	protocol/weston-test-server-protocol.h
> >
> > -ivi_tests +=					\
> > +ivi_tests =					\
> >  	ivi-shell-app.weston
> >
> >  ivi_shell_app_weston_SOURCES = tests/ivi-shell-app-test.c
> > diff --git a/tests/weston-tests-env b/tests/weston-tests-env
> > index f08270e..ac2473f 100755
> > --- a/tests/weston-tests-env
> > +++ b/tests/weston-tests-env
> > @@ -44,7 +44,7 @@ case $TEST_FILE in
> >  		WESTON_BUILD_DIR=$abs_builddir \
> >
> 	WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference
> \
> >  		$WESTON --backend=$MODDIR/$BACKEND \
> > -			--config=$abs_builddir/tests/weston-ivi.ini \
> > +			--no-config \
> >  			--shell=$SHELL_PLUGIN \
> >  			--socket=test-${TEST_NAME} \
> >  			--
> modules=$TEST_PLUGIN,$MODDIR/${TEST_FILE/.la/.so}\
> > @@ -74,7 +74,7 @@ case $TEST_FILE in
> >
> 	WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference
> \
> >  		WESTON_TEST_CLIENT_PATH=$abs_builddir/$TEST_FILE \
> >  		$WESTON --backend=$MODDIR/$BACKEND \
> > -			--config=$abs_builddir/tests/weston-ivi.ini \
> > +			--no-config \
> >  			--shell=$SHELL_PLUGIN \
> >  			--socket=test-${TEST_NAME} \
> >  			--modules=$TEST_PLUGIN \
> 
> Hi Emre,
> 
> I didn't even think of that, I thought ivi-shell, hmi-controller, or
> ivi-shell-user-interface would refuse to start without a config, but I
> see the defaults are enough to get a black screen at least.
> 
> I do wonder about launch_hmi_client_process() calling
> weston_client_start() and there strdup() with a NULL argument, but
> since nothing loads hmi-controller, that's never hit.
> 
> Another thing is that no test ever loads hmi-controller now, which
> means it is free to break without notice. I think at least
> ivi-shell-app test was supposed to load it to ensure the demo runs, but
> obviously as the test still passes, it never tested the helper client
> in any way.

ivi-shell-app only tests ivi_application protocol. It does not have any dependency to hmi-controller.
ivi-layout tests are testing ivi-layout interface. Therefore, they don't require hmi-controller also.

For testing hmi-controller, we have to implement another test application which uses ivi_hmi_controller plugin.
I will take this point to our internal TODO list.

Best Regards,
Emre

> 
> All in all, I'm fine with this patch and it does fix the test suite
> failure, so R-b me, and Daniel gave A-b on irc, so pushed:
>    eba58edc..c6e2942f  master -> master
> 
> 
> Thanks,
> pq


More information about the wayland-devel mailing list