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 68639BB771 for ; Mon, 25 Mar 2024 14:21:06 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 516BD4CBB for ; Mon, 25 Mar 2024 14:21:06 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (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 for ; Mon, 25 Mar 2024 14:21:05 +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 1C09841F0E for ; Mon, 25 Mar 2024 14:21:05 +0100 (CET) Content-Type: text/plain; charset=UTF-8 Date: Mon, 25 Mar 2024 14:21:04 +0100 Message-Id: From: "Max Carrara" To: "Proxmox VE development discussion" Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Mailer: aerc 0.17.0-72-g6a84f1331f1c References: <20240307151319.301984-2-s.lendl@proxmox.com> <20240307151319.301984-5-s.lendl@proxmox.com> In-Reply-To: <20240307151319.301984-5-s.lendl@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.021 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH v2 pve-network 3/5] tests: mocking more functions to avoid system access 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, 25 Mar 2024 13:21:06 -0000 On Thu Mar 7, 2024 at 4:13 PM CET, Stefan Lendl wrote: > previously extracted functions are now mocked in the zone tests > > Signed-off-by: Stefan Lendl > --- > src/test/run_test_zones.pl | 36 +++++++++++++++++++++++++++++++++++- > 1 file changed, 35 insertions(+), 1 deletion(-) > > diff --git a/src/test/run_test_zones.pl b/src/test/run_test_zones.pl > index ce8edc2..2d9be88 100755 > --- a/src/test/run_test_zones.pl > +++ b/src/test/run_test_zones.pl > @@ -14,6 +14,10 @@ use PVE::Network::SDN::Zones; > use PVE::Network::SDN::Controllers; > use PVE::INotify; > =20 > +use Data::Dumper qw(Dumper); > +$Data::Dumper::Sortkeys =3D 1; > +$Data::Dumper::Indent =3D 1; > + > sub read_sdn_config { > my ($file) =3D @_; > =20 > @@ -29,7 +33,6 @@ sub read_sdn_config { > return $sdn_config; > } > =20 > - Somehow, this deletion makes this patch fail to apply. As in, the rejected hunk is literally the following: --- diff a/src/test/run_test_zones.pl b/src/test/run_test_zones.pl (rejected hu= nks) @@ -29,7 +33,6 @@ sub read_sdn_config { return $sdn_config; } =20 - my @tests =3D grep { -d } glob './zones/*/*'; =20 foreach my $test (@tests) { --- ... I don't know what happened here, but this can still just be applied otherwise - in my case, I resolved this via the following: * `git am --reject` * `git add src/test/run_test_zones.pl` * `git am --continue` Then it just applies. When in doubt, one may also check `src/test/run_test_zones.pl.rej` to see what was rejected - should be just the hunk I pasted above. IMHO this can also just be done when applying the series; while *somewhat* inconvenient, I don't really see this as a blocker or anything. So, LGTM! > my @tests =3D grep { -d } glob './zones/*/*'; > =20 > foreach my $test (@tests) { > @@ -47,8 +50,20 @@ foreach my $test (@tests) { > return 'localhost'; > }, > read_file =3D> sub { > + # HACK this assumes we are always calling PVE::INotify::read_file('= interfaces'); > return $interfaces_config; > }, > + read_etc_network_interfaces =3D> sub { > + return $interfaces_config; > + }, > + ); > + > + my $mocked_pve_sdn_controllers; > + $mocked_pve_sdn_controllers =3D Test::MockModule->new('PVE::Network:= :SDN::Controllers'); > + $mocked_pve_sdn_controllers->mock( > + read_etc_network_interfaces =3D> sub { > + return $interfaces_config; > + } > ); > =20 > my $pve_sdn_subnets; > @@ -88,6 +103,25 @@ foreach my $test (@tests) { > }, > ); > =20 > + my ($first_plugin) =3D %{$sdn_config->{controllers}->{ids}} if defin= ed $sdn_config->{controllers}; > + if ($first_plugin) { > + my $controller_plugin =3D PVE::Network::SDN::Controllers::Plugin->looku= p( > + $sdn_config->{controllers}->{ids}->{$first_plugin}->{type} > + ); > + my $mocked_controller_plugin =3D Test::MockModule->new($controller_plug= in); > + $mocked_controller_plugin->mock( > + write_controller_config =3D> sub { > + return; > + }, > + reload_controller =3D> sub { > + return; > + }, > + read_local_frr_config =3D> sub { > + return; > + }, > + ); > + } > + > my $name =3D $test; > my $expected =3D read_file("./$test/expected_sdn_interfaces"); > =20