Build command:
make ../ -G"Unix Makefiles" -DTFM_PLATFORM=mps2/an521 -DTFM_TOOLCHAIN_FILE=../toolchain_ARMCLANG.cmake -DTEST_PSA_API=IPC -DTFM_PSA_API=ON -DTFM_ISOLATION_LEVEL=2 -DINCLUDE_PANIC_TESTS=1
Result on ARMCLANG:
IPC Suite Report **********
TOTAL TESTS : 90
TOTAL PASSED : 82
TOTAL SIM ERROR : 0
TOTAL FAILED : 0
TOTAL SKIPPED : 8
******************************************
Result on GNUARM:
IPC Suite Report **********
TOTAL TESTS : 90
TOTAL PASSED : 77
TOTAL SIM ERROR : 0
TOTAL FAILED : 5
TOTAL SKIPPED : 8
******************************************
First analysis:
The GNUARM result is reasonable, because:
- The test case itself is waiting for a signal to trigger the test; while strict version checking is performed by SPM instead of partition, so partition can never wait for the signal it is expecting, which causes the failure. Tracked by the issue in github: https://github.com/ARM-software/psa-arch-tests/issues/262
- ARMCLANG merges RODATA with same content, which breaks the isolation between partitions. When a secure message printing is called, cross isolation boundary causes panic, accidentally passes the reset waiting logic. This need to be fixed by assigning a new flag to the build system.
The two fixes needs validation, which can not be done before the release, create a task for tracking it here.