Default lease file for dhcp varies between OSes. For instance,
/var/lib/dhcp/dhcpd6.leases or /var/lib/dhcpd/dhcpd6.leases might be used.
Before this patch, lease file was not deleted on some OSes, resulting in
potential test failures (e.g. when multiple prefix delgation tests were
executed within a certain time).

Signed-off-by: Xavier Simonart <[email protected]>
---
 tests/system-common-macros.at | 34 +++++++++++++++++++++++++---------
 tests/system-ovn.at           | 12 +++---------
 2 files changed, 28 insertions(+), 18 deletions(-)

diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at
index 72ff6bdfc..0b32bb597 100644
--- a/tests/system-common-macros.at
+++ b/tests/system-common-macros.at
@@ -293,6 +293,27 @@ m4_define([NETNS_START_TCPDUMP],
     ]
 )
 
+# NETNS_START_DHCPD([namespace], [iface], [dhcpd.conf])
+#
+# Helper to properly start dhcpd
+m4_define([NETNS_START_DHCPD],
+    [
+        DHCP_TEST_DIR="/tmp/dhcp-test"
+        rm -rf $DHCP_TEST_DIR
+        mkdir $DHCP_TEST_DIR
+
+        mv $3 $DHCP_TEST_DIR/dhcpd.conf
+
+        touch $DHCP_TEST_DIR/dhcpd.leases
+        chown root:dhcpd $DHCP_TEST_DIR $DHCP_TEST_DIR/dhcpd.leases
+        chmod 775 $DHCP_TEST_DIR
+        chmod 664 $DHCP_TEST_DIR/dhcpd.leases
+        on_exit 'rm -rf $DHCP_TEST_DIR'
+
+        NETNS_START_TCPDUMP([$1], [-nni $2], [$1])
+        NETNS_DAEMONIZE([$1], [dhcpd -6 -f -lf $DHCP_TEST_DIR/dhcpd.leases -cf 
$DHCP_TEST_DIR/dhcpd.conf $2 > dhcpd.log 2>&1], [dhcpd.pid])
+    ]
+)
 
 # OVS_CHECK_VXLAN()
 #
@@ -446,21 +467,16 @@ OVN_POPULATE_ARP
 
 check ovn-nbctl --wait=hv sync
 
-cat > /etc/dhcp/dhcpd.conf <<EOF
+cat > dhcpd.conf <<EOF
 option dhcp-rebinding-time 10;
 option dhcp-renewal-time 5;
 subnet6 2001:db8:3333::/56 {
     prefix6 2001:db8:3333:100:: 2001:db8:3333:111:: /64;
 }
 EOF
-rm -f /var/lib/dhcp/dhcpd6.leases
-touch /var/lib/dhcp/dhcpd6.leases
-chown root:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd6.leases
-chmod 775 /var/lib/dhcp
-chmod 664 /var/lib/dhcp/dhcpd6.leases
-
-NETNS_START_TCPDUMP([server], [-nni s1], [server])
-NETNS_DAEMONIZE([server], [dhcpd -6 -f s1 > dhcpd.log 2>&1], [dhcpd.pid])
+
+NETNS_START_DHCPD([server], [s1], [dhcpd.conf])
+
 check ovn-nbctl --wait=hv sync
 
 OVS_WAIT_WHILE([test "$(ovn-nbctl get logical_router_port rp-public 
ipv6_prefix | cut -c4-15)" = ""])
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 9982da7fe..59ba58b1f 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -14605,21 +14605,15 @@ OVN_POPULATE_ARP
 
 check ovn-nbctl --wait=hv sync
 
-cat > /etc/dhcp/dhcpd.conf <<EOF
+cat > dhcpd.conf <<EOF
 option dhcp-rebinding-time 10;
 option dhcp-renewal-time 5;
 subnet6 2001:db8:3333::/56 {
     prefix6 2001:db8:3333:100:: 2001:db8:3333:111:: /64;
 }
 EOF
-rm -f /var/lib/dhcp/dhcpd6.leases
-touch /var/lib/dhcp/dhcpd6.leases
-chown root:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd6.leases
-chmod 775 /var/lib/dhcp
-chmod 664 /var/lib/dhcp/dhcpd6.leases
-
-NETNS_START_TCPDUMP([server], [-nni s1], [server])
-NETNS_DAEMONIZE([server], [dhcpd -6 -f s1 > dhcpd.log 2>&1], [dhcpd.pid])
+
+NETNS_START_DHCPD([server], [s1], [dhcpd.conf])
 check ovn-nbctl --wait=hv sync
 
 AT_CHECK([ovn-appctl debug/dump-peer-ports | sort], [0], [dnl
-- 
2.47.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to