[pve-devel] [PATCH common] replace the smartmatch operator

2016-05-11 Thread Wolfgang Bumiller
---
 test/etc_network_interfaces/runtest.pl   | 10 ++
 test/etc_network_interfaces/t.list-interfaces.pl |  4 +---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/test/etc_network_interfaces/runtest.pl 
b/test/etc_network_interfaces/runtest.pl
index 92cd7f8..3e0fc35 100755
--- a/test/etc_network_interfaces/runtest.pl
+++ b/test/etc_network_interfaces/runtest.pl
@@ -182,6 +182,16 @@ sub expect($) {
 diff($expected, $got);
 }
 
+# Compare two arrays of strings
+sub strarray_equals($$) {
+my ($left, $right) = @_;
+return ref($left) && ref($right) &&
+  ref($left) eq 'ARRAY' &&
+  ref($right) eq 'ARRAY' &&
+  scalar(@$left) == scalar(@$right) &&
+  !grep { $left->[$_] ne $right->[$_] } (0..(@$left-1));
+}
+
 ##
 ## Main test execution:
 ##
diff --git a/test/etc_network_interfaces/t.list-interfaces.pl 
b/test/etc_network_interfaces/t.list-interfaces.pl
index caffe88..a106377 100644
--- a/test/etc_network_interfaces/t.list-interfaces.pl
+++ b/test/etc_network_interfaces/t.list-interfaces.pl
@@ -1,5 +1,3 @@
-no warnings 'experimental::smartmatch';
-
 # Assuming eth0..3 and eth100
 # eth0 is part of vmbr0, eth100 is part of the OVS bridge vmbr1
 # vmbr0 has ipv4 and ipv6, OVS only ipv4
@@ -100,7 +98,7 @@ $ck->('eth100', ovs_type => 'OVSPort');
 $ck->('eth100', ovs_bridge => 'vmbr1');
 
 my $f100 = $ifaces->{vmbr0}->{families};
-die "invalid families defined for vmbr0: @$f100\n" unless [sort(@$f100)] ~~ 
['inet', 'inet6'];
+die "invalid families defined for vmbr0: @$f100\n" if !strarray_equals($f100, 
['inet', 'inet6']);
 
 # idempotency
 r(w());
-- 
2.1.4


___
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


Re: [pve-devel] [PATCH common] replace the smartmatch operator

2016-05-12 Thread Dietmar Maurer
I prefer the following code:

my @f100 = sort @{$ifaces->{vmbr0}->{families}};
die "invalid families defined for vmbr0"
if (scalar(@f100) != 2) || ($f100[0] ne 'inet') || ($f100[1] ne 'inet6');

> +# Compare two arrays of strings
> +sub strarray_equals($$) {
> +my ($left, $right) = @_;
> +return ref($left) && ref($right) &&
> +ref($left) eq 'ARRAY' &&
> +ref($right) eq 'ARRAY' &&
> +scalar(@$left) == scalar(@$right) &&
> +!grep { $left->[$_] ne $right->[$_] } (0..(@$left-1));
> +}
> +

___
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel