仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
83
tests/unit-tests/robot-integration.robot
Normal file
83
tests/unit-tests/robot-integration.robot
Normal file
@@ -0,0 +1,83 @@
|
||||
*** Test Cases ***
|
||||
Should Fail On Loading Nonexisting Script
|
||||
${msg}= Run Keyword And Expect Error * Execute Script nonexistingscript.resc
|
||||
Should Contain ${msg} Could not find file
|
||||
|
||||
Should Fail On Builtin With Invalid Parameters
|
||||
${msg}= Run Keyword And Expect Error * Execute Command log invalid_commmand
|
||||
Should Contain ${msg} Bad parameters for command
|
||||
|
||||
Should Fail On Peripheral Method With Invalid Parameters
|
||||
${msg}= Run Keyword And Expect Error * Execute Command Save invalid_value
|
||||
Should Contain ${msg} Parameters did not match the signature
|
||||
|
||||
Should Fail On Python Command With Invalid Parameters
|
||||
${msg}= Run Keyword And Expect Error * Execute Command next_value "invalid_value"
|
||||
Should Contain ${msg} unsupported operand type
|
||||
|
||||
Should Fail On Command Error
|
||||
${msg}= Run Keyword And Expect Error * Execute Command include @nonexistingfile
|
||||
Should Contain ${msg} File does not exist
|
||||
|
||||
Should Allow Passing Python Float As Float Argument
|
||||
${flt}= Evaluate float(1)
|
||||
Create Log Tester ${flt}
|
||||
|
||||
Should Allow Passing Python Int As Float Argument
|
||||
${flt}= Evaluate int(1)
|
||||
Create Log Tester ${flt}
|
||||
|
||||
Should Allow Passing Python String As Argument
|
||||
# This is also what happens when for example `Create Log Tester 1` is used
|
||||
# (so in the typical case)
|
||||
${str}= Evaluate str(1)
|
||||
Create Log Tester ${str}
|
||||
|
||||
Should Return Python Int
|
||||
${res}= Execute Python 1 + 2
|
||||
# This doesn't really get the type of the returned value, but rather the type of the
|
||||
# result of evaluating `type(<returned value as a string>)`. There doesn't seem to be
|
||||
# a way to get the type of a variable itself without this stringifying and evaluation
|
||||
${type}= Evaluate type(${res}).__name__
|
||||
Should Be Equal ${type} int
|
||||
Should Be Equal ${res} ${3}
|
||||
|
||||
Should Return Python String
|
||||
${res}= Execute Python "{}bcd".format("a")
|
||||
${type}= Evaluate type("${res}").__name__
|
||||
Should Be Equal ${type} str
|
||||
Should Be Equal ${res} abcd
|
||||
|
||||
Should Return Python List
|
||||
${expected}= Create List ${0} ${1} ${2} ${3} ${4}
|
||||
${res}= Execute Python list(range(5))
|
||||
Lists Should Be Equal ${res} ${expected}
|
||||
|
||||
Should Propagate Python Exception
|
||||
Run Keyword And Expect Error ValueErrorException* Execute Python raise ValueError()
|
||||
|
||||
Should Fail On Python Syntax Error
|
||||
Run Keyword And Expect Error SyntaxErrorException* Execute Python "a
|
||||
|
||||
Should Trigger Timeout Handling
|
||||
[Tags] timeout_expected skip_windows
|
||||
[Timeout] 3 seconds
|
||||
Create Log Tester 0
|
||||
Execute Command using sysbus
|
||||
Execute Command mach create
|
||||
Execute Command machine LoadPlatformDescriptionFromString "cpu: CPU.ARMv7A @ sysbus { cpuType: \\"cortex-a9\\"}"
|
||||
Execute Command machine LoadPlatformDescriptionFromString "mem: Memory.MappedMemory @ sysbus 0x0 { size: 0x1000 }"
|
||||
|
||||
# Let's set a Python variable to check in the next test that Renode was restarted when handling the timeout.
|
||||
Execute Command python 'timeout_test_executed = True'
|
||||
|
||||
# 0x0 opcode is NOP in A32 so everything's fine as long as PC doesn't leave `mem`.
|
||||
Execute Command cpu AddHook 0xFFC "import time; time.sleep(10)"
|
||||
Execute Command emulation RunFor '0.1'
|
||||
|
||||
# This shouldn't be available because it's only set in the test which times out.
|
||||
# Timeout handling should restart Renode so this variable shouldn't be available.
|
||||
Should Run On Renode Restarted By Timeout Handling
|
||||
[Tags] skip_windows
|
||||
Run Keyword And Expect Error *'timeout_test_executed' is not defined*
|
||||
... Execute Command python 'print timeout_test_executed'
|
||||
Reference in New Issue
Block a user