From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 3998D69FA8 for ; Mon, 15 Feb 2021 13:25:49 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 87734A8DB for ; Mon, 15 Feb 2021 13:25:18 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 4B400A85B for ; Mon, 15 Feb 2021 13:25:16 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 1AADD42F70 for ; Mon, 15 Feb 2021 13:25:16 +0100 (CET) From: Fabian Ebner To: pve-devel@lists.proxmox.com Date: Mon, 15 Feb 2021 13:25:01 +0100 Message-Id: <20210215122502.23854-8-f.ebner@proxmox.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210215122502.23854-1-f.ebner@proxmox.com> References: <20210215122502.23854-1-f.ebner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.001 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH v2 manager 7/8] test: vzdump: add tests for mailto X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Feb 2021 12:25:49 -0000 Re-use the existing code, by allowing special kinds of 'tests' that just set the options that are tested for. Signed-off-by: Fabian Ebner --- No changes from v1. Dependency bump for pve-guest-common is needed. test/vzdump_new_retention_test.pl | 174 +++++++++++++++++++++++++++++- 1 file changed, 172 insertions(+), 2 deletions(-) diff --git a/test/vzdump_new_retention_test.pl b/test/vzdump_new_retention_test.pl index 569419fb..a8f70d62 100755 --- a/test/vzdump_new_retention_test.pl +++ b/test/vzdump_new_retention_test.pl @@ -73,7 +73,7 @@ $pve_tools_module->mock( }, ); -my @tested_options = qw(prune-backups remove); +my $tested_options; # each test consists of the following: # name - unique name for the test @@ -81,7 +81,13 @@ my @tested_options = qw(prune-backups remove); # storage_param - parameters for the mocked storage configuration # vzdump_param - parameters for the mocked /etc/vzdump.conf # expected - expected options +# +# To begin testing for different options, use a fake test like the first one my @tests = ( + { + description => 'BEGIN RETENTION TESTS', + tested_options => ['prune-backups', 'remove'], + }, { description => 'no params', expected => { @@ -464,11 +470,174 @@ my @tests = ( remove => 0, }, }, + { + description => 'BEGIN MAILTO TESTS', + tested_options => ['mailto'], + }, + { + description => 'mailto vzdump 1', + vzdump_param => { + 'mailto' => 'developer@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + ], + }, + }, + { + description => 'mailto vzdump 2', + vzdump_param => { + 'mailto' => 'developer@proxmox.com admin@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto vzdump 3', + vzdump_param => { + 'mailto' => 'developer@proxmox.com,admin@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto vzdump 4', + vzdump_param => { + 'mailto' => 'developer@proxmox.com, admin@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto vzdump 5', + vzdump_param => { + 'mailto' => ' ,,; developer@proxmox.com, ; admin@proxmox.com ', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto vzdump 6', + vzdump_param => { + 'mailto' => '', + }, + expected => { + 'mailto' => [], + }, + }, + { + description => 'mailto CLI 1', + cli_param => { + 'mailto' => 'developer@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + ], + }, + }, + { + description => 'mailto CLI 2', + cli_param => { + 'mailto' => 'developer@proxmox.com admin@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto CLI 3', + cli_param => { + 'mailto' => 'developer@proxmox.com,admin@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto CLI 4', + cli_param => { + 'mailto' => 'developer@proxmox.com, admin@proxmox.com', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto CLI 5', + cli_param => { + 'mailto' => ' ,,; developer@proxmox.com, ; admin@proxmox.com ', + }, + expected => { + 'mailto' => [ + 'developer@proxmox.com', + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto both 1', + vzdump_param => { + 'mailto' => 'developer@proxmox.com', + }, + cli_param => { + 'mailto' => 'admin@proxmox.com', + }, + expected => { + 'mailto' => [ + 'admin@proxmox.com', + ], + }, + }, + { + description => 'mailto both 2', + vzdump_param => { + 'mailto' => 'developer@proxmox.com', + }, + cli_param => { + 'mailto' => '', + }, + expected => { + 'mailto' => [], + }, + }, ); plan tests => scalar @tests; foreach my $test (@tests) { + if (defined($test->{tested_options})) { + $tested_options = $test->{tested_options}; + ok(1, $test->{description}); + next; + } + prepare_storage_config($test->{storage_param}); prepare_vzdump_config($test->{vzdump_param}); @@ -477,6 +646,7 @@ foreach my $test (@tests) { my $got = eval { PVE::VZDump::verify_vzdump_parameters($test->{cli_param}, 1); + PVE::VZDump::parse_mailto_exclude_path($test->{cli_param}); my $vzdump = PVE::VZDump->new('fake cmdline', $test->{cli_param}, undef); @@ -484,7 +654,7 @@ foreach my $test (@tests) { die "maxfiles is defined" if defined($opts->{maxfiles}); my $res = {}; - foreach my $opt (@tested_options) { + foreach my $opt (@{$tested_options}) { next if !defined($opts->{$opt}); $res->{$opt} = $opts->{$opt}; } -- 2.20.1