diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-04-13 21:39:40 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-05-05 16:30:44 +0300 |
commit | 82c905dc58a36aeae40b1b273a12f63fb1973cf4 (patch) | |
tree | 38caf00263451b5036435cdc36e035b25d32e623 /poky/meta/lib/oeqa/runtime/cases/weston.py | |
parent | 83ecb75644b3d677c274188f9ac0b2374d6f6925 (diff) | |
download | openbmc-82c905dc58a36aeae40b1b273a12f63fb1973cf4.tar.xz |
meta-openembedded and poky: subtree updates
Squash of the following due to dependencies among them
and OpenBMC changes:
meta-openembedded: subtree update:d0748372d2..9201611135
meta-openembedded: subtree update:9201611135..17fd382f34
poky: subtree update:9052e5b32a..2e11d97b6c
poky: subtree update:2e11d97b6c..a8544811d7
The change log was too large for the jenkins plugin
to handle therefore it has been removed. Here is
the first and last commit of each subtree:
meta-openembedded:d0748372d2
cppzmq: bump to version 4.6.0
meta-openembedded:17fd382f34
mpv: Remove X11 dependency
poky:9052e5b32a
package_ipk: Remove pointless comment to trigger rebuild
poky:a8544811d7
pbzip2: Fix license warning
Change-Id: If0fc6c37629642ee207a4ca2f7aa501a2c673cd6
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'poky/meta/lib/oeqa/runtime/cases/weston.py')
-rw-r--r-- | poky/meta/lib/oeqa/runtime/cases/weston.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/poky/meta/lib/oeqa/runtime/cases/weston.py b/poky/meta/lib/oeqa/runtime/cases/weston.py new file mode 100644 index 000000000..ac29eca6e --- /dev/null +++ b/poky/meta/lib/oeqa/runtime/cases/weston.py @@ -0,0 +1,69 @@ +# +# SPDX-License-Identifier: MIT +# + +from oeqa.runtime.case import OERuntimeTestCase +from oeqa.core.decorator.depends import OETestDepends +from oeqa.core.decorator.data import skipIfNotFeature +from oeqa.runtime.decorator.package import OEHasPackage +import threading +import time + +class WestonTest(OERuntimeTestCase): + weston_log_file = '/tmp/weston.log' + + @classmethod + def tearDownClass(cls): + cls.tc.target.run('rm %s' % cls.weston_log_file) + + @OETestDepends(['ssh.SSHTest.test_ssh']) + @OEHasPackage(['weston']) + def test_weston_running(self): + cmd ='%s | grep [w]eston-desktop-shell' % self.tc.target_cmds['ps'] + status, output = self.target.run(cmd) + msg = ('Weston does not appear to be running %s' % + self.target.run(self.tc.target_cmds['ps'])[1]) + self.assertEqual(status, 0, msg=msg) + + def get_processes_of(self, target, error_msg): + status, output = self.target.run('pidof %s' % target) + self.assertEqual(status, 0, msg='Retrieve %s (%s) processes error: %s' % (target, error_msg, output)) + return output.split(" ") + + def get_weston_command(self, cmd): + return 'export XDG_RUNTIME_DIR=/run/user/0; export WAYLAND_DISPLAY=wayland-0; %s' % cmd + + def run_weston_init(self): + self.target.run(self.get_weston_command('weston --log=%s' % self.weston_log_file)) + + def get_new_wayland_processes(self, existing_wl_processes): + try_cnt = 0 + while try_cnt < 5: + time.sleep(5 + 5*try_cnt) + try_cnt += 1 + wl_processes = self.get_processes_of('weston-desktop-shell', 'existing and new') + new_wl_processes = [x for x in wl_processes if x not in existing_wl_processes] + if new_wl_processes: + return new_wl_processes, try_cnt + + return new_wl_processes, try_cnt + + @OEHasPackage(['weston']) + def test_weston_info(self): + status, output = self.target.run(self.get_weston_command('weston-info')) + self.assertEqual(status, 0, msg='weston-info error: %s' % output) + + @OEHasPackage(['weston']) + def test_weston_can_initialize_new_wayland_compositor(self): + existing_wl_processes = self.get_processes_of('weston-desktop-shell', 'existing') + existing_weston_processes = self.get_processes_of('weston', 'existing') + + weston_thread = threading.Thread(target=self.run_weston_init) + weston_thread.start() + new_wl_processes, try_cnt = self.get_new_wayland_processes(existing_wl_processes) + existing_and_new_weston_processes = self.get_processes_of('weston', 'existing and new') + new_weston_processes = [x for x in existing_and_new_weston_processes if x not in existing_weston_processes] + for w in new_weston_processes: + self.target.run('kill -9 %s' % w) + __, weston_log = self.target.run('cat %s' % self.weston_log_file) + self.assertTrue(new_wl_processes, msg='Could not get new weston-desktop-shell processes (%s, try_cnt:%s) weston log: %s' % (new_wl_processes, try_cnt, weston_log)) |