1# 2# SPDX-License-Identifier: MIT 3# 4 5import os 6 7from oeqa.runtime.case import OERuntimeTestCase 8from oeqa.core.decorator.data import skipIfNotFeature 9from oeqa.runtime.decorator.package import OEHasPackage 10 11class StapTest(OERuntimeTestCase): 12 @skipIfNotFeature('tools-profile', 'Test requires tools-profile to be in IMAGE_FEATURES') 13 @OEHasPackage(['systemtap']) 14 @OEHasPackage(['gcc-symlinks']) 15 @OEHasPackage(['kernel-devsrc']) 16 def test_stap(self): 17 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])) 21 22 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) 33