[PATCH 3/3] testutilsqemu: Fake TPM versions
Michal Prívozník
mprivozn at redhat.com
Tue Aug 2 07:03:01 UTC 2022
On 8/1/22 18:10, Andrea Bolognani wrote:
> On Fri, Jul 29, 2022 at 09:42:13AM +0200, Michal Privoznik wrote:
>> +++ b/tests/testutilsqemu.c
>> @@ -150,12 +150,13 @@ bool
>> virTPMSwtpmSetupCapsGet(virTPMSwtpmSetupFeature cap)
>> {
>> switch (cap) {
>> + case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_1_2:
>> + case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_2_0:
>> + return true;
>> case VIR_TPM_SWTPM_SETUP_FEATURE_CMDARG_PWDFILE_FD:
>> case VIR_TPM_SWTPM_SETUP_FEATURE_CMDARG_CREATE_CONFIG_FILES:
>> case VIR_TPM_SWTPM_SETUP_FEATURE_TPM12_NOT_NEED_ROOT:
>> case VIR_TPM_SWTPM_SETUP_FEATURE_CMDARG_RECONFIGURE_PCR_BANKS:
>> - case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_1_2:
>> - case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_2_0:
>> case VIR_TPM_SWTPM_SETUP_FEATURE_LAST:
>> break;
>> }
>
> So our test suite will work against a mocked TPM that supports a very
> small set of hardcoded capabilities. Would it make sense to extend
> this so that it's possible to control things as the test case level,
> so that we can have coverage for things like e.g. trying to use TPM
> 1.2 when the swtpm binary only supports TPM 2.0?
Good point. We could have an environment variable that, if set, would
make this function return just a subset of TPM versions. And then, when
we want to test scenario you suggest we could do the following:
setenv("VIR_TEST_MOCK_FAKE_TPM_VERSION", "1.2");
DO_TEST_FAILURE("guest-tpm-2.0");
unsetenv("VIR_TEST_MOCK_FAKE_TPM_VERSION");
Alternatively, we can modify the DO_TEST_* macro so that it accepts TPM
version and sets the ENV var accordingly, but I'd rather not do that,
because it's not very extensible.
>
> That'd all be follow-up work, of course. Your change is good to have
> as is :)
In fact, I can just not merge this patch and send v2 of this patch that
implements the idea from above. I'll push the other two though, because
they fix the issue.
>
> Reviewed-by: Andrea Bolognani <abologna at redhat.com>
>
Thanks!
Michal
More information about the libvir-list
mailing list