[sonic-cfggen] Add unit test for DHCP relay Jinja2 templates (#1357)
This commit is contained in:
parent
653f572f9c
commit
a4a91cbd4a
src/sonic-config-engine/tests
@ -0,0 +1,33 @@
|
||||
[supervisord]
|
||||
logfile_maxbytes=1MB
|
||||
logfile_backups=2
|
||||
nodaemon=true
|
||||
|
||||
[program:start.sh]
|
||||
command=/usr/bin/start.sh
|
||||
priority=1
|
||||
autostart=true
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[program:rsyslogd]
|
||||
command=/usr/sbin/rsyslogd -n
|
||||
priority=2
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
[group:isc-dhcp-relay]
|
||||
programs=isc-dhcp-relay-Vlan1000
|
||||
|
||||
[program:isc-dhcp-relay-Vlan1000]
|
||||
command=/usr/sbin/dhcrelay -d -m discard -a %%h:%%p %%P --name-alias-map-file /tmp/port-name-alias-map.txt -i Vlan1000 -i PortChannel02 -i PortChannel03 -i PortChannel04 -i PortChannel01 192.0.0.1 192.0.0.2
|
||||
priority=3
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
|
||||
|
43
src/sonic-config-engine/tests/sample_output/wait_for_intf.sh
Normal file
43
src/sonic-config-engine/tests/sample_output/wait_for_intf.sh
Normal file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function wait_until_iface_ready
|
||||
{
|
||||
IFACE=$1
|
||||
|
||||
echo "Waiting until interface $IFACE is up..."
|
||||
|
||||
# Wait for the interface to come up (i.e., 'ip link show' returns 0)
|
||||
until ip link show dev $IFACE up > /dev/null 2>&1; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo "Interface $IFACE is up"
|
||||
|
||||
echo "Waiting until interface $IFACE has an IPv4 address..."
|
||||
|
||||
# Wait until the interface gets assigned an IPv4 address
|
||||
while true; do
|
||||
IP=$(ip -4 addr show dev $IFACE | grep "inet " | awk '{ print $2 }' | cut -d '/' -f1)
|
||||
|
||||
if [ -n "$IP" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo "Interface $IFACE is configured with IP $IP"
|
||||
}
|
||||
|
||||
|
||||
# Wait for all interfaces to come up and have IPv4 addresses assigned
|
||||
wait_until_iface_ready Vlan1000
|
||||
wait_until_iface_ready PortChannel04
|
||||
wait_until_iface_ready PortChannel02
|
||||
wait_until_iface_ready PortChannel03
|
||||
wait_until_iface_ready PortChannel03
|
||||
wait_until_iface_ready PortChannel01
|
||||
wait_until_iface_ready PortChannel02
|
||||
wait_until_iface_ready PortChannel04
|
||||
wait_until_iface_ready PortChannel01
|
||||
|
@ -40,6 +40,19 @@ class TestJ2Files(TestCase):
|
||||
self.run_script(argument)
|
||||
self.assertTrue(filecmp.cmp(os.path.join(self.test_dir, 'sample_output', 'ports.json'), self.output_file))
|
||||
|
||||
def test_dhcp_relay(self):
|
||||
# Test generation of wait_for_intf.sh
|
||||
template_path = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-dhcp-relay', 'wait_for_intf.sh.j2')
|
||||
argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + template_path + ' > ' + self.output_file
|
||||
self.run_script(argument)
|
||||
self.assertTrue(filecmp.cmp(os.path.join(self.test_dir, 'sample_output', 'wait_for_intf.sh'), self.output_file))
|
||||
|
||||
# Test generation of docker-dhcp-relay.supervisord.conf
|
||||
template_path = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-dhcp-relay', 'docker-dhcp-relay.supervisord.conf.j2')
|
||||
argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + template_path + ' > ' + self.output_file
|
||||
self.run_script(argument)
|
||||
self.assertTrue(filecmp.cmp(os.path.join(self.test_dir, 'sample_output', 'docker-dhcp-relay.supervisord.conf'), self.output_file))
|
||||
|
||||
def test_lldp(self):
|
||||
lldpd_conf_template = os.path.join(self.test_dir, '..', '..', '..', 'dockers', 'docker-lldp-sv2', 'lldpd.conf.j2')
|
||||
argument = '-m ' + self.t0_minigraph + ' -p ' + self.t0_port_config + ' -t ' + lldpd_conf_template + ' > ' + self.output_file
|
||||
|
Reference in New Issue
Block a user