diff mbox series

[v3,2/2] selftests: tpm: add async space test with noneexisting handle

Message ID 20220116012627.2031-2-tstruk@gmail.com (mailing list archive)
State New
Headers show
Series [v4,1/2] tpm: Fix error handling in async work | expand

Commit Message

Tadeusz Struk Jan. 16, 2022, 1:26 a.m. UTC
Add a test for /dev/tpmrm0 in async mode that checks if
the code handles invalid handles correctly.

Cc: Jarkko Sakkinen <jarkko@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: <linux-integrity@vger.kernel.org>
Cc: <linux-kselftest@vger.kernel.org>
Cc: <linux-kernel@vger.kernel.org>

Tested-by: Jarkko Sakkinen<jarkko@kernel.org>
Signed-off-by: Tadeusz Struk <tstruk@gmail.com>
---
Changed in v2:
- Updated commit message
Changed in v3:
- Fixed typo in the function name
---
 tools/testing/selftests/tpm2/tpm2_tests.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Comments

Jarkko Sakkinen Jan. 16, 2022, 2:34 p.m. UTC | #1
On Sat, Jan 15, 2022 at 05:26:27PM -0800, Tadeusz Struk wrote:
> Add a test for /dev/tpmrm0 in async mode that checks if
> the code handles invalid handles correctly.
> 
> Cc: Jarkko Sakkinen <jarkko@kernel.org>
> Cc: Shuah Khan <shuah@kernel.org>
> Cc: <linux-integrity@vger.kernel.org>
> Cc: <linux-kselftest@vger.kernel.org>
> Cc: <linux-kernel@vger.kernel.org>
> 
> Tested-by: Jarkko Sakkinen<jarkko@kernel.org>
> Signed-off-by: Tadeusz Struk <tstruk@gmail.com>
> ---
> Changed in v2:
> - Updated commit message
> Changed in v3:
> - Fixed typo in the function name
> ---
>  tools/testing/selftests/tpm2/tpm2_tests.py | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/tools/testing/selftests/tpm2/tpm2_tests.py b/tools/testing/selftests/tpm2/tpm2_tests.py
> index 9d764306887b..340ffef97fb6 100644
> --- a/tools/testing/selftests/tpm2/tpm2_tests.py
> +++ b/tools/testing/selftests/tpm2/tpm2_tests.py
> @@ -302,3 +302,19 @@ class AsyncTest(unittest.TestCase):
>          log.debug("Calling get_cap in a NON_BLOCKING mode")
>          async_client.get_cap(tpm2.TPM2_CAP_HANDLES, tpm2.HR_LOADED_SESSION)
>          async_client.close()
> +
> +    def test_flush_invalid_context(self):
> +        log = logging.getLogger(__name__)
> +        log.debug(sys._getframe().f_code.co_name)
> +
> +        async_client = tpm2.Client(tpm2.Client.FLAG_SPACE | tpm2.Client.FLAG_NONBLOCK)
> +        log.debug("Calling flush_context passing in an invalid handle ")
> +        handle = 0x80123456
> +        rc = 0
> +        try:
> +            async_client.flush_context(handle)
> +        except OSError as e:
> +            rc = e.errno
> +
> +        self.assertEqual(rc, 22)
> +        async_client.close()
> -- 
> 2.30.2
> 

Thank you.

Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>

BR, Jarkko
Jarkko Sakkinen Jan. 16, 2022, 8:04 p.m. UTC | #2
On Sun, Jan 16, 2022 at 04:34:20PM +0200, Jarkko Sakkinen wrote:
> On Sat, Jan 15, 2022 at 05:26:27PM -0800, Tadeusz Struk wrote:
> > Add a test for /dev/tpmrm0 in async mode that checks if
> > the code handles invalid handles correctly.
> > 
> > Cc: Jarkko Sakkinen <jarkko@kernel.org>
> > Cc: Shuah Khan <shuah@kernel.org>
> > Cc: <linux-integrity@vger.kernel.org>
> > Cc: <linux-kselftest@vger.kernel.org>
> > Cc: <linux-kernel@vger.kernel.org>
> > 
> > Tested-by: Jarkko Sakkinen<jarkko@kernel.org>
> > Signed-off-by: Tadeusz Struk <tstruk@gmail.com>
> > ---
> > Changed in v2:
> > - Updated commit message
> > Changed in v3:
> > - Fixed typo in the function name
> > ---
> >  tools/testing/selftests/tpm2/tpm2_tests.py | 16 ++++++++++++++++
> >  1 file changed, 16 insertions(+)
> > 
> > diff --git a/tools/testing/selftests/tpm2/tpm2_tests.py b/tools/testing/selftests/tpm2/tpm2_tests.py
> > index 9d764306887b..340ffef97fb6 100644
> > --- a/tools/testing/selftests/tpm2/tpm2_tests.py
> > +++ b/tools/testing/selftests/tpm2/tpm2_tests.py
> > @@ -302,3 +302,19 @@ class AsyncTest(unittest.TestCase):
> >          log.debug("Calling get_cap in a NON_BLOCKING mode")
> >          async_client.get_cap(tpm2.TPM2_CAP_HANDLES, tpm2.HR_LOADED_SESSION)
> >          async_client.close()
> > +
> > +    def test_flush_invalid_context(self):
> > +        log = logging.getLogger(__name__)
> > +        log.debug(sys._getframe().f_code.co_name)
> > +
> > +        async_client = tpm2.Client(tpm2.Client.FLAG_SPACE | tpm2.Client.FLAG_NONBLOCK)
> > +        log.debug("Calling flush_context passing in an invalid handle ")
> > +        handle = 0x80123456
> > +        rc = 0
> > +        try:
> > +            async_client.flush_context(handle)
> > +        except OSError as e:
> > +            rc = e.errno
> > +
> > +        self.assertEqual(rc, 22)
> > +        async_client.close()
> > -- 
> > 2.30.2
> > 
> 
> Thank you.
> 
> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
> 
> BR, Jarkko



$ b4 am 20220116012627.2031-2-tstruk@gmail.com
Looking up https://lore.kernel.org/r/20220116012627.2031-2-tstruk%40gmail.com
Grabbing thread from lore.kernel.org/all/20220116012627.2031-2-tstruk%40gmail.com/t.mbox.gz
Analyzing 4 messages in the thread
Will use the latest revision: v4
You can pick other revisions using the -vN flag
Checking attestation on all messages, may take a moment...
---
  ✓ [PATCH v4 1/2] tpm: Fix error handling in async work
    ✓ Signed: DKIM/gmail.com
    + Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> (✓ DKIM/kernel.org)
  ERROR: missing [2/2]!
---
Total patches: 1
---
WARNING: Thread incomplete!
 Link: https://lore.kernel.org/r/20220116012627.2031-1-tstruk@gmail.com
 Base: applies clean to current tree
       git am ./v4_20220115_tstruk_tpm_fix_error_handling_in_async_work.mbx

The patch set is broken. It has patches from two different patch sets.

I saved the 2nd patch from my email client.

BR, Jarkko
Tadeusz Struk Jan. 16, 2022, 10:43 p.m. UTC | #3
On 1/16/22 12:04, Jarkko Sakkinen wrote:
> $ b4 am20220116012627.2031-2-tstruk@gmail.com
> Looking uphttps://lore.kernel.org/r/20220116012627.2031-2-tstruk%40gmail.com
> Grabbing thread from lore.kernel.org/all/20220116012627.2031-2-tstruk%40gmail.com/t.mbox.gz
> Analyzing 4 messages in the thread
> Will use the latest revision: v4
> You can pick other revisions using the -vN flag
> Checking attestation on all messages, may take a moment...
> ---
>    ✓ [PATCH v4 1/2] tpm: Fix error handling in async work
>      ✓ Signed: DKIM/gmail.com
>      + Reviewed-by: Jarkko Sakkinen<jarkko@kernel.org>  (✓ DKIM/kernel.org)
>    ERROR: missing [2/2]!
> ---
> Total patches: 1
> ---
> WARNING: Thread incomplete!
>   Link:https://lore.kernel.org/r/20220116012627.2031-1-tstruk@gmail.com
>   Base: applies clean to current tree
>         git am ./v4_20220115_tstruk_tpm_fix_error_handling_in_async_work.mbx
> 
> The patch set is broken. It has patches from two different patch sets.
> 
> I saved the 2nd patch from my email client.

I'm not sure why it doesn't like it. They both are generated with the same
git format-patch command. If you look at the source, the first one is:

Message-Id: <20220116012627.2031-1-tstruk@gmail.com>

and the second is:

Message-Id: <20220116012627.2031-2-tstruk@gmail.com>

and contains:

In-Reply-To: <20220116012627.2031-1-tstruk@gmail.com>
References: <20220116012627.2031-1-tstruk@gmail.com>

Maybe it doesn't like the fact that the first in v4 and the second in v3?
Do you need me to do anything else to get that applied?

--
Thanks,
Tadeusz
Jarkko Sakkinen Jan. 17, 2022, 1:44 a.m. UTC | #4
On Sun, Jan 16, 2022 at 02:43:32PM -0800, Tadeusz Struk wrote:
> On 1/16/22 12:04, Jarkko Sakkinen wrote:
> > $ b4 am20220116012627.2031-2-tstruk@gmail.com
> > Looking uphttps://lore.kernel.org/r/20220116012627.2031-2-tstruk%40gmail.com
> > Grabbing thread from lore.kernel.org/all/20220116012627.2031-2-tstruk%40gmail.com/t.mbox.gz
> > Analyzing 4 messages in the thread
> > Will use the latest revision: v4
> > You can pick other revisions using the -vN flag
> > Checking attestation on all messages, may take a moment...
> > ---
> >    ✓ [PATCH v4 1/2] tpm: Fix error handling in async work
> >      ✓ Signed: DKIM/gmail.com
> >      + Reviewed-by: Jarkko Sakkinen<jarkko@kernel.org>  (✓ DKIM/kernel.org)
> >    ERROR: missing [2/2]!
> > ---
> > Total patches: 1
> > ---
> > WARNING: Thread incomplete!
> >   Link:https://lore.kernel.org/r/20220116012627.2031-1-tstruk@gmail.com
> >   Base: applies clean to current tree
> >         git am ./v4_20220115_tstruk_tpm_fix_error_handling_in_async_work.mbx
> > 
> > The patch set is broken. It has patches from two different patch sets.
> > 
> > I saved the 2nd patch from my email client.
> 
> I'm not sure why it doesn't like it. They both are generated with the same
> git format-patch command. If you look at the source, the first one is:
> 
> Message-Id: <20220116012627.2031-1-tstruk@gmail.com>
> 
> and the second is:
> 
> Message-Id: <20220116012627.2031-2-tstruk@gmail.com>
> 
> and contains:
> 
> In-Reply-To: <20220116012627.2031-1-tstruk@gmail.com>
> References: <20220116012627.2031-1-tstruk@gmail.com>
> 
> Maybe it doesn't like the fact that the first in v4 and the second in v3?
> Do you need me to do anything else to get that applied?
> 
> --
> Thanks,
> Tadeusz

NP, Both are applied now.

BR, Jarkko
Tadeusz Struk Jan. 17, 2022, 2:55 a.m. UTC | #5
On 1/16/22 17:44, Jarkko Sakkinen wrote:
> NP, Both are applied now.

Looking at
https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/
I can see only the 2/2 selftest applied.
Jarkko Sakkinen Jan. 17, 2022, 7:02 a.m. UTC | #6
On Sun, Jan 16, 2022 at 06:55:25PM -0800, Tadeusz Struk wrote:
> On 1/16/22 17:44, Jarkko Sakkinen wrote:
> > NP, Both are applied now.
> 
> Looking at
> https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/
> I can see only the 2/2 selftest applied.

It was my bad, forgot the update the remote master. Now it should be
good.

BR, Jarkko
diff mbox series

Patch

diff --git a/tools/testing/selftests/tpm2/tpm2_tests.py b/tools/testing/selftests/tpm2/tpm2_tests.py
index 9d764306887b..340ffef97fb6 100644
--- a/tools/testing/selftests/tpm2/tpm2_tests.py
+++ b/tools/testing/selftests/tpm2/tpm2_tests.py
@@ -302,3 +302,19 @@  class AsyncTest(unittest.TestCase):
         log.debug("Calling get_cap in a NON_BLOCKING mode")
         async_client.get_cap(tpm2.TPM2_CAP_HANDLES, tpm2.HR_LOADED_SESSION)
         async_client.close()
+
+    def test_flush_invalid_context(self):
+        log = logging.getLogger(__name__)
+        log.debug(sys._getframe().f_code.co_name)
+
+        async_client = tpm2.Client(tpm2.Client.FLAG_SPACE | tpm2.Client.FLAG_NONBLOCK)
+        log.debug("Calling flush_context passing in an invalid handle ")
+        handle = 0x80123456
+        rc = 0
+        try:
+            async_client.flush_context(handle)
+        except OSError as e:
+            rc = e.errno
+
+        self.assertEqual(rc, 22)
+        async_client.close()