1#
2# Copyright OpenEmbedded Contributors
3#
4# SPDX-License-Identifier: MIT
5#
6
7# This test should cover https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=284
8# testcase. Image under test must have meta-skeleton layer in bblayers and
9# IMAGE_INSTALL:append = " service" in local.conf
10from oeqa.runtime.case import OERuntimeTestCase
11from oeqa.core.decorator.depends import OETestDepends
12from oeqa.core.decorator.data import skipIfDataVar
13from oeqa.runtime.decorator.package import OEHasPackage
14
15class SkeletonBasicTest(OERuntimeTestCase):
16
17    @OETestDepends(['ssh.SSHTest.test_ssh'])
18    @OEHasPackage(['service'])
19    @skipIfDataVar('VIRTUAL-RUNTIME_init_manager', 'systemd',
20                   'Not appropiate for systemd image')
21    def test_skeleton_availability(self):
22        status, output = self.target.run('ls /etc/init.d/skeleton')
23        msg = 'skeleton init script not found. Output:\n%s' % output
24        self.assertEqual(status, 0, msg=msg)
25
26        status, output =  self.target.run('ls /usr/sbin/skeleton-test')
27        msg = 'skeleton-test not found. Output:\n%s' % output
28        self.assertEqual(status, 0, msg=msg)
29
30    @OETestDepends(['skeletoninit.SkeletonBasicTest.test_skeleton_availability'])
31    def test_skeleton_script(self):
32        output1 = self.target.run("/etc/init.d/skeleton start")[1]
33        cmd = '%s | grep [s]keleton-test' % self.tc.target_cmds['ps']
34        status, output2 = self.target.run(cmd)
35        msg = ('Skeleton script could not be started:'
36               '\n%s\n%s' % (output1, output2))
37        self.assertEqual(status, 0, msg=msg)
38