The PSA test framework uses a range of the RAM (0x20060000 to 0x20060400) to keep track of the test progress. The point is that if a test case crashes, the system soft resets and the RAM is still preserved, so the test framework knows it and skips to the next case until all cases get a chance to run.
To ensure this happens correctly
We should not wait for the Greentea sync signal, if the tests are already in progress (i.e. non-zero values at 0x20060000) - just continue the tests instead. This ensures we get the final test report of each suites which we verify, even after a few crashes (which are known).
Erase the range of the RAM with the hex image, to reset the test status between different images/suites. Note: power cycling the board has the same effect, but mbedgt doesn't seem to support this option for some targets, and it does not work in the CI.
Now all PSA compliance test suites pass in the CI.
The PSA test framework uses a range of the RAM (0x20060000 to 0x20060400) to keep track of the test progress. The point is that if a test case crashes, the system soft resets and the RAM is still preserved, so the test framework knows it and skips to the next case until all cases get a chance to run.
To ensure this happens correctly
mbedgt
doesn't seem to support this option for some targets, and it does not work in the CI.Now all PSA compliance test suites pass in the CI.