mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
# Copyright (C) 2019 Freie Universität Berlin
|
|
#
|
|
# This file is subject to the terms and conditions of the GNU Lesser
|
|
# General Public License v2.1. See the file LICENSE in the top level
|
|
# directory for more details.
|
|
|
|
"""Utility functions for writing tests."""
|
|
|
|
import pexpect
|
|
|
|
|
|
def _test_utils_interactive_sync(child, retries, delay, ready_cmd='r',
|
|
ready_exp='READY'):
|
|
|
|
for _ in range(retries):
|
|
child.sendline(ready_cmd)
|
|
ret = child.expect_exact([ready_exp, pexpect.TIMEOUT], timeout=delay)
|
|
if ret == 0:
|
|
break
|
|
else:
|
|
# Last call to make it fail here,
|
|
child.expect_exact(ready_exp, timeout=0)
|
|
|
|
|
|
def test_utils_interactive_sync(child, retries, delay):
|
|
"""Synchronization for 'test_utils_interactive_sync' function
|
|
|
|
Interacts through input to wait for node being ready.
|
|
"""
|
|
_test_utils_interactive_sync(child, retries, delay)
|
|
child.sendline('s')
|
|
child.expect_exact('START')
|
|
|
|
|
|
def test_utils_interactive_sync_shell(child, retries, delay):
|
|
"""Synchronization `shell` and `test_utils_interactive_sync` modules are
|
|
used ('test_utils_interactive_sync' function is not)
|
|
|
|
Interacts through input to wait for node being ready.
|
|
"""
|
|
_test_utils_interactive_sync(child, retries, delay, '\n', '>')
|