* [pve-devel] applied: [PATCH qemu-server] tests: cfg2cmd: check also warnings
@ 2020-08-21 8:39 Thomas Lamprecht
0 siblings, 0 replies; only message in thread
From: Thomas Lamprecht @ 2020-08-21 8:39 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
As this would have caught a recent regression from commit
789fe8e8188521d55044d37c055d5d2cabbd5cfd
.../custom-cpu-model-host-phys-bits.conf | 1 +
test/cfg2cmd/custom-cpu-model.conf | 1 +
test/run_config2command_tests.pl | 23 +++++++++++++++++++
3 files changed, 25 insertions(+)
diff --git a/test/cfg2cmd/custom-cpu-model-host-phys-bits.conf b/test/cfg2cmd/custom-cpu-model-host-phys-bits.conf
index a770d93..76abef6 100644
--- a/test/cfg2cmd/custom-cpu-model-host-phys-bits.conf
+++ b/test/cfg2cmd/custom-cpu-model-host-phys-bits.conf
@@ -1,4 +1,5 @@
# TEST: Check if custom CPU models are resolved correctly
+# EXPECT_WARN: warning: CPU flag/setting '-kvm_pv_unhalt' (set by custom CPU model) overwrites '+kvm_pv_unhalt' (set by PVE; to improve Linux guest spinlock performance)
cores: 3
cpu: custom-qemu64,phys-bits=host
name: customcpu
diff --git a/test/cfg2cmd/custom-cpu-model.conf b/test/cfg2cmd/custom-cpu-model.conf
index f1fa6ca..f4df6eb 100644
--- a/test/cfg2cmd/custom-cpu-model.conf
+++ b/test/cfg2cmd/custom-cpu-model.conf
@@ -1,4 +1,5 @@
# TEST: Check if custom CPU models are resolved correctly
+# EXPECT_WARN: warning: CPU flag/setting '-kvm_pv_unhalt' (set by custom CPU model) overwrites '+kvm_pv_unhalt' (set by PVE; to improve Linux guest spinlock performance)
cores: 3
cpu: custom-qemu64,flags=+virt-ssbd
name: customcpu
diff --git a/test/run_config2command_tests.pl b/test/run_config2command_tests.pl
index 7a4c0eb..2ea6f83 100755
--- a/test/run_config2command_tests.pl
+++ b/test/run_config2command_tests.pl
@@ -84,6 +84,8 @@ my $current_test; # = {
# description => 'Test description', # if available
# qemu_version => '2.12',
# host_arch => 'HOST_ARCH',
+# expected_error => 'error message',
+# expected_warning => 'warning message',
# config => { config hash },
# expected => [ expected outcome cmd line array ],
# };
@@ -92,6 +94,7 @@ my $current_test; # = {
# TEST: A single line describing the test, gets outputted
# QEMU_VERSION: \d+\.\d+(\.\d+)? (defaults to current version)
# HOST_ARCH: x86_64 | aarch64 (default to x86_64, to make tests stable)
+# EXPECT_ERROR: <error message> For negative tests
# all fields are optional
sub parse_test($) {
my ($config_fn) = @_;
@@ -120,6 +123,8 @@ sub parse_test($) {
$current_test->{host_arch} = "$1";
} elsif ($line =~ /^EXPECT_ERROR:\s*(.*)\s*$/) {
$current_test->{expect_error} = "$1";
+ } elsif ($line =~ /^EXPECT_WARN(?:ING)?:\s*(.*)\s*$/) {
+ $current_test->{expect_warning} = "$1";
}
}
@@ -306,6 +311,24 @@ sub diff($$) {
die "files differ:\n$diff";
}
+$SIG{__WARN__} = sub {
+ my $warning = shift;
+ chomp $warning;
+ if (my $warn_expect = $current_test->{expect_warning}) {
+ if ($warn_expect ne $warning) {
+ fail($current_test->{testname});
+ note("warning does not match expected error: '$warning' != '$warn_expect'");
+ } else {
+ note("got expected warning '$warning'");
+ return;
+ }
+ }
+
+ #warn "======= WARN ======\n= ". $_[0] . "===================\n";
+ fail($current_test->{testname});
+ note("got unexpected expected warning '$warning'");
+};
+
sub do_test($) {
my ($config_fn) = @_;
--
2.20.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-08-21 8:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-21 8:39 [pve-devel] applied: [PATCH qemu-server] tests: cfg2cmd: check also warnings Thomas Lamprecht
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.