[pve-devel] applied: [PATCH qemu-server] cfg2cmd: allow to test for expected error messages
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Dec 10 11:09:19 CET 2019
Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
.../minimal-defaults-to-new-machine.conf | 5 ++++
test/run_config2command_tests.pl | 25 ++++++++++++++++++-
2 files changed, 29 insertions(+), 1 deletion(-)
create mode 100644 test/cfg2cmd/minimal-defaults-to-new-machine.conf
diff --git a/test/cfg2cmd/minimal-defaults-to-new-machine.conf b/test/cfg2cmd/minimal-defaults-to-new-machine.conf
new file mode 100644
index 0000000..5c0486b
--- /dev/null
+++ b/test/cfg2cmd/minimal-defaults-to-new-machine.conf
@@ -0,0 +1,5 @@
+# TEST: newer machine verison than QEMU version installed on node
+# QEMU_VERSION: 4.1.1
+# EXPECT_ERROR: Installed QEMU version '4.1.1' is too old to run machine type 'pc-q35-42.9', please upgrade node 'localhost'
+smbios1: uuid=6cf17dc3-8341-4ecc-aebd-7503f2583fb3
+machine: pc-q35-42.9
diff --git a/test/run_config2command_tests.pl b/test/run_config2command_tests.pl
index c75be53..bad6501 100755
--- a/test/run_config2command_tests.pl
+++ b/test/run_config2command_tests.pl
@@ -117,6 +117,8 @@ sub parse_test($) {
$current_test->{qemu_version} = "$1";
} elsif ($line =~ /^HOST_ARCH:\s*(.*)\s*$/) {
$current_test->{host_arch} = "$1";
+ } elsif ($line =~ /^EXPECT_ERROR:\s*(.*)\s*$/) {
+ $current_test->{expect_error} = "$1";
}
}
}
@@ -280,7 +282,28 @@ sub do_test($) {
my ($vmid, $storecfg) = $base_env->@{qw(vmid storage_config)};
- my $cmdline = PVE::QemuServer::vm_commandline($storecfg, $vmid);
+ my $cmdline = eval { PVE::QemuServer::vm_commandline($storecfg, $vmid) };
+ my $err = $@;
+
+ if (my $err_expect = $current_test->{expect_error}) {
+ if (!$err) {
+ fail("$testname");
+ note("did NOT get any error, but expected error: $err_expect");
+ return;
+ }
+ chomp $err;
+ if ($err !~ /^\s*$err_expect\s*$/) {
+ fail("$testname");
+ note("error does not match expected error: '$err' !~ '$err_expect'");
+ } else {
+ pass("$testname");
+ }
+ return;
+ } elsif ($err) {
+ fail("$testname");
+ note("got unexpected error: $err");
+ return;
+ }
# check if QEMU version set correctly and test version_cmp
(my $qemu_major = get_test_qemu_version()) =~ s/\..*$//;
--
2.20.1
More information about the pve-devel
mailing list