*** 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()`. 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'