On 13 February 2018 at 15:11, Daniel Stone <dan...@fooishbar.org> wrote: > Hi, > > On 13 February 2018 at 15:00, Pekka Paalanen <ppaala...@gmail.com> wrote: >> On Thu, 8 Feb 2018 13:53:54 +0000 >> "Ucan, Emre (ADITG/ESB)" <eu...@de.adit-jv.com> wrote: >>> Yes I saw a similar problem when I tested previous ivi patches. >>> I run make clean & make & make check. Then it worked. >>> >>> Maybe it is releated to weston-tests-env changes from this commit: >>> https://cgit.freedesktop.org/wayland/weston/commit/?id=0707b0e5d48fa6f1ac41ea60c2adc2e6430c7425 >>> ? >> >> Daniel helped to pinpoint the cause of this failure. After the >> ivi-shell patches, we now get hmi-controller.so loaded when before it >> was not. Hmi-controller creates layers and surfaces, so it breaks tests >> that expect to be in complete control over the scene. >> >> When the controller plugins were changed to be loaded as normal weston >> plugins, the directive to load the test controller no longer overrode >> the weston-ivi.ini by default loading hmi-controller. Now they get >> loaded both, and hmi-controller init races to break the tests. >> >> Could you figure out a fix for this, please? >> >> I suppose adding a delay in the test client would make the test fail >> always, perhaps. > > I actually see the hmi-controller module being loaded in both good > (make -j8 check) and bad (make -j8 distcheck) setups. It looks like > the only difference is timing, both in terms of load and also > ordering. > > On a good run, surface_properties_changed_notification() and > surface_on_many_layer() come very early on, before > weston-ivi-shell-user-interface is ready (this appears to take > 700ms?). On a bad run, these are sequenced later. > ivi-shell-user-interface signalling ready will create a > surface-creation notification listener inside hmi-controller, which > will add surfaces to the application layer. This causes > surface_properties_changed_notification() to fail, as the layer > addition has dirtied the surface and caused > ivi_layout_commit_changes() to generate a notification for this. It > also causes surface_on_many_layer() to fail, as it is on the three > test layers as well as the ivi-shell-user-interface application layer. > The following two questions come to mind: - app bugs - using threads? ivi-shell-user-interface.c mentions pthread, but haven't looked closely - missing dependencies
Having a look reveals: - extremely convoluted test runner - dummy BACKEND variable - always headless-backend.so - the --backend, --config, --shell and/or --modules file is not part of the respective dependency chain Please take the above with a pinch of salt. HTH Emil _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel