mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Alexandre Abadie
f885b90bd9
- Ensure the whole ps output is displayed in the terminal before exiting the script - Escape parenthesis in line regexp
68 lines
2.3 KiB
Python
Executable File
68 lines
2.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# Copyright (C) 2017 Inria
|
|
#
|
|
# 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.
|
|
|
|
import sys
|
|
from testrunner import run
|
|
|
|
PS_EXPECTED = (
|
|
(r'\tpid | name | state Q | pri | stack \( used\) | '
|
|
r'base addr | current | runtime | switches'),
|
|
(r'\t - | isr_stack | - - | - | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+'),
|
|
(r'\t 1 | idle | pending Q | 15 | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+ | \d+\.\d+% | \d+'),
|
|
(r'\t 2 | main | running Q | 7 | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+ | \d+\.\d+% | \d+'),
|
|
(r'\t 3 | thread | bl rx _ | 6 | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+ | \d+\.\d+% | \d+'),
|
|
(r'\t 4 | thread | bl rx _ | 6 | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+ | \d+\.\d+% | \d+'),
|
|
(r'\t 5 | thread | bl rx _ | 6 | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+ | \d+\.\d+% | \d+'),
|
|
(r'\t 6 | thread | bl mutex _ | 6 | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+ | \d+\.\d+% | \d+'),
|
|
(r'\t 7 | thread | bl rx _ | 6 | \d+ \( -?\d+\) | '
|
|
r'0x\d+ | 0x\d+ | \d+\.\d+% | \d+'),
|
|
(r'\t | SUM | | | \d+ \(\d+\)')
|
|
)
|
|
|
|
|
|
def _check_startup(child):
|
|
for i in range(5):
|
|
child.expect_exact('Creating thread #{}, next={}'
|
|
.format(i, (i + 1) % 5))
|
|
|
|
|
|
def _check_help(child):
|
|
child.sendline('')
|
|
child.expect_exact('>')
|
|
child.sendline('help')
|
|
child.expect_exact('Command Description')
|
|
child.expect_exact('---------------------------------------')
|
|
child.expect_exact('reboot Reboot the node')
|
|
child.expect_exact('ps Prints information about '
|
|
'running threads.')
|
|
|
|
|
|
def _check_ps(child):
|
|
child.sendline('ps')
|
|
for line in PS_EXPECTED:
|
|
child.expect(line)
|
|
# Wait for all lines of the ps output to be displayed
|
|
child.expect_exact('>')
|
|
|
|
|
|
def testfunc(child):
|
|
_check_startup(child)
|
|
_check_help(child)
|
|
_check_ps(child)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(run(testfunc))
|