| Line 5: |
Line 5: |
| | The test should clearly describe 3 stages: | | The test should clearly describe 3 stages: |
| | | | |
| − | ; Preparations | + | ;Preparations |
| | : These are actions that test does before the process(es) get checkpointed | | : These are actions that test does before the process(es) get checkpointed |
| | | | |
| Line 12: |
Line 12: |
| | | | |
| | ;Checks | | ;Checks |
| − | : After restore test should verify whether everything is OK or not | + | : After restore test should verify whether everything is OK or not and report the result |
| | | | |
| | This is achieved by using the following API calls: | | This is achieved by using the following API calls: |
| | | | |
| − | ;<code>test_init()</code> | + | ;<code>test_init(argc, argv)</code> |
| − | :Just initializes the test subsystem. | + | :Just initializes the test subsystem. After this call the preparations stage starts. |
| | | | |
| | ;<code>test_daemon()</code> | | ;<code>test_daemon()</code> |
| − | :This one says that we finished preparations and ready to get dumped at any time. | + | :This one says that we finished preparations and ready to get dumped at any time. I.e. -- the ''actions'' begin. |
| | + | |
| | + | ;<code>test_go()</code> |
| | + | :This routine checks whether the process was dumped and restored or not yet, i.e. the ''actions'' stage still goes on. |
| | | | |
| | ;<code>test_waitsig()</code> | | ;<code>test_waitsig()</code> |
| | :Calling this blocks the task till it's restored. After this the ''checks'' stage starts. | | :Calling this blocks the task till it's restored. After this the ''checks'' stage starts. |
| | + | |
| | + | ;<code>pass()</code> |
| | + | :Calling this marks test as PASSED |
| | + | |
| | + | ;<code>fail(message)</code> |
| | + | :Calling this would report test failure. The ''message'' argument will be written into logs |
| | + | |
| | + | ;<code>err(message)</code> |
| | + | :Use this function to mark the test as being unable to work at all. |
| | + | |
| | + | ;<code>test_msg(message)</code> |
| | + | :This is for logging. |
| | + | |
| | | | |
| | From the code perspective this looks like this: | | From the code perspective this looks like this: |
| Line 32: |
Line 48: |
| | test_init(argc, argv); | | test_init(argc, argv); |
| | | | |
| − | /* preparations */ | + | /* Preparations */ |
| | | | |
| | test_daemon(); | | test_daemon(); |
| | | | |
| − | /* actions */ | + | #if test want to act and get c/r-ed unexpectedly |
| | + | while (test_go()) { |
| | + | /* Actions go here */ |
| | + | } |
| | + | #else test just want to wait for c/r to happen |
| | + | /* Actions go here. */ |
| | | | |
| | test_waitsig(); | | test_waitsig(); |
| | + | #endif |
| | | | |
| | /* checks */ | | /* checks */ |