仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
18
tests/network-logging/network-logging.robot
Normal file
18
tests/network-logging/network-logging.robot
Normal file
@@ -0,0 +1,18 @@
|
||||
*** Settings ***
|
||||
Library telnet_library.py
|
||||
|
||||
*** Variables ***
|
||||
${READ_END_MARKER} TEST
|
||||
|
||||
*** Test Cases ***
|
||||
Should Attach To Server Socket Terminal
|
||||
Execute Command mach create
|
||||
|
||||
${RENODE_LOG_PORT}= Find Free Port
|
||||
Execute Command logNetwork ${RENODE_LOG_PORT}
|
||||
Telnet Connect ${RENODE_LOG_PORT}
|
||||
|
||||
Execute Command log "${READ_END_MARKER}"
|
||||
|
||||
${log_data}= Telnet Read Until ${READ_END_MARKER}
|
||||
Should Contain ${log_data} ${READ_END_MARKER}
|
||||
35
tests/network-logging/telnet_library.py
Normal file
35
tests/network-logging/telnet_library.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import socket
|
||||
import asyncio
|
||||
from telnetlib3 import open_connection, TelnetReader
|
||||
|
||||
ENCODING = "utf-8"
|
||||
|
||||
reader: TelnetReader
|
||||
|
||||
def find_free_port() -> int:
|
||||
# Return open port number
|
||||
s = socket.socket()
|
||||
s.bind(('localhost', 0))
|
||||
port = s.getsockname()[1]
|
||||
s.close()
|
||||
return port
|
||||
|
||||
def telnet_connect(port: int) -> None:
|
||||
global reader
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
# Coroutines with event loop required for robot tests
|
||||
coro = open_connection('localhost', port)
|
||||
reader, _ = loop.run_until_complete(coro)
|
||||
|
||||
def telnet_read_until(until_string: str, timeout: int = 15) -> str:
|
||||
global reader
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
# Wrap the readuntil coroutine with wait_for to add timeout
|
||||
coro = asyncio.wait_for(reader.readuntil(until_string.encode(ENCODING)), timeout=timeout)
|
||||
data = loop.run_until_complete(coro)
|
||||
|
||||
return data.decode(ENCODING)
|
||||
Reference in New Issue
Block a user