# SPDX-License-Identifier: MIT # from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends from oeqa.runtime.decorator.package import OEHasPackage class OpenscapTest(OERuntimeTestCase): @OEHasPackage(["openscap"]) @OETestDepends(["ssh.SSHTest.test_ssh"]) def test_openscap_basic(self): status, output = self.target.run("oscap -V") msg = ( "`oscap -V` command does not work as expected. " "Status and output:%s and %s" % (status, output) ) self.assertEqual(status, 0, msg=msg) @OEHasPackage(["openscap"]) @OEHasPackage(["scap-security-guide"]) @OETestDepends(["ssh.SSHTest.test_ssh"]) def test_openscap_scan(self): SCAP_SOURCE = "/usr/share/xml/scap/ssg/content/ssg-openembedded-xccdf.xml" CPE_DICT = "/usr/share/xml/scap/ssg/content/ssg-openembedded-cpe-dictionary.xml" cmd = "oscap info --profiles %s" % SCAP_SOURCE status, output = self.target.run(cmd) msg = ( "oscap info` command does not work as expected.\n" "Command: %s\n" % cmd + "Status and output:%s and %s" % (status, output) ) self.assertEqual(status, 0, msg=msg) for p in output.split("\n"): profile = p.split(":")[0] cmd = "oscap xccdf eval --cpe %s --profile %s %s" % ( CPE_DICT, profile, SCAP_SOURCE, ) status, output = self.target.run(cmd) msg = ( "`oscap xccdf eval` does not work as expected.\n" "Command: %s\n" % cmd + "Status and output:%s and %s" % (status, output) ) self.assertNotEqual(status, 1, msg=msg)