仿真平台内核初版 -tlib库 包含<sparc arm riscv powerPC>
This commit is contained in:
117
tests/unit-tests/auto-save.robot
Normal file
117
tests/unit-tests/auto-save.robot
Normal file
@@ -0,0 +1,117 @@
|
||||
*** Variables ***
|
||||
${SCRIPT} ${CURDIR}/../../scripts/single-node/quickfeather.resc
|
||||
|
||||
*** Keywords ***
|
||||
Run Emulation With Auto Save
|
||||
[Arguments] ${emulation_time} ${auto_save_period}
|
||||
Execute Command autoSave true ${auto_save_period}
|
||||
Execute Command emulation RunFor "${emulation_time}"
|
||||
|
||||
*** Test Cases ***
|
||||
Should Take First Snapshot Immediately
|
||||
Execute Script ${SCRIPT}
|
||||
Execute Command autoSave true 0.1
|
||||
|
||||
${snapshots_count}= Execute Command emulation SnapshotTracker Count
|
||||
Should Be Equal As Integers ${snapshots_count} 1
|
||||
|
||||
Should Take Snapshot Exactly At Timestamp
|
||||
Execute Script ${SCRIPT}
|
||||
Run Emulation With Auto Save emulation_time=0.011 auto_save_period=0.01
|
||||
|
||||
${snapshots_count}= Execute Command emulation SnapshotTracker Count
|
||||
${snapshots_info}= Execute Command emulation SnapshotTracker PrintDetailedSnapshotsInfo
|
||||
|
||||
Should Be Equal As Integers ${snapshots_count} 2
|
||||
Should Contain ${snapshots_info} 00:00:00.000000
|
||||
Should Contain ${snapshots_info} 00:00:00.010000
|
||||
|
||||
Should Take Snapshots Periodically
|
||||
Execute Script ${SCRIPT}
|
||||
Run Emulation With Auto Save emulation_time=0.05 auto_save_period=0.01
|
||||
|
||||
${snapshots_count}= Execute Command emulation SnapshotTracker Count
|
||||
${snapshots_info}= Execute Command emulation SnapshotTracker PrintDetailedSnapshotsInfo
|
||||
|
||||
Should Be Equal As Integers ${snapshots_count} 6
|
||||
Should Contain ${snapshots_info} 00:00:00.000000
|
||||
Should Contain ${snapshots_info} 00:00:00.010000
|
||||
Should Contain ${snapshots_info} 00:00:00.020000
|
||||
Should Contain ${snapshots_info} 00:00:00.030000
|
||||
Should Contain ${snapshots_info} 00:00:00.040000
|
||||
Should Contain ${snapshots_info} 00:00:00.050000
|
||||
|
||||
Should Resume Taking Snapshots After Load
|
||||
Execute Script ${SCRIPT}
|
||||
Run Emulation With Auto Save emulation_time=0.01 auto_save_period=0.01
|
||||
|
||||
${snap_path}= Execute Command emulation SnapshotTracker GetLastSnapshotBeforeOrAtTimeStamp "0.01"
|
||||
Execute Command Load @${snap_path}
|
||||
Execute Command mach set 0
|
||||
|
||||
${snapshots_count1}= Execute Command emulation SnapshotTracker Count
|
||||
${snapshots_info1}= Execute Command emulation SnapshotTracker PrintDetailedSnapshotsInfo
|
||||
|
||||
Should Be Equal As Integers ${snapshots_count1} 2
|
||||
Should Contain ${snapshots_info1} 00:00:00.000000
|
||||
Should Contain ${snapshots_info1} 00:00:00.010000
|
||||
|
||||
Execute Command emulation RunFor "0.01"
|
||||
|
||||
${snapshots_count2}= Execute Command emulation SnapshotTracker Count
|
||||
${snapshots_info2}= Execute Command emulation SnapshotTracker PrintDetailedSnapshotsInfo
|
||||
|
||||
Should Be Equal As Integers ${snapshots_count2} 3
|
||||
Should Contain ${snapshots_info2} 00:00:00.000000
|
||||
Should Contain ${snapshots_info2} 00:00:00.010000
|
||||
Should Contain ${snapshots_info2} 00:00:00.020000
|
||||
|
||||
Should Stop Taking Snapshots
|
||||
Execute Script ${SCRIPT}
|
||||
Run Emulation With Auto Save emulation_time=0.015 auto_save_period=0.01
|
||||
|
||||
Execute Command autoSave false
|
||||
Execute Command emulation RunFor "0.01"
|
||||
|
||||
${snapshots_info}= Execute Command emulation SnapshotTracker PrintDetailedSnapshotsInfo
|
||||
Should Not Contain ${snapshots_info} 00:00:00.020000
|
||||
|
||||
Should Reenable Auto Save Properly
|
||||
Execute Script ${SCRIPT}
|
||||
Run Emulation With Auto Save emulation_time=0.011 auto_save_period=0.01
|
||||
Execute Command autoSave false
|
||||
|
||||
# before reenabling auto-save, registered snapshot should be cancelled, the code below checks it
|
||||
Execute Command autoSave true 0.02
|
||||
${snapshots_count1}= Execute Command emulation SnapshotTracker Count
|
||||
Execute Command emulation RunFor "0.02"
|
||||
|
||||
${snapshots_count2}= Execute Command emulation SnapshotTracker Count
|
||||
|
||||
Should Be Equal As Integers ${snapshots_count1} 3
|
||||
Should Be Equal As Integers ${snapshots_count2} 4
|
||||
|
||||
Should Forget Later Snapshots After Load
|
||||
Execute Script ${SCRIPT}
|
||||
Run Emulation With Auto Save emulation_time=0.021 auto_save_period=0.01
|
||||
|
||||
${snapshots_count1}= Execute Command emulation SnapshotTracker Count
|
||||
${snapshots_info1}= Execute Command emulation SnapshotTracker PrintDetailedSnapshotsInfo
|
||||
|
||||
Should Be Equal As Integers ${snapshots_count1} 3
|
||||
Should Contain ${snapshots_info1} 00:00:00.000000
|
||||
Should Contain ${snapshots_info1} 00:00:00.010000
|
||||
Should Contain ${snapshots_info1} 00:00:00.020000
|
||||
|
||||
${snap_path}= Execute Command emulation SnapshotTracker GetLastSnapshotBeforeOrAtTimeStamp "0.01"
|
||||
Execute Command Load @${snap_path}
|
||||
Execute Command mach set 0
|
||||
|
||||
${snapshots_count2}= Execute Command emulation SnapshotTracker Count
|
||||
${snapshots_info2}= Execute Command emulation SnapshotTracker PrintDetailedSnapshotsInfo
|
||||
|
||||
Should Be Equal As Integers ${snapshots_count2} 2
|
||||
Should Contain ${snapshots_info2} 00:00:00.000000
|
||||
Should Contain ${snapshots_info2} 00:00:00.010000
|
||||
|
||||
Execute Command emulation RunFor "0.00"
|
||||
Reference in New Issue
Block a user