osmo_interact/vty.py: fix parsing of vty logging

Because the VTY logging target currently prints '\n\r' instead of '\r\n', the
python splitlines() separates those as interleaving empty lines. Ignore '\r' to
allow verifying VTY logging output as well.

Change-Id: I8de9cebaa9aad275f65c3672985b7cbca343b5a6
This commit is contained in:
Neels Hofmeyr 2018-09-10 15:44:45 +02:00
parent 4c8a0bdc39
commit b0621451e3
1 changed files with 7 additions and 1 deletions

View File

@ -110,7 +110,13 @@ class InteractVty(Interact):
last_line = "%s%s" % (last_line, new_data)
if last_line:
lines = last_line.splitlines()
# Separate the received response into lines.
# But note: the VTY logging currently separates with '\n\r', not '\r\n',
# see _vty_output() in libosmocore logging_vty.c.
# So we need to jump through hoops to not separate 'abc\n\rdef' as
# [ 'abc', '', 'def' ]; but also not to convert '\r\n\r\n' to '\r\n\n' ('\r{\r\n}\n')
# Simplest is to just drop all the '\r' and only care about the '\n'.
lines = last_line.replace('\r', '').splitlines()
received_lines.extend(lines[:-1])
last_line = lines[-1]