initial commit of file from CVS for e-smith-base on Thu 26 Oct 11:24:52 BST 2023
This commit is contained in:
102
root/etc/e-smith/tests/10e-smith-base/20interfaces.t
Normal file
102
root/etc/e-smith/tests/10e-smith-base/20interfaces.t
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/perl -w
|
||||
# vim: ft=perl:
|
||||
|
||||
use strict;
|
||||
use Test::More 'no_plan';
|
||||
|
||||
use esmith::util;
|
||||
use esmith::ConfigDB;
|
||||
|
||||
my $db = esmith::ConfigDB->open_ro;
|
||||
|
||||
my $internal = $db->get('InternalInterface');
|
||||
my $external = $db->get('ExternalInterface');
|
||||
|
||||
# Test the internal interface.
|
||||
ok( $internal, "InternalInterface exists" );
|
||||
ok( $internal->prop('type') eq 'interface', "InternalInterface is an interface" );
|
||||
ok( $internal->prop('Configuration') eq 'static',
|
||||
"InternalInterface Configuration is static" );
|
||||
ok( $internal->prop('Driver') eq $db->get_value("EthernetDriver1"),
|
||||
"InternalInterface Driver is correct" );
|
||||
ok( $internal->prop('IPAddress') eq $db->get_value("LocalIP"),
|
||||
"InternalInterface IPAddress is correct" );
|
||||
ok( $internal->prop('Netmask') eq $db->get_value("LocalNetmask"),
|
||||
"InternalInterface Netmask is correct" );
|
||||
|
||||
# There might be an external interface.
|
||||
SKIP: {
|
||||
skip "serveronly mode, no external interface expected", 9
|
||||
if $db->get_value('SystemMode') eq 'serveronly';
|
||||
ok( $external, "ExternalInterface exists" );
|
||||
ok( $external->prop('type') eq 'interface',
|
||||
"ExternalInterface is an interface" );
|
||||
ok( $external->prop('IPAddress') eq $db->get_value('ExternalIP'),
|
||||
"ExternalInterface IPAddress is correct" );
|
||||
ok( $external->prop('Netmask') eq $db->get_value('ExternalNetmask'),
|
||||
"ExternalInterface Netmask is correct" );
|
||||
ok( $external->prop('Gateway') eq $db->get_value('GatewayIP'),
|
||||
"ExternalInterface Gateway is correct" );
|
||||
ok( ($external->prop('Network'), $external->prop('Broadcast')) eq
|
||||
esmith::util::computeNetworkAndBroadcast($external->prop('IPAddress'),
|
||||
$external->prop('Netmask')),
|
||||
"ExternalInterface Network is correct" );
|
||||
if ($db->get_value('AccessType') eq 'dialup')
|
||||
{
|
||||
ok( $external->prop('Configuration') eq 'dialup',
|
||||
"ExternalInterface Configuration is dialup" );
|
||||
my $isdn = $db->get_prop('isdn', 'status') || "disabled";
|
||||
my $sync_isdn = $db->get_prop('isdn', 'UseSyncPPP') || "no";
|
||||
my $name = ($isdn eq "enabled" and $sync_isdn eq "yes") ?
|
||||
"ippp0" : "ppp0";
|
||||
ok( $external->prop('Name') eq $name, "ExternalInterface Name is $name" );
|
||||
}
|
||||
elsif ($db->get_prop('pppoe', 'status') eq 'enabled')
|
||||
{
|
||||
ok( $external->prop('Configuration') eq 'pppoe',
|
||||
"ExternalInterface Configuration is pppoe" );
|
||||
ok( $external->prop('Name') eq 'ppp0', "ExternalInterface name is ppp0" );
|
||||
}
|
||||
else
|
||||
{
|
||||
ok( $external->prop('Driver') eq $db->get_value("EthernetDriver2"),
|
||||
"ExternalInterface Driver is correct" );
|
||||
}
|
||||
|
||||
if ($db->get_value("ExternalDHCP") eq "on")
|
||||
{
|
||||
if ($db->get_value("DHCPClient") eq "dhi")
|
||||
{
|
||||
ok( $external->prop('Configuration') eq "DHCPHostname",
|
||||
"ExternalInterface Configuration is DHCPHostname" );
|
||||
}
|
||||
else
|
||||
{
|
||||
ok( $external->prop('Configuration') eq "DHCPEthernetAddress",
|
||||
"ExternalInterface Configuration is DHCPEthernetAddress" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
unless (($db->get_value('AccessType') eq 'dialup') ||
|
||||
($db->get_prop('pppoe', 'status') eq 'enabled'))
|
||||
{
|
||||
ok( $external->prop('Configuration') eq 'static',
|
||||
"ExternalInterface Configuration is static" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# The interfaces migrate fragment also creates a dhcpcd record.
|
||||
my $dhcpcd = $db->get("dhcpcd");
|
||||
|
||||
ok( defined $dhcpcd, "dhcpcd record exists" );
|
||||
ok( $dhcpcd->prop('type') eq 'service', "dhcpcd is a service" );
|
||||
if ($db->get_value("ExternalDHCP") eq "on")
|
||||
{
|
||||
ok( $dhcpcd->prop('status') eq 'enabled', "dhcpcd is enabled" );
|
||||
}
|
||||
else
|
||||
{
|
||||
ok( $dhcpcd->prop('status') eq 'disabled', "dhcpcd is disabled" );
|
||||
}
|
Reference in New Issue
Block a user