From 7afa152f8d4a5be9940ba002c71132879b7bd461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Ferr=C3=A3o?= <2031761+viniciusferrao@users.noreply.github.com> Date: Sun, 23 Aug 2026 13:49:15 -0300 Subject: [PATCH] test(dhcp): prepare shared network helper stubs --- xCAT-test/unit/dhcp_kea_plugin_intent.t | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/xCAT-test/unit/dhcp_kea_plugin_intent.t b/xCAT-test/unit/dhcp_kea_plugin_intent.t index e4f624552..af544acab 100644 --- a/xCAT-test/unit/dhcp_kea_plugin_intent.t +++ b/xCAT-test/unit/dhcp_kea_plugin_intent.t @@ -7,6 +7,7 @@ use FindBin; use lib "$FindBin::Bin/../../perl-xCAT"; use File::Temp qw(tempdir); +use Socket (); use Test::More; BEGIN { @@ -39,6 +40,34 @@ BEGIN { sub thishostisnot { return 0; } sub ip_forwarding_enabled { return 0; } sub nodeonmynet { return 1; } + sub formatNetmask { + my ( $mask, $orig_type, $new_type ) = @_; + my $mask_number; + + if ( $orig_type == 0 ) { + $mask_number = unpack( 'N', Socket::inet_aton($mask) ); + } elsif ( $orig_type == 1 ) { + $mask_number = ( 2**$mask - 1 ) << ( 32 - $mask ); + } else { + return; + } + + return Socket::inet_ntoa( pack( 'N', $mask_number ) ) if $new_type == 0; + if ( $new_type == 1 ) { + my $binary_mask = unpack( 'B32', pack( 'N', $mask_number ) ); + return $binary_mask =~ tr/1/1/; + } + return; + } + sub isInSameSubnet { + my ( $ip1, $ip2, $mask, $mask_type ) = @_; + return unless $mask_type == 0; + + my $mask_number = unpack( 'N', Socket::inet_aton($mask) ); + my $ip1_number = unpack( 'N', Socket::inet_aton($ip1) ); + my $ip2_number = unpack( 'N', Socket::inet_aton($ip2) ); + return ( $ip1_number & $mask_number ) == ( $ip2_number & $mask_number ); + } $INC{'xCAT/NetworkUtils.pm'} = __FILE__; package xCAT::ServiceNodeUtils;