summaryrefslogtreecommitdiff
path: root/scripts/cli/test_interfaces_ethernet.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cli/test_interfaces_ethernet.py')
-rwxr-xr-xscripts/cli/test_interfaces_ethernet.py36
1 files changed, 33 insertions, 3 deletions
diff --git a/scripts/cli/test_interfaces_ethernet.py b/scripts/cli/test_interfaces_ethernet.py
index 373c81680..761ec7506 100755
--- a/scripts/cli/test_interfaces_ethernet.py
+++ b/scripts/cli/test_interfaces_ethernet.py
@@ -14,6 +14,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import os
import unittest
from base_interfaces_test import BasicInterfaceTest
@@ -24,15 +25,44 @@ class EthernetInterfaceTest(BasicInterfaceTest.BaseTest):
super().setUp()
self._base_path = ['interfaces', 'ethernet']
+ self._test_ip = True
self._test_mtu = True
+ self._test_vlan = True
+ self._test_qinq = True
+ self._test_ipv6 = True
self._interfaces = []
# we need to filter out VLAN interfaces identified by a dot (.)
# in their name - just in case!
- for tmp in Section.interfaces("ethernet"):
- if not '.' in tmp:
- self._interfaces.append(tmp)
+ if 'TEST_ETH' in os.environ:
+ tmp = os.environ['TEST_ETH'].split()
+ self._interfaces = tmp
+ else:
+ for tmp in Section.interfaces("ethernet"):
+ if not '.' in tmp:
+ self._interfaces.append(tmp)
+ def test_dhcp_disable(self):
+ """
+ When interface is configured as admin down, it must be admin down even
+ """
+ for interface in self._interfaces:
+ self.session.set(self._base_path + [interface, 'disable'])
+ for option in self._options.get(interface, []):
+ self.session.set(self._base_path + [interface] + option.split())
+
+ # Also enable DHCP (ISC DHCP always places interface in admin up
+ # state so we check that we do not start DHCP client.
+ # https://phabricator.vyos.net/T2767
+ self.session.set(self._base_path + [interface, 'address', 'dhcp'])
+
+ self.session.commit()
+
+ # Validate interface state
+ for interface in self._interfaces:
+ with open(f'/sys/class/net/{interface}/flags', 'r') as f:
+ flags = f.read()
+ self.assertEqual(int(flags, 16) & 1, 0)
if __name__ == '__main__':
unittest.main()