blob: 7012b6b94c728bb84596058036a9dea6e95a5313 [file] [log] [blame] [edit]
# 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)