[yocto] [meta-security][PATCH] meta-tpm: add runtime test for tpm2

Armin Kuster akuster808 at gmail.com
Thu Mar 21 17:26:57 PDT 2019


This runs a basic tpm test using the simulator

Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 meta-tpm/lib/oeqa/runtime/cases/tpm2.py | 41 +++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 meta-tpm/lib/oeqa/runtime/cases/tpm2.py

diff --git a/meta-tpm/lib/oeqa/runtime/cases/tpm2.py b/meta-tpm/lib/oeqa/runtime/cases/tpm2.py
new file mode 100644
index 0000000..d92b15c
--- /dev/null
+++ b/meta-tpm/lib/oeqa/runtime/cases/tpm2.py
@@ -0,0 +1,41 @@
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+
+
+class Tpm2Test(OERuntimeTestCase):
+    def check_endlines(self, results,  expected_endlines): 
+        for line in results.splitlines():
+            for el in expected_endlines:
+                if line == el:
+                    expected_endlines.remove(el)
+                    break
+
+        if expected_endlines:
+            self.fail('Missing expected line endings:\n  %s' % '\n  '.join(expected_endlines))
+
+    @OEHasPackage(['tpm2.0-tss'])
+    @OEHasPackage(['tpm2-abrmd'])
+    @OEHasPackage(['tpm2.0-tools'])
+    @OEHasPackage(['ibmswtpm2'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_tpm2_sim(self):
+        cmds = [
+                'tpm_server &',
+                'tpm2-abrmd --allow-root --tcti=mssim &'
+               ]
+
+        for cmd in cmds:
+            status, output = self.target.run(cmd)
+            self.assertEqual(status, 0, msg='\n'.join([cmd, output]))
+
+    @OETestDepends(['tpm2.Tpm2Test.test_tpm2_sim'])
+    def test_tpm2(self):
+         (status, output) = self.target.run('tpm2_pcrlist')
+         expected_endlines = []
+         expected_endlines.append('sha1 :')
+         expected_endlines.append('  0  : 0000000000000000000000000000000000000003')
+         expected_endlines.append('  1  : 0000000000000000000000000000000000000000')
+
+         self.check_endlines(output, expected_endlines)
+
-- 
2.17.1



More information about the yocto mailing list