[PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Tpm test cases relies on tpm device setup. Provide an environment variable "env__tpm_device_test_skip = True" to skip the test case if tpm device is not present. Only needed will have to add variable to the py-test framework. Test runs successfully even this variable is absent. Signed-off-by: T Karthik Reddy --- test/py/tests/test_tpm2.py | 28 1 file changed, 28 insertions(+) diff --git a/test/py/tests/test_tpm2.py b/test/py/tests/test_tpm2.py index 70f906da51..bb147d4e88 100644 --- a/test/py/tests/test_tpm2.py +++ b/test/py/tests/test_tpm2.py @@ -18,6 +18,15 @@ any password. * Commands like pcr_setauthpolicy and pcr_resetauthpolicy are not implemented here because they would fail the tests in most cases (TPMs do not implement them and return an error). + + +Note: +This test doesn't rely on boardenv_* configuration value but can change test +behavior. + +* Setup env__tpm_device_test_skip to True if tests with TPM devices should be +skipped. + """ updates = 0 @@ -29,6 +38,9 @@ def force_init(u_boot_console, force=False): twice will spawn an error used to detect that the TPM was not reset and no initialization code should be run. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') output = u_boot_console.run_command('tpm2 init') if force or not 'Error' in output: u_boot_console.run_command('echo --- start of init ---') @@ -44,6 +56,10 @@ def force_init(u_boot_console, force=False): def test_tpm2_init(u_boot_console): """Init the software stack to use TPMv2 commands.""" +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') + u_boot_console.run_command('tpm2 init') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -55,6 +71,9 @@ def test_tpm2_startup(u_boot_console): Initiate the TPM internal state machine. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 startup TPM2_SU_CLEAR') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -66,6 +85,9 @@ def test_tpm2_self_test_full(u_boot_console): Ask the TPM to perform all self tests to also enable full capabilities. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 self_test full') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -78,6 +100,9 @@ def test_tpm2_continue_self_test(u_boot_console): to enter a fully operational state. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 self_test continue') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -95,6 +120,9 @@ def test_tpm2_clear(u_boot_console): PLATFORM hierarchies are also available. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 clear TPM2_RH_LOCKOUT') output = u_boot_console.run_command('echo $?') assert output.endswith('0') -- 2.17.1 This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
[PATCH] test/py: tpm2: Skip tpm pytest based on env variable
From: T Karthik Reddy Tpm test cases relies on tpm device setup. Provide an environment variable "env__tpm_device_test_skip = True" to skip the test case if tpm device is not present. Only needed will have to add variable to the py-test framework. Test runs successfully even this variable is absent. Signed-off-by: T Karthik Reddy Signed-off-by: Ashok Reddy Soma --- test/py/tests/test_tpm2.py | 28 1 file changed, 28 insertions(+) diff --git a/test/py/tests/test_tpm2.py b/test/py/tests/test_tpm2.py index 70f906da51..bb147d4e88 100644 --- a/test/py/tests/test_tpm2.py +++ b/test/py/tests/test_tpm2.py @@ -18,6 +18,15 @@ any password. * Commands like pcr_setauthpolicy and pcr_resetauthpolicy are not implemented here because they would fail the tests in most cases (TPMs do not implement them and return an error). + + +Note: +This test doesn't rely on boardenv_* configuration value but can change test +behavior. + +* Setup env__tpm_device_test_skip to True if tests with TPM devices should be +skipped. + """ updates = 0 @@ -29,6 +38,9 @@ def force_init(u_boot_console, force=False): twice will spawn an error used to detect that the TPM was not reset and no initialization code should be run. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') output = u_boot_console.run_command('tpm2 init') if force or not 'Error' in output: u_boot_console.run_command('echo --- start of init ---') @@ -44,6 +56,10 @@ def force_init(u_boot_console, force=False): def test_tpm2_init(u_boot_console): """Init the software stack to use TPMv2 commands.""" +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') + u_boot_console.run_command('tpm2 init') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -55,6 +71,9 @@ def test_tpm2_startup(u_boot_console): Initiate the TPM internal state machine. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 startup TPM2_SU_CLEAR') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -66,6 +85,9 @@ def test_tpm2_self_test_full(u_boot_console): Ask the TPM to perform all self tests to also enable full capabilities. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 self_test full') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -78,6 +100,9 @@ def test_tpm2_continue_self_test(u_boot_console): to enter a fully operational state. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 self_test continue') output = u_boot_console.run_command('echo $?') assert output.endswith('0') @@ -95,6 +120,9 @@ def test_tpm2_clear(u_boot_console): PLATFORM hierarchies are also available. """ +skip_test = u_boot_console.config.env.get('env__tpm_device_test_skip', False) +if skip_test: +pytest.skip('skip TPM device test') u_boot_console.run_command('tpm2 clear TPM2_RH_LOCKOUT') output = u_boot_console.run_command('echo $?') assert output.endswith('0') -- 2.17.1
Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: > From: T Karthik Reddy > > Tpm test cases relies on tpm device setup. Provide an environment > variable "env__tpm_device_test_skip = True" to skip the test case > if tpm device is not present. > Only needed will have to add variable to the py-test framework. > Test runs successfully even this variable is absent. > > Signed-off-by: T Karthik Reddy > Signed-off-by: Ashok Reddy Soma > Acked-by: Ilias Apalodimas Applied to u-boot/master, thanks! -- Tom signature.asc Description: PGP signature
RE: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Hi Tom, > -Original Message- > From: Tom Rini > Sent: Thursday, August 5, 2021 6:53 PM > To: T Karthik Reddy > Cc: Ashok Reddy Soma ; u-boot@lists.denx.de; > miquel.ray...@bootlin.com; git > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable > > On Thu, Aug 05, 2021 at 05:56:50AM +, T Karthik Reddy wrote: > > Hello Tom Rini, > > > > > -Original Message- > > > From: Tom Rini > > > Sent: Wednesday, August 4, 2021 8:52 PM > > > To: Ashok Reddy Soma > > > Cc: u-boot@lists.denx.de; miquel.ray...@bootlin.com; git > > > ; T Karthik Reddy > > > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env > > > variable > > > > > > On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: > > > > > > > From: T Karthik Reddy > > > > > > > > Tpm test cases relies on tpm device setup. Provide an environment > > > > variable "env__tpm_device_test_skip = True" to skip the test case > > > > if tpm device is not present. > > > > Only needed will have to add variable to the py-test framework. > > > > Test runs successfully even this variable is absent. > > > > > > > > Signed-off-by: T Karthik Reddy > > > > Signed-off-by: Ashok Reddy Soma > > > > > > Why is this not using boardenv_* like other tests do to disable running? > > > > What I meant here was this test doesn't depend on configuration value > > from boardenv_*. But it uses env__tpm_device_test_skip variable from > the configuration file. > > I referred test/py/tests/test_sleep.py for writing this test case, hence > copied comments as well. > > Should I change this NOTE in comment section? > > Thanks for explaining. This got me to re-read the existing tests and while > none of it is as clear as I would like, your example here is just as clear as > the > rest, so it's fine and I'll pick it up soon. I see this patch is not yet applied on the repo, could you please let me know when this will be applied? Thanks T karthik > > -- > Tom
Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
On Fri, Sep 17, 2021 at 11:49:51AM +, T Karthik Reddy wrote: > Hi Tom, > > > -Original Message- > > From: Tom Rini > > Sent: Thursday, August 5, 2021 6:53 PM > > To: T Karthik Reddy > > Cc: Ashok Reddy Soma ; u-boot@lists.denx.de; > > miquel.ray...@bootlin.com; git > > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable > > > > On Thu, Aug 05, 2021 at 05:56:50AM +, T Karthik Reddy wrote: > > > Hello Tom Rini, > > > > > > > -Original Message- > > > > From: Tom Rini > > > > Sent: Wednesday, August 4, 2021 8:52 PM > > > > To: Ashok Reddy Soma > > > > Cc: u-boot@lists.denx.de; miquel.ray...@bootlin.com; git > > > > ; T Karthik Reddy > > > > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env > > > > variable > > > > > > > > On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: > > > > > > > > > From: T Karthik Reddy > > > > > > > > > > Tpm test cases relies on tpm device setup. Provide an environment > > > > > variable "env__tpm_device_test_skip = True" to skip the test case > > > > > if tpm device is not present. > > > > > Only needed will have to add variable to the py-test framework. > > > > > Test runs successfully even this variable is absent. > > > > > > > > > > Signed-off-by: T Karthik Reddy > > > > > Signed-off-by: Ashok Reddy Soma > > > > > > > > Why is this not using boardenv_* like other tests do to disable running? > > > > > > What I meant here was this test doesn't depend on configuration value > > > from boardenv_*. But it uses env__tpm_device_test_skip variable from > > the configuration file. > > > I referred test/py/tests/test_sleep.py for writing this test case, hence > > copied comments as well. > > > Should I change this NOTE in comment section? > > > > Thanks for explaining. This got me to re-read the existing tests and while > > none of it is as clear as I would like, your example here is just as clear > > as the > > rest, so it's fine and I'll pick it up soon. > > I see this patch is not yet applied on the repo, could you please let me know > when this will be applied? Ilias, since you've said you'd review TPM related patches, does this: https://patchwork.ozlabs.org/project/uboot/patch/1624340962-91190-1-git-send-email-t.karthik.re...@xilinx.com/ work for you? Thanks. -- Tom signature.asc Description: PGP signature
Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Hi Tom, On Fri, 17 Sept 2021 at 15:08, Tom Rini wrote: > > On Fri, Sep 17, 2021 at 11:49:51AM +, T Karthik Reddy wrote: > > Hi Tom, > > > > > -Original Message- > > > From: Tom Rini > > > Sent: Thursday, August 5, 2021 6:53 PM > > > To: T Karthik Reddy > > > Cc: Ashok Reddy Soma ; u-boot@lists.denx.de; > > > miquel.ray...@bootlin.com; git > > > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable > > > > > > On Thu, Aug 05, 2021 at 05:56:50AM +, T Karthik Reddy wrote: > > > > Hello Tom Rini, > > > > > > > > > -Original Message- > > > > > From: Tom Rini > > > > > Sent: Wednesday, August 4, 2021 8:52 PM > > > > > To: Ashok Reddy Soma > > > > > Cc: u-boot@lists.denx.de; miquel.ray...@bootlin.com; git > > > > > ; T Karthik Reddy > > > > > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env > > > > > variable > > > > > > > > > > On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: > > > > > > > > > > > From: T Karthik Reddy > > > > > > > > > > > > Tpm test cases relies on tpm device setup. Provide an environment > > > > > > variable "env__tpm_device_test_skip = True" to skip the test case > > > > > > if tpm device is not present. > > > > > > Only needed will have to add variable to the py-test framework. > > > > > > Test runs successfully even this variable is absent. > > > > > > > > > > > > Signed-off-by: T Karthik Reddy > > > > > > Signed-off-by: Ashok Reddy Soma > > > > > > > > > > Why is this not using boardenv_* like other tests do to disable > > > > > running? > > > > > > > > What I meant here was this test doesn't depend on configuration value > > > > from boardenv_*. But it uses env__tpm_device_test_skip variable from > > > the configuration file. > > > > I referred test/py/tests/test_sleep.py for writing this test case, hence > > > copied comments as well. > > > > Should I change this NOTE in comment section? > > > > > > Thanks for explaining. This got me to re-read the existing tests and > > > while > > > none of it is as clear as I would like, your example here is just as > > > clear as the > > > rest, so it's fine and I'll pick it up soon. > > > > I see this patch is not yet applied on the repo, could you please let me > > know when this will be applied? > > Ilias, since you've said you'd review TPM related patches, does this: > https://patchwork.ozlabs.org/project/uboot/patch/1624340962-91190-1-git-send-email-t.karthik.re...@xilinx.com/ > work for you? Thanks. > I am not too familiar with the pytest framework we have, but couldn't we do this automatically? IOW instead of explicitly adding a variable, do a 'tpm info' and if that doesn't return a valid device, skip the tests. Regards /Ilias > -- > Tom
Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Hi On 9/18/21 11:48 AM, Ilias Apalodimas wrote: > Hi Tom, > > On Fri, 17 Sept 2021 at 15:08, Tom Rini wrote: >> >> On Fri, Sep 17, 2021 at 11:49:51AM +, T Karthik Reddy wrote: >>> Hi Tom, >>> >>>> -Original Message- >>>> From: Tom Rini >>>> Sent: Thursday, August 5, 2021 6:53 PM >>>> To: T Karthik Reddy >>>> Cc: Ashok Reddy Soma ; u-boot@lists.denx.de; >>>> miquel.ray...@bootlin.com; git >>>> Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable >>>> >>>> On Thu, Aug 05, 2021 at 05:56:50AM +, T Karthik Reddy wrote: >>>>> Hello Tom Rini, >>>>> >>>>>> -Original Message- >>>>>> From: Tom Rini >>>>>> Sent: Wednesday, August 4, 2021 8:52 PM >>>>>> To: Ashok Reddy Soma >>>>>> Cc: u-boot@lists.denx.de; miquel.ray...@bootlin.com; git >>>>>> ; T Karthik Reddy >>>>>> Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env >>>>>> variable >>>>>> >>>>>> On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: >>>>>> >>>>>>> From: T Karthik Reddy >>>>>>> >>>>>>> Tpm test cases relies on tpm device setup. Provide an environment >>>>>>> variable "env__tpm_device_test_skip = True" to skip the test case >>>>>>> if tpm device is not present. >>>>>>> Only needed will have to add variable to the py-test framework. >>>>>>> Test runs successfully even this variable is absent. >>>>>>> >>>>>>> Signed-off-by: T Karthik Reddy >>>>>>> Signed-off-by: Ashok Reddy Soma >>>>>> >>>>>> Why is this not using boardenv_* like other tests do to disable running? >>>>> >>>>> What I meant here was this test doesn't depend on configuration value >>>>> from boardenv_*. But it uses env__tpm_device_test_skip variable from >>>> the configuration file. >>>>> I referred test/py/tests/test_sleep.py for writing this test case, hence >>>> copied comments as well. >>>>> Should I change this NOTE in comment section? >>>> >>>> Thanks for explaining. This got me to re-read the existing tests and while >>>> none of it is as clear as I would like, your example here is just as clear >>>> as the >>>> rest, so it's fine and I'll pick it up soon. >>> >>> I see this patch is not yet applied on the repo, could you please let me >>> know when this will be applied? >> >> Ilias, since you've said you'd review TPM related patches, does this: >> https://patchwork.ozlabs.org/project/uboot/patch/1624340962-91190-1-git-send-email-t.karthik.re...@xilinx.com/ >> work for you? Thanks. >> > > I am not too familiar with the pytest framework we have, but couldn't > we do this automatically? > IOW instead of explicitly adding a variable, do a 'tpm info' and if > that doesn't return a valid device, skip the tests. Unfortunately not. Because imagine how this will work if you have tpm on board but there is bug in the driver that it is not probed. Then tpm info will return no device and all tests will be silently skipped. It would be much better it the test itself was designed from the beginning that you need to state that board has TPM. But it wasn't that's why we designed this patch in a way that you declare that you want to skip these tests which is OK. It doesn't make any sense to go back and start to have multiple defconfigs for different configurations where all boards works quite well with one defconfig. That's why we enable TPM because it on SOM but we need to be able to disable these tests on others. Thanks, Michal
Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Hi Michal, [...] > Thanks for explaining. This got me to re-read the existing tests and > while > none of it is as clear as I would like, your example here is just as > clear as the > rest, so it's fine and I'll pick it up soon. > >>> > >>> I see this patch is not yet applied on the repo, could you please let me > >>> know when this will be applied? > >> > >> Ilias, since you've said you'd review TPM related patches, does this: > >> https://patchwork.ozlabs.org/project/uboot/patch/1624340962-91190-1-git-send-email-t.karthik.re...@xilinx.com/ > >> work for you? Thanks. > >> > > > > I am not too familiar with the pytest framework we have, but couldn't > > we do this automatically? > > IOW instead of explicitly adding a variable, do a 'tpm info' and if > > that doesn't return a valid device, skip the tests. > > Unfortunately not. Because imagine how this will work if you have tpm on > board but there is bug in the driver that it is not probed. Then tpm > info will return no device and all tests will be silently skipped. Looking at tpm_info I think it's the other way around, isn't it ? tpm_info will call get_tpm(), which in theory will fail if there's no TPM probed or not present. So even in that case the self-tests will fail. OTOH the 'tpm info' command just returns a CMD Success/Failure, so it's not easy to figure out if a TPM is indeed present or not without refactoring the cmdline interface. So I think this is reasonable for now Acked-by: Ilias Apalodimas > > It would be much better it the test itself was designed from the > beginning that you need to state that board has TPM. But it wasn't > that's why we designed this patch in a way that you declare that you > want to skip these tests which is OK. > > It doesn't make any sense to go back and start to have multiple > defconfigs for different configurations where all boards works quite > well with one defconfig. That's why we enable TPM because it on SOM but > we need to be able to disable these tests on others. > > Thanks, > Michal > > >
RE: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Hi, Any update on this patch? Thanks T Karthik > -Original Message- > From: Ashok Reddy Soma > Sent: Friday, July 23, 2021 5:48 PM > To: u-boot@lists.denx.de > Cc: miquel.ray...@bootlin.com; git ; T Karthik Reddy > ; Ashok Reddy Soma > Subject: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable > > From: T Karthik Reddy > > Tpm test cases relies on tpm device setup. Provide an environment variable > "env__tpm_device_test_skip = True" to skip the test case if tpm device is > not present. > Only needed will have to add variable to the py-test framework. > Test runs successfully even this variable is absent. > > Signed-off-by: T Karthik Reddy > Signed-off-by: Ashok Reddy Soma > --- > > test/py/tests/test_tpm2.py | 28 > 1 file changed, 28 insertions(+) > > diff --git a/test/py/tests/test_tpm2.py b/test/py/tests/test_tpm2.py index > 70f906da51..bb147d4e88 100644 > --- a/test/py/tests/test_tpm2.py > +++ b/test/py/tests/test_tpm2.py > @@ -18,6 +18,15 @@ any password. > * Commands like pcr_setauthpolicy and pcr_resetauthpolicy are not > implemented here because they would fail the tests in most cases (TPMs do > not implement them and return an error). > + > + > +Note: > +This test doesn't rely on boardenv_* configuration value but can change > +test behavior. > + > +* Setup env__tpm_device_test_skip to True if tests with TPM devices > +should be skipped. > + > """ > > updates = 0 > @@ -29,6 +38,9 @@ def force_init(u_boot_console, force=False): > twice will spawn an error used to detect that the TPM was not reset and > no > initialization code should be run. > """ > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > output = u_boot_console.run_command('tpm2 init') > if force or not 'Error' in output: > u_boot_console.run_command('echo --- start of init ---') @@ -44,6 > +56,10 @@ def force_init(u_boot_console, force=False): > def test_tpm2_init(u_boot_console): > """Init the software stack to use TPMv2 commands.""" > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > + > u_boot_console.run_command('tpm2 init') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -55,6 +71,9 @@ def test_tpm2_startup(u_boot_console): > Initiate the TPM internal state machine. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 startup TPM2_SU_CLEAR') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -66,6 +85,9 @@ def test_tpm2_self_test_full(u_boot_console): > Ask the TPM to perform all self tests to also enable full capabilities. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 self_test full') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -78,6 +100,9 @@ def test_tpm2_continue_self_test(u_boot_console): > to enter a fully operational state. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 self_test continue') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -95,6 +120,9 @@ def test_tpm2_clear(u_boot_console): > PLATFORM hierarchies are also available. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 clear TPM2_RH_LOCKOUT') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > -- > 2.17.1
Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: > From: T Karthik Reddy > > Tpm test cases relies on tpm device setup. Provide an environment > variable "env__tpm_device_test_skip = True" to skip the test case > if tpm device is not present. > Only needed will have to add variable to the py-test framework. > Test runs successfully even this variable is absent. > > Signed-off-by: T Karthik Reddy > Signed-off-by: Ashok Reddy Soma Why is this not using boardenv_* like other tests do to disable running? -- Tom signature.asc Description: PGP signature
RE: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Hello Tom Rini, > -Original Message- > From: Tom Rini > Sent: Wednesday, August 4, 2021 8:52 PM > To: Ashok Reddy Soma > Cc: u-boot@lists.denx.de; miquel.ray...@bootlin.com; git ; > T Karthik Reddy > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable > > On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: > > > From: T Karthik Reddy > > > > Tpm test cases relies on tpm device setup. Provide an environment > > variable "env__tpm_device_test_skip = True" to skip the test case if > > tpm device is not present. > > Only needed will have to add variable to the py-test framework. > > Test runs successfully even this variable is absent. > > > > Signed-off-by: T Karthik Reddy > > Signed-off-by: Ashok Reddy Soma > > Why is this not using boardenv_* like other tests do to disable running? What I meant here was this test doesn't depend on configuration value from boardenv_*. But it uses env__tpm_device_test_skip variable from the configuration file. I referred test/py/tests/test_sleep.py for writing this test case, hence copied comments as well. Should I change this NOTE in comment section? Thanks T Karthik > > -- > Tom
Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
On Thu, Aug 05, 2021 at 05:56:50AM +, T Karthik Reddy wrote: > Hello Tom Rini, > > > -Original Message- > > From: Tom Rini > > Sent: Wednesday, August 4, 2021 8:52 PM > > To: Ashok Reddy Soma > > Cc: u-boot@lists.denx.de; miquel.ray...@bootlin.com; git ; > > T Karthik Reddy > > Subject: Re: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable > > > > On Fri, Jul 23, 2021 at 06:18:26AM -0600, Ashok Reddy Soma wrote: > > > > > From: T Karthik Reddy > > > > > > Tpm test cases relies on tpm device setup. Provide an environment > > > variable "env__tpm_device_test_skip = True" to skip the test case if > > > tpm device is not present. > > > Only needed will have to add variable to the py-test framework. > > > Test runs successfully even this variable is absent. > > > > > > Signed-off-by: T Karthik Reddy > > > Signed-off-by: Ashok Reddy Soma > > > > Why is this not using boardenv_* like other tests do to disable running? > > What I meant here was this test doesn't depend on configuration value from > boardenv_*. But it uses env__tpm_device_test_skip > variable from the configuration file. > I referred test/py/tests/test_sleep.py for writing this test case, hence > copied comments as well. > Should I change this NOTE in comment section? Thanks for explaining. This got me to re-read the existing tests and while none of it is as clear as I would like, your example here is just as clear as the rest, so it's fine and I'll pick it up soon. -- Tom signature.asc Description: PGP signature
RE: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable
Hi, Any update on this patch? Thanks T Karthik > -Original Message- > From: T Karthik Reddy > Sent: Tuesday, June 22, 2021 11:19 AM > To: u-boot@lists.denx.de > Cc: git-dev ; T Karthik Reddy > Subject: [PATCH] test/py: tpm2: Skip tpm pytest based on env variable > > Tpm test cases relies on tpm device setup. Provide an environment variable > "env__tpm_device_test_skip = True" to skip the test case if tpm device is > not present. > Only needed will have to add variable to the py-test framework. > Test runs successfully even this variable is absent. > > Signed-off-by: T Karthik Reddy > --- > > test/py/tests/test_tpm2.py | 28 > 1 file changed, 28 insertions(+) > > diff --git a/test/py/tests/test_tpm2.py b/test/py/tests/test_tpm2.py index > 70f906da51..bb147d4e88 100644 > --- a/test/py/tests/test_tpm2.py > +++ b/test/py/tests/test_tpm2.py > @@ -18,6 +18,15 @@ any password. > * Commands like pcr_setauthpolicy and pcr_resetauthpolicy are not > implemented here because they would fail the tests in most cases (TPMs do > not implement them and return an error). > + > + > +Note: > +This test doesn't rely on boardenv_* configuration value but can change > +test behavior. > + > +* Setup env__tpm_device_test_skip to True if tests with TPM devices > +should be skipped. > + > """ > > updates = 0 > @@ -29,6 +38,9 @@ def force_init(u_boot_console, force=False): > twice will spawn an error used to detect that the TPM was not reset and > no > initialization code should be run. > """ > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > output = u_boot_console.run_command('tpm2 init') > if force or not 'Error' in output: > u_boot_console.run_command('echo --- start of init ---') @@ -44,6 > +56,10 @@ def force_init(u_boot_console, force=False): > def test_tpm2_init(u_boot_console): > """Init the software stack to use TPMv2 commands.""" > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > + > u_boot_console.run_command('tpm2 init') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -55,6 +71,9 @@ def test_tpm2_startup(u_boot_console): > Initiate the TPM internal state machine. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 startup TPM2_SU_CLEAR') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -66,6 +85,9 @@ def test_tpm2_self_test_full(u_boot_console): > Ask the TPM to perform all self tests to also enable full capabilities. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 self_test full') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -78,6 +100,9 @@ def test_tpm2_continue_self_test(u_boot_console): > to enter a fully operational state. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 self_test continue') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > @@ -95,6 +120,9 @@ def test_tpm2_clear(u_boot_console): > PLATFORM hierarchies are also available. > """ > > +skip_test = > u_boot_console.config.env.get('env__tpm_device_test_skip', False) > +if skip_test: > +pytest.skip('skip TPM device test') > u_boot_console.run_command('tpm2 clear TPM2_RH_LOCKOUT') > output = u_boot_console.run_command('echo $?') > assert output.endswith('0') > -- > 2.17.1