[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