TPM selftests require TPM2 but do not check for the requirement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I tried to run the kernel TPM selftest from
tools/testing/selftests/tpm2/ on two different VMs, and found that while
on one it works on another it reports a lot of errors.

Inspecting the emolated platfrom configuration it turns out that the
non-working VM had TPM 1.2.

While it is not expected that TPM2 tests would work on TPM 1.2 it would
be nice to report something intelligible to the user when the
requirements are not met.

Perhaps somewhat similar to commit 5627f9cffee7 ("Kernel selftests: Add check if TPM devices are supported")

Thanks

Michal

Sample output:

jostaberry-2:~/linux/tools/testing/selftests/tpm2/:[0]# ./test_smoke.sh 
test_read_partial_overwrite (tpm2_tests.SmokeTest) ... ERROR
test_read_partial_resp (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa89044a8>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'
test_seal_with_auth (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa89046d8>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'
test_seal_with_policy (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa8904518>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'
test_seal_with_too_long_auth (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa89044a8>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'
test_send_two_cmds (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa89046d8>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'
test_too_short_cmd (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa8904518>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'
test_unseal_with_wrong_auth (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa89044a8>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'
test_unseal_with_wrong_policy (tpm2_tests.SmokeTest) ... ERROR
Exception ignored in: <bound method Client.__del__ of <tpm2.Client object at 0x7fffa89046d8>>
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 375, in __del__
    if self.tpm:
AttributeError: 'Client' object has no attribute 'tpm'

======================================================================
ERROR: test_read_partial_overwrite (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 16, in setUp
    self.root_key = self.client.create_root_key()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 587, in create_root_key
    return struct.unpack('>I', self.send_cmd(cmd)[10:14])[0]
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 402, in send_cmd
    raise ProtocolError(cc, rc)
tpm2.ProtocolError: TPM_RC_UNKNOWN: cc=0x00000131, rc=0x0000000a

======================================================================
ERROR: test_read_partial_resp (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

======================================================================
ERROR: test_seal_with_auth (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

======================================================================
ERROR: test_seal_with_policy (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

======================================================================
ERROR: test_seal_with_too_long_auth (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

======================================================================
ERROR: test_send_two_cmds (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

======================================================================
ERROR: test_too_short_cmd (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

======================================================================
ERROR: test_unseal_with_wrong_auth (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

======================================================================
ERROR: test_unseal_with_wrong_policy (tpm2_tests.SmokeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/linux/tools/testing/selftests/tpm2/tpm2_tests.py", line 15, in setUp
    self.client = tpm2.Client()
  File "/root/linux/tools/testing/selftests/tpm2/tpm2.py", line 364, in __init__
    self.tpm = open('/dev/tpm0', 'r+b', buffering=0)
OSError: [Errno 16] Device or resource busy: '/dev/tpm0'

----------------------------------------------------------------------
Ran 9 tests in 0.012s

FAILED (errors=9)





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux Kernel Hardening]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux