From b0733dde5d153435b702315b15c0243632fc83c3 Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Mon, 19 Dec 2022 16:38:29 +0100
Subject: dhcp: T4832: fix TypeError in smoketest

Commit cca7ec3e ("T4832: dhcp: Add IPv6-only dhcp option support (RFC 8925)")
extended the smoketests but used int over str when calilng the CLI wrapper.

This led to:
TypeError: sequence item 7: expected str instance, int found

(cherry picked from commit a741a9297f02f938653aeaa1af3c4a57364e9215)
---
 smoketest/scripts/cli/test_service_dhcp-server.py | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py
index 8568d96eb..b80566108 100755
--- a/smoketest/scripts/cli/test_service_dhcp-server.py
+++ b/smoketest/scripts/cli/test_service_dhcp-server.py
@@ -102,17 +102,17 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
     def test_dhcp_single_pool_options(self):
         shared_net_name = 'SMOKE-0815'
 
-        range_0_start   = inc_ip(subnet, 10)
-        range_0_stop    = inc_ip(subnet, 20)
-        smtp_server     = '1.2.3.4'
-        time_server     = '4.3.2.1'
-        tftp_server     = 'tftp.vyos.io'
-        search_domains  = ['foo.vyos.net', 'bar.vyos.net']
-        bootfile_name   = 'vyos'
-        bootfile_server = '192.0.2.1'
-        wpad            = 'http://wpad.vyos.io/foo/bar'
-        server_identifier = bootfile_server
-        ipv6_only_preferred = 300
+        range_0_start       = inc_ip(subnet, 10)
+        range_0_stop        = inc_ip(subnet, 20)
+        smtp_server         = '1.2.3.4'
+        time_server         = '4.3.2.1'
+        tftp_server         = 'tftp.vyos.io'
+        search_domains      = ['foo.vyos.net', 'bar.vyos.net']
+        bootfile_name       = 'vyos'
+        bootfile_server     = '192.0.2.1'
+        wpad                = 'http://wpad.vyos.io/foo/bar'
+        server_identifier   = bootfile_server
+        ipv6_only_preferred = '300'
 
         pool = base_path + ['shared-network-name', shared_net_name, 'subnet', subnet]
         # we use the first subnet IP address as default gateway
-- 
cgit v1.2.3


From 0577191c2dc46a5f9f9e9af34a2feeb8ce64aff7 Mon Sep 17 00:00:00 2001
From: Christian Breunig <christian@breunig.cc>
Date: Tue, 17 Jan 2023 15:21:10 +0100
Subject: smoketest: tftp: do not add/remove interfaces for each testrun, use
 setUpClass()

(cherry picked from commit 5cd2cd89b295c728f21c418c3fa081560a00eefc)
---
 smoketest/scripts/cli/test_service_tftp-server.py | 31 +++++++++++++++--------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/smoketest/scripts/cli/test_service_tftp-server.py b/smoketest/scripts/cli/test_service_tftp-server.py
index b57c33f26..99d81e203 100755
--- a/smoketest/scripts/cli/test_service_tftp-server.py
+++ b/smoketest/scripts/cli/test_service_tftp-server.py
@@ -33,15 +33,32 @@ address_ipv6 = '2001:db8::1'
 vrf = 'mgmt'
 
 class TestServiceTFTPD(VyOSUnitTestSHIM.TestCase):
-    def setUp(self):
-        self.cli_set(dummy_if_path + ['address', address_ipv4 + '/32'])
-        self.cli_set(dummy_if_path + ['address', address_ipv6 + '/128'])
+    @classmethod
+    def setUpClass(cls):
+        super(TestServiceTFTPD, cls).setUpClass()
+
+        # ensure we can also run this test on a live system - so lets clean
+        # out the current configuration :)
+        cls.cli_delete(cls, base_path)
+
+        cls.cli_set(cls, dummy_if_path + ['address', address_ipv4 + '/32'])
+        cls.cli_set(cls, dummy_if_path + ['address', address_ipv6 + '/128'])
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.cli_delete(cls, dummy_if_path)
+        super(TestServiceTFTPD, cls).tearDownClass()
 
     def tearDown(self):
+        # Check for running process
+        self.assertTrue(process_named_running(PROCESS_NAME))
+
         self.cli_delete(base_path)
-        self.cli_delete(dummy_if_path)
         self.cli_commit()
 
+        # Check for no longer running process
+        self.assertFalse(process_named_running(PROCESS_NAME))
+
     def test_01_tftpd_single(self):
         directory = '/tmp'
         port = '69' # default port
@@ -61,9 +78,6 @@ class TestServiceTFTPD(VyOSUnitTestSHIM.TestCase):
         # verify upload
         self.assertIn('--create --umask 000', config)
 
-        # Check for running process
-        self.assertTrue(process_named_running(PROCESS_NAME))
-
     def test_02_tftpd_multi(self):
         directory = '/tmp'
         address = [address_ipv4, address_ipv6]
@@ -125,9 +139,6 @@ class TestServiceTFTPD(VyOSUnitTestSHIM.TestCase):
         # verify upload
         self.assertIn('--create --umask 000', config)
 
-        # Check for running process
-        self.assertTrue(process_named_running(PROCESS_NAME))
-
         # Check for process in VRF
         tmp = cmd(f'ip vrf pids {vrf}')
         self.assertIn(PROCESS_NAME, tmp)
-- 
cgit v1.2.3