all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: "Max Carrara" <m.carrara@proxmox.com>
To: "Proxmox VE development discussion" <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH v2 pve-network 3/5] tests: mocking more functions to avoid system access
Date: Mon, 25 Mar 2024 14:21:04 +0100	[thread overview]
Message-ID: <D02V1SDCZ06I.2OUWRVNJEEES1@proxmox.com> (raw)
In-Reply-To: <20240307151319.301984-5-s.lendl@proxmox.com>

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 <s.lendl@proxmox.com>
> ---
>  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;
>  
> +use Data::Dumper qw(Dumper);
> +$Data::Dumper::Sortkeys = 1;
> +$Data::Dumper::Indent = 1;
> +
>  sub read_sdn_config {
>      my ($file) = @_;
>  
> @@ -29,7 +33,6 @@ sub read_sdn_config {
>      return $sdn_config;
>  }
>  
> -

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 hunks)
@@ -29,7 +33,6 @@ sub read_sdn_config {
     return $sdn_config;
 }
 
-
 my @tests = grep { -d } glob './zones/*/*';
 
 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 = grep { -d } glob './zones/*/*';
>  
>  foreach my $test (@tests) {
> @@ -47,8 +50,20 @@ foreach my $test (@tests) {
>  	    return 'localhost';
>  	},
>  	read_file => sub {
> +	    # HACK this assumes we are always calling PVE::INotify::read_file('interfaces');
>  	    return $interfaces_config;
>  	},
> +	read_etc_network_interfaces => sub {
> +	    return $interfaces_config;
> +	},
> +    );
> +
> +    my $mocked_pve_sdn_controllers;
> +    $mocked_pve_sdn_controllers = Test::MockModule->new('PVE::Network::SDN::Controllers');
> +    $mocked_pve_sdn_controllers->mock(
> +	read_etc_network_interfaces => sub {
> +	    return $interfaces_config;
> +	}
>      );
>  
>      my $pve_sdn_subnets;
> @@ -88,6 +103,25 @@ foreach my $test (@tests) {
>  	},
>      );
>  
> +    my ($first_plugin) = %{$sdn_config->{controllers}->{ids}} if defined $sdn_config->{controllers};
> +    if ($first_plugin) {
> +	my $controller_plugin = PVE::Network::SDN::Controllers::Plugin->lookup(
> +	    $sdn_config->{controllers}->{ids}->{$first_plugin}->{type}
> +	);
> +	my $mocked_controller_plugin = Test::MockModule->new($controller_plugin);
> +	$mocked_controller_plugin->mock(
> +	    write_controller_config => sub {
> +		return;
> +	    },
> +	    reload_controller => sub {
> +		return;
> +	    },
> +	    read_local_frr_config => sub {
> +		return;
> +	    },
> +	);
> +    }
> +
>      my $name = $test;
>      my $expected = read_file("./$test/expected_sdn_interfaces");
>  





  reply	other threads:[~2024-03-25 13:21 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-07 15:13 [pve-devel] [PATCH v2 pve-network 0/5] SDN tests in sbuild Stefan Lendl
2024-03-07 15:13 ` [pve-devel] [PATCH v2 pve-network 1/5] refactor(controllers): extract read_etc_network_interfaces Stefan Lendl
2024-03-25 13:19   ` Max Carrara
2024-03-07 15:13 ` [pve-devel] [PATCH v2 pve-network 2/5] refactor(evpn): extract read_local_frr_config Stefan Lendl
2024-03-25 13:20   ` Max Carrara
2024-03-07 15:13 ` [pve-devel] [PATCH v2 pve-network 3/5] tests: mocking more functions to avoid system access Stefan Lendl
2024-03-25 13:21   ` Max Carrara [this message]
2024-03-07 15:13 ` [pve-devel] [PATCH v2 pve-network 4/5] tests: disable failing DNS tests Stefan Lendl
2024-03-25 13:21   ` Max Carrara
2024-03-07 15:13 ` [pve-devel] [PATCH v2 pve-network 5/5] tests: run tests in sbuild Stefan Lendl
2024-03-25 13:24 ` [pve-devel] [PATCH v2 pve-network 0/5] SDN " Max Carrara
2024-04-02 11:10   ` Stefan Lendl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=D02V1SDCZ06I.2OUWRVNJEEES1@proxmox.com \
    --to=m.carrara@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal