blob: 3be41621088014849b519affbd07411938ef6ed4 [file] [log] [blame]
Brad Bishopc342db32019-05-15 21:57:59 -04001#
Patrick Williams92b42cb2022-09-03 06:53:57 -05002# Copyright OpenEmbedded Contributors
3#
Brad Bishopc342db32019-05-15 21:57:59 -04004# SPDX-License-Identifier: MIT
5#
6
Brad Bishop316dfdd2018-06-25 12:45:53 -04007import os
8
9from oeqa.runtime.case import OERuntimeTestCase
Brad Bishop316dfdd2018-06-25 12:45:53 -040010from oeqa.core.decorator.data import skipIfNotFeature
Brad Bishop977dc1a2019-02-06 16:01:43 -050011from oeqa.runtime.decorator.package import OEHasPackage
Brad Bishop316dfdd2018-06-25 12:45:53 -040012
13class StapTest(OERuntimeTestCase):
Andrew Geissler595f6302022-01-24 19:11:47 +000014 @skipIfNotFeature('tools-profile', 'Test requires tools-profile to be in IMAGE_FEATURES')
Brad Bishop977dc1a2019-02-06 16:01:43 -050015 @OEHasPackage(['systemtap'])
Andrew Geissler595f6302022-01-24 19:11:47 +000016 @OEHasPackage(['gcc-symlinks'])
17 @OEHasPackage(['kernel-devsrc'])
Brad Bishop316dfdd2018-06-25 12:45:53 -040018 def test_stap(self):
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000019 try:
20 cmd = 'make -j -C /usr/src/kernel scripts prepare'
21 status, output = self.target.run(cmd, 900)
22 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
Andrew Geissler595f6302022-01-24 19:11:47 +000023
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000024 cmd = 'stap -v -p4 -m stap-hello --disable-cache -DSTP_NO_VERREL_CHECK -e \'probe oneshot { print("Hello, "); println("SystemTap!") }\''
25 status, output = self.target.run(cmd, 900)
26 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
27
28 cmd = 'staprun -v -R -b1 stap-hello.ko'
29 self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
30 self.assertIn('Hello, SystemTap!', output, msg='\n'.join([cmd, output]))
31 except:
32 status, dmesg = self.target.run('dmesg')
33 if status == 0:
34 print(dmesg)