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