仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
43
tests/unit-tests/peripheral-hooks.robot
Normal file
43
tests/unit-tests/peripheral-hooks.robot
Normal file
@@ -0,0 +1,43 @@
|
||||
*** Variables ***
|
||||
${MEM} 0x0
|
||||
${LOG_TIMEOUT} 1
|
||||
|
||||
*** Keywords ***
|
||||
Create Machine
|
||||
Execute Command mach create
|
||||
Execute Command machine LoadPlatformDescriptionFromString "mem: Memory.ArrayMemory @ sysbus ${MEM} { size: 0x1000 }"
|
||||
|
||||
Test Peripheral Read Write Hook
|
||||
[Arguments] ${size} ${writeValue} ${expectedOutput}
|
||||
Execute Command sysbus SetHookBeforePeripheralWrite sysbus.mem "self.Log(LogLevel.Info, 'written: 0x{0:x}', value)"
|
||||
Execute Command sysbus Write${size} ${MEM} ${writeValue}
|
||||
Wait For Log Entry written: ${expectedOutput}
|
||||
Execute Command sysbus SetHookBeforePeripheralWrite sysbus.mem ""
|
||||
|
||||
Execute Command sysbus SetHookAfterPeripheralRead sysbus.mem "self.Log(LogLevel.Info, 'read: 0x{0:x}', value)"
|
||||
Execute Command sysbus Read${size} ${MEM}
|
||||
Wait For Log Entry read: ${expectedOutput}
|
||||
Execute Command sysbus SetHookAfterPeripheralRead sysbus.mem ""
|
||||
|
||||
*** Test Cases ***
|
||||
Should Handle Peripheral Read Write Hooks
|
||||
Create Machine
|
||||
Create Log Tester ${LOG_TIMEOUT}
|
||||
Start Emulation
|
||||
Test Peripheral Read Write Hook Byte 0x2b 0x2b
|
||||
Test Peripheral Read Write Hook Byte 0xff 0xff
|
||||
Test Peripheral Read Write Hook Byte 0x100 0x0
|
||||
|
||||
Test Peripheral Read Write Hook Word 0xdead 0xdead
|
||||
Test Peripheral Read Write Hook Word 0xffff 0xffff
|
||||
Test Peripheral Read Write Hook Word 0x10000 0x0
|
||||
|
||||
Test Peripheral Read Write Hook DoubleWord 0xdeadbeef 0xdeadbeef
|
||||
Test Peripheral Read Write Hook DoubleWord 0xffffffff 0xffffffff
|
||||
Test Peripheral Read Write Hook DoubleWord 0x100000000 0x0
|
||||
|
||||
Test Peripheral Read Write Hook QuadWord 0x1234facedeadbabe 0x1234facedeadbabe
|
||||
# Test Peripheral Read Write Hook QuadWord 0xffffffffffffffff 0xffffffffffffffff
|
||||
# Test Peripheral Read Write Hook QuadWord 0x10000000000000000 0x0
|
||||
# As of writing this, Monitor does not support parsing UInt64. Once support
|
||||
# is added, please uncomment the above two tests.
|
||||
Reference in New Issue
Block a user