blob: 480eaabf2dbd7304166b84fe61960ad12cbb34a7 [file] [log] [blame]
Brad Bishopc342db32019-05-15 21:57:59 -04001#
2# SPDX-License-Identifier: MIT
3#
4
Brad Bishop316dfdd2018-06-25 12:45:53 -04005import os
6
7from oeqa.runtime.case import OERuntimeTestCase
Brad Bishop316dfdd2018-06-25 12:45:53 -04008from oeqa.core.decorator.data import skipIfNotFeature
Brad Bishop977dc1a2019-02-06 16:01:43 -05009from oeqa.runtime.decorator.package import OEHasPackage
Brad Bishop316dfdd2018-06-25 12:45:53 -040010
11class StapTest(OERuntimeTestCase):
Andrew Geissler595f6302022-01-24 19:11:47 +000012 @skipIfNotFeature('tools-profile', 'Test requires tools-profile to be in IMAGE_FEATURES')
Brad Bishop977dc1a2019-02-06 16:01:43 -050013 @OEHasPackage(['systemtap'])
Andrew Geissler595f6302022-01-24 19:11:47 +000014 @OEHasPackage(['gcc-symlinks'])
15 @OEHasPackage(['kernel-devsrc'])
Brad Bishop316dfdd2018-06-25 12:45:53 -040016 def test_stap(self):
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000017 try:
18 cmd = 'make -j -C /usr/src/kernel scripts prepare'
19 status, output = self.target.run(cmd, 900)
20 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
Andrew Geissler595f6302022-01-24 19:11:47 +000021
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000022 cmd = 'stap -v -p4 -m stap-hello --disable-cache -DSTP_NO_VERREL_CHECK -e \'probe oneshot { print("Hello, "); println("SystemTap!") }\''
23 status, output = self.target.run(cmd, 900)
24 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
25
26 cmd = 'staprun -v -R -b1 stap-hello.ko'
27 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
28 self.assertIn('Hello, SystemTap!', output, msg='\n'.join([cmd, output]))
29 except:
30 status, dmesg = self.target.run('dmesg')
31 if status == 0:
32 print(dmesg)