Skip to content

Commit acb438d

Browse files
authored
Merge pull request #1373 from aparcar/dashes_and_dots
shelldriver: allow dashes and dots in device names
2 parents fe37a35 + 6d0b571 commit acb438d

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

labgrid/driver/shelldriver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ def get_ip_addresses(self, device=None):
596596
device = self.get_default_interface_device_name()
597597

598598
regex = r"""\d+: # leading number
599-
\s+\w+ # interface name
599+
\s+[\w\.-]+ # interface name
600600
\s+inet6?\s+(\S+) # IP address, prefix
601601
.*global # global scope, not host scope"""
602602

tests/test_shelldriver.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from labgrid.driver import ShellDriver, ExecutionError
44
from labgrid.exceptions import NoDriverFoundError
55

6+
from ipaddress import IPv4Interface
7+
68

79
class TestShellDriver:
810
def test_instance(self, target, serial_driver):
@@ -45,3 +47,18 @@ def test_run_with_timeout(self, target_with_fakeconsole, mocker):
4547
assert res == ['success']
4648
res = d.run("test")
4749
assert res == (['success'], [], 0)
50+
51+
def test_get_ip_addresses(self, target_with_fakeconsole, mocker):
52+
fake_ip_addr_show = r"""
53+
18: br-lan.42 inet 192.168.42.1/24 brd 192.168.42.255 scope global br-lan.42\ valid_lft forever preferred_lft forever
54+
18: br-lan.42 inet6 fe80::9683:c4ff:fea6:fb6b/64 scope link \ valid_lft forever preferred_lft forever
55+
"""
56+
57+
t = target_with_fakeconsole
58+
d = ShellDriver(t, "shell", prompt='dummy', login_prompt='dummy', username='dummy')
59+
d.on_activate = mocker.MagicMock()
60+
d = t.get_driver('ShellDriver')
61+
d._run = mocker.MagicMock(return_value=([fake_ip_addr_show], [], 0))
62+
63+
res = d.get_ip_addresses("br-lan.42")
64+
assert res[0] == IPv4Interface("192.168.42.1/24")

0 commit comments

Comments
 (0)