1# Copyright (C) 2019 Armin Kuster <akuster808@gmail.com> 2# 3import re 4 5from oeqa.runtime.case import OERuntimeTestCase 6from oeqa.core.decorator.depends import OETestDepends 7from oeqa.runtime.decorator.package import OEHasPackage 8 9 10class CheckSecTest(OERuntimeTestCase): 11 12 @OEHasPackage(['checksec']) 13 @OETestDepends(['ssh.SSHTest.test_ssh']) 14 def test_checksec_help(self): 15 status, output = self.target.run('checksec --help ') 16 msg = ('checksec command does not work as expected. ' 17 'Status and output:%s and %s' % (status, output)) 18 self.assertEqual(status, 0, msg = msg) 19 20 @OETestDepends(['checksec.CheckSecTest.test_checksec_help']) 21 def test_checksec_xml(self): 22 status, output = self.target.run('checksec --format=xml --proc=1') 23 msg = ('checksec xml failed. Output: %s' % output) 24 self.assertEqual(status, 0, msg = msg) 25 26 @OETestDepends(['checksec.CheckSecTest.test_checksec_xml']) 27 @OEHasPackage(['binutils']) 28 def test_checksec_fortify(self): 29 status, output = self.target.run('checksec --fortify-proc 1') 30 match = re.search('FORTIFY_SOURCE support:', output) 31 if not match: 32 msg = ('checksec : fortify-proc failed. ' 33 'Status and output:%s and %s' % (status, output)) 34 self.assertEqual(status, 1, msg = msg) 35