Message ID | 20220909152056.1335261-1-stefanb@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 2d869f0b458547386fbcd8cf3004b271b7347b7f |
Headers | show |
Series | selftests: tpm2: Implement class desstructor to close file descriptor | expand |
On 09/09/22 8:50 pm, Stefan Berger wrote: > From: Stefan Berger <stefanb@linux.ibm.com> > > Implement a class destructor to close the open TPM file descriptor > and avoid the following error message: > > test_flush_context (tpm2_tests.SpaceTest) ... \ > /usr/lib64/python3.6/unittest/case.py:605: ResourceWarning: \ > unclosed file <_io.FileIO name='/dev/tpmrm0' mode='rb+' closefd=True> > > Fixes: 6ea3dfe1e0732 ("selftests: add TPM 2.0 tests") > Cc: Shuah Khan <shuah@kernel.org> > Cc: linux-kselftest@vger.kernel.org > Cc: Jarkko Sakkinen <jarkko@kernel.org> > Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com> > > --- > tools/testing/selftests/tpm2/tpm2.py | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tools/testing/selftests/tpm2/tpm2.py b/tools/testing/selftests/tpm2/tpm2.py > index 057a4f49c79d..c7363c6764fc 100644 > --- a/tools/testing/selftests/tpm2/tpm2.py > +++ b/tools/testing/selftests/tpm2/tpm2.py > @@ -371,6 +371,10 @@ class Client: > fcntl.fcntl(self.tpm, fcntl.F_SETFL, flags) > self.tpm_poll = select.poll() > > + def __del__(self): > + if self.tpm: > + self.tpm.close() > + > def close(self): > self.tpm.close() >
s/desstructor/destructor/ I'd change it to "selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle" On Fri, Sep 09, 2022 at 11:20:56AM -0400, Stefan Berger wrote: > From: Stefan Berger <stefanb@linux.ibm.com> > > Implement a class destructor to close the open TPM file descriptor > and avoid the following error message: > > test_flush_context (tpm2_tests.SpaceTest) ... \ > /usr/lib64/python3.6/unittest/case.py:605: ResourceWarning: \ > unclosed file <_io.FileIO name='/dev/tpmrm0' mode='rb+' closefd=True> I don't recall seeing this. Does this happen on every test case? Should better describe what is going on, e.g. " The following output can bee seen when the test is executed: test_flush_context (tpm2_tests.SpaceTest) ... \ /usr/lib64/python3.6/unittest/case.py:605: ResourceWarning: \ unclosed file <_io.FileIO name='/dev/tpmrm0' mode='rb+' closefd=True> An instance of Client does not implicitly close /dev/tpm* handle, once it gets destroyed. Close the file handle in the class destructor Client.__del__(). " > > Fixes: 6ea3dfe1e0732 ("selftests: add TPM 2.0 tests") > Cc: Shuah Khan <shuah@kernel.org> > Cc: linux-kselftest@vger.kernel.org > Cc: Jarkko Sakkinen <jarkko@kernel.org> > Signed-off-by: Stefan Berger <stefanb@linux.ibm.com> BR, Jarkko
On 9/20/22 00:31, Jarkko Sakkinen wrote: >> >> test_flush_context (tpm2_tests.SpaceTest) ... \ >> /usr/lib64/python3.6/unittest/case.py:605: ResourceWarning: \ >> unclosed file <_io.FileIO name='/dev/tpmrm0' mode='rb+' closefd=True> > > I don't recall seeing this. Does this happen on every test case? No, only on that one test case. Stefan
diff --git a/tools/testing/selftests/tpm2/tpm2.py b/tools/testing/selftests/tpm2/tpm2.py index 057a4f49c79d..c7363c6764fc 100644 --- a/tools/testing/selftests/tpm2/tpm2.py +++ b/tools/testing/selftests/tpm2/tpm2.py @@ -371,6 +371,10 @@ class Client: fcntl.fcntl(self.tpm, fcntl.F_SETFL, flags) self.tpm_poll = select.poll() + def __del__(self): + if self.tpm: + self.tpm.close() + def close(self): self.tpm.close()