Merge pull request #698 from rhansen/tests
t/get_ip_from_if.pl test improvements
This commit is contained in:
commit
2e26a63c2f
2 changed files with 23 additions and 31 deletions
19
.github/workflows/ci.yml
vendored
19
.github/workflows/ci.yml
vendored
|
@ -64,21 +64,11 @@ jobs:
|
|||
- fedora:rawhide
|
||||
- almalinux:8
|
||||
- almalinux:latest
|
||||
# RedHat UBI is mostly garbage due to a profound lack of basic
|
||||
# packages. It is tested anyway because it's the closest available
|
||||
# approximation of RHEL, aside from AlmaLinux. Some of the packages
|
||||
# needed for some tests aren't available, so those tests will be
|
||||
# skipped. I guess it's still better than nothing.
|
||||
- registry.access.redhat.com/ubi7/ubi:latest
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
steps:
|
||||
- if: ${{ matrix.image != 'registry.access.redhat.com/ubi7/ubi:latest' }}
|
||||
uses: actions/checkout@v4
|
||||
# ubi7 is too old for checkout@v4.
|
||||
- if: ${{ matrix.image == 'registry.access.redhat.com/ubi7/ubi:latest' }}
|
||||
uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: enable repositories (AlmaLinux 8)
|
||||
if: ${{ matrix.image == 'almalinux:8' }}
|
||||
run: |
|
||||
|
@ -93,12 +83,7 @@ jobs:
|
|||
# The --skip-broken argument works around RedHat UBI's missing packages.
|
||||
# (They're only used for testing, so it's OK to not install them.)
|
||||
run: |
|
||||
inst="dnf --refresh --skip-broken install -y"
|
||||
case '${{ matrix.image }}' in
|
||||
# RedHat UBI 7 (RHEL 7) doesn't have dnf.
|
||||
*ubi7*) inst="yum --skip-broken install -y";;
|
||||
esac
|
||||
${inst} \
|
||||
dnf --refresh --skip-broken install -y \
|
||||
automake \
|
||||
findutils \
|
||||
iproute \
|
||||
|
|
|
@ -39,23 +39,30 @@ subtest "get_ip_from_interface tests" => sub {
|
|||
}
|
||||
};
|
||||
|
||||
subtest "Get default interface and IP for test system" => sub {
|
||||
subtest "Get default interface and IP for test system (IPv4)" => sub {
|
||||
my $interface = ddclient::get_default_interface(4);
|
||||
if ($interface) {
|
||||
plan(skip_all => 'no IPv4 interface') if !$interface;
|
||||
isnt($interface, "lo", "Check for loopback 'lo'");
|
||||
isnt($interface, "lo0", "Check for loopback 'lo0'");
|
||||
my $ip1 = ddclient::get_ip_from_interface("default", 4);
|
||||
my $ip2 = ddclient::get_ip_from_interface($interface, 4);
|
||||
is($ip1, $ip2, "Check IPv4 from default interface");
|
||||
SKIP: {
|
||||
skip('default interface does not have an appropriate IPv4 addresses') if !$ip1;
|
||||
ok(ddclient::is_ipv4($ip1), "Valid IPv4 from get_ip_from_interface($interface)");
|
||||
}
|
||||
$interface = ddclient::get_default_interface(6);
|
||||
if ($interface) {
|
||||
};
|
||||
|
||||
subtest "Get default interface and IP for test system (IPv6)" => sub {
|
||||
my $interface = ddclient::get_default_interface(6);
|
||||
plan(skip_all => 'no IPv6 interface') if !$interface;
|
||||
isnt($interface, "lo", "Check for loopback 'lo'");
|
||||
isnt($interface, "lo0", "Check for loopback 'lo0'");
|
||||
my $ip1 = ddclient::get_ip_from_interface("default", 6);
|
||||
my $ip2 = ddclient::get_ip_from_interface($interface, 6);
|
||||
is($ip1, $ip2, "Check IPv6 from default interface");
|
||||
SKIP: {
|
||||
skip('default interface does not have an appropriate IPv6 addresses') if !$ip1;
|
||||
ok(ddclient::is_ipv6($ip1), "Valid IPv6 from get_ip_from_interface($interface)");
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue