[pve-devel] [PATCH v7 qemu-server 08/10] cfg2cmd: add test cases for custom CPU models

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Jan 22 16:09:35 CET 2020


On 1/16/20 4:40 PM, Stefan Reiter wrote:
> Requires a mock CPU-model config, which is given as a raw string to also
> test parsing capabilities. Also tests defaulting behaviour.
> 
> Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
> ---
>  test/cfg2cmd/custom-cpu-model-defaults.conf   |  8 ++++++
>  .../custom-cpu-model-defaults.conf.cmd        | 24 +++++++++++++++++
>  test/cfg2cmd/custom-cpu-model.conf            |  8 ++++++
>  test/cfg2cmd/custom-cpu-model.conf.cmd        | 27 +++++++++++++++++++
>  test/run_config2command_tests.pl              | 23 ++++++++++++++++
>  5 files changed, 90 insertions(+)
>  create mode 100644 test/cfg2cmd/custom-cpu-model-defaults.conf
>  create mode 100644 test/cfg2cmd/custom-cpu-model-defaults.conf.cmd
>  create mode 100644 test/cfg2cmd/custom-cpu-model.conf
>  create mode 100644 test/cfg2cmd/custom-cpu-model.conf.cmd
> 

> index bad6501..fb77279 100755
> --- a/test/run_config2command_tests.pl
> +++ b/test/run_config2command_tests.pl
> @@ -17,6 +17,7 @@ use PVE::QemuConfig;
>  use PVE::QemuServer;
>  use PVE::QemuServer::Monitor;
>  use PVE::QemuServer::Machine;
> +use PVE::QemuServer::CPUConfig;
>  
>  my $base_env = {
>      storage_config => {
> @@ -170,6 +171,28 @@ $pve_common_tools->mock(
>  
>  	return '61000';
>      },
> +);

just for the record, as we talked already off-list:

This is wrong, it moves the mocking of "getaddrinfo_all" to another module
mock definition, and thus makes that useless. I then get test failure becuase
the realworld method is then called again and "localhost" resolves to "::1"
here, while the test have it at "127.0.0.1"..

I almost rewrote that mock before detecting that it just got moved :D

> +
> +my $pve_cpuconfig;
> +$pve_cpuconfig = Test::MockModule->new('PVE::QemuServer::CPUConfig');
> +$pve_cpuconfig->mock(
> +    load_custom_model_conf => sub {
> +	# mock custom CPU model config
> +	return PVE::QemuServer::CPUConfig->parse_config("cpu-models.conf",
> +<<EOF
> +
> +# "qemu64" is also a default CPU, used here to test that this doesn't matter
> +cpu-model: qemu64
> +    reported-model athlon
> +    flags +aes;+avx;-kvm_pv_unhalt
> +    hv-vendor-id testvend
> +    phys-bits 40
> +
> +cpu-model: alldefault
> +
> +EOF
> +	)
> +    },
>      getaddrinfo_all => sub {


^^^^^^^^^^

>  	my ($hostname, @opts) = @_;
>  	die "need stable hostname" if $hostname ne 'localhost';
> 





More information about the pve-devel mailing list