Files
simulation_core/tests/unit-tests/monitor-tests.robot

128 lines
5.5 KiB
Plaintext

*** Settings ***
Library DateTime
*** Variables ***
${AUTOCOMPLETION_RESC} scripts/single-node/sam4s.resc
*** Keywords ***
Test Autocompletion
[Arguments] ${suggestion}
Execute Command include @${AUTOCOMPLETION_RESC}
Execute Command py "monitor.SuggestionNeeded('${suggestion}')"
*** Test Cases ***
Should Pause Renode
# we test if pausing can interrupt the execution before the end of the quantum (hence testing against a value lower than 10)
${pause_limit}= Convert Time 9
Execute Command i @scripts/single-node/miv.resc
Execute Command cpu PerformanceInMips 1
# treat WFI as NOP because WFI might make virtual time advance too far if it has fallen behind host time
Execute Command cpu WfiAsNop true
Execute Command emulation SetGlobalQuantum "10"
# we assume that starting/pausing of the simulation happens during the same quantum;
# it seems to be a resonable expectation for the quantum value of 10 virtual seconds
Execute Command s
Execute Command p
${time_source_info}= Execute Command emulation GetTimeSourceInfo
${elapsed_matches}= Get Regexp Matches ${time_source_info} Elapsed Virtual Time: ([0-9:.]+) 1
${elapsed}= Convert Time ${elapsed_matches[0]}
Should Be True ${elapsed} < ${pause_limit}
Should Print Last Logs
Execute Command i @scripts/single-node/miv.resc
${logs}= Execute Command lastLog
Should Contain ${logs} [INFO] cpu: Setting PC value to 0x80000000.
Should Overflow Buffer
FOR ${i} IN RANGE 1000
Execute Command log "Test-${i}-Log"
END
${logs}= Execute Command lastLog 1000
Should Contain ${logs} Test-0-Log
Should Contain ${logs} Test-999-Log
Should Not Contain ${logs} Test-1000-Log
Execute Command log "Test-1000-Log"
${logs}= Execute Command lastLog 1000
Should Not Contain ${logs} Test-0-Log
Should Contain ${logs} Test-1-Log
Should Contain ${logs} Test-1000-Log
Should Load Python Standard Library
${result}= Execute Command python "import SimpleHTTPServer"
Should Not Contain ${result} No module named
Should Set Proper Types To Variables
Execute Command \$var1=1234
Execute Command set var2 2345
Execute Command emulation SetSeed $var1
Execute Command emulation SetSeed $var2
Should Not Call Conditional Set
Execute Command \$var1=1234
Execute Command \$var1?=5678
${res}= Execute Command echo $\var1
Should Be Equal ${res.strip()} 1234
Should Call Conditional Set
Execute Command \$var1?=5678
${res}= Execute Command echo $\var1
Should Be Equal ${res.strip()} 5678
Should Call GPIO Set
Execute Command i @scripts/single-node/nrf52840.resc
${gpioState}= Execute Command uart0 IRQ
Should Contain ${gpioState} GPIO: unset
Execute Command uart0 IRQ Set true
${gpioState}= Execute Command uart0 IRQ
Should Contain ${gpioState} GPIO: set
Should Not Crash On Bool Autocompletion
Test Autocompletion cpu IsHalted
Should Not Crash On Int Autocompletion
Test Autocompletion cpu MaximumBlockSize
Should Not Crash On String Autocompletion
Test Autocompletion cpu LogFile
Should Allow Passing An Array To A Property Setter
Execute Command mach create
Execute Command using sysbus
Execute Command i @platforms/boards/beaglev-fire.repl
Execute Command qspi.pseFlash SFDPSignature [1]
${sig}= Execute Command qspi.pseFlash SFDPSignature
Should Be Equal As Strings ${sig} [ 0x01, ] strip_spaces=True collapse_spaces=True
Execute Command qspi.pseFlash SFDPSignature [1, 2, 3]
${sig}= Execute Command qspi.pseFlash SFDPSignature
Should Be Equal As Strings ${sig} [ 0x01, 0x02, 0x03, ] strip_spaces=True collapse_spaces=True
Execute Command qspi.pseFlash SFDPSignature []
${sig}= Execute Command qspi.pseFlash SFDPSignature
Should Be Equal As Strings ${sig} [ ] strip_spaces=True collapse_spaces=True
Run Keyword And Expect Error *Could not convert [[]NumericToken: Value*1*[]] to System.Byte[[][]]*
... Execute Command qspi.pseFlash SFDPSignature 1
Should Allow Select On Byte Array
Execute Command mach create
Execute Command using sysbus
Execute Command i @platforms/boards/beaglev-fire.repl
Execute Command qspi.pseFlash SFDPSignature [1, 2, 3]
${sig}= Execute Command qspi.pseFlash SFDPSignature Select ToString "x4"
Should Be Equal As Strings ${sig} [ 0001, 0002, 0003, ] strip_spaces=True collapse_spaces=True
Should Not Crash On Invalid Scalar Type
Execute Command mach create
Execute Command using sysbus
Execute Command i @platforms/boards/beaglev-fire.repl
Run Keyword And Expect Error *Cannot convert type 'string' to 'Antmicro.Renode.Peripherals.CPU.RegisterValue'*
... Execute Command e51 STVEC a