The current tests were written with some assumptions that do not work out for other architectures.
In getting the tests working on a virtual RISC-V platform(32 and 64 bit), I ran into the following issues:
- counters are not marked volatile, at higher optimization levels some tests deadlock
- some memory tests do not provide pools large enough to accommodate the required amount of blocks when working with a 64-bit system. Due to the overhead being larger the pools end up providing too few blocks, thus failing the tests
- some pointers are only 4 byte aligned, again not working on a 64-bit system which requires 8 byte alignment
- in some instances, there is "resonance" and the test does not progress. The test expects an interrupt during a small window, but I encountered cases where this window is always missed. This is exacerbated by the fact that on a virtual platforms instructions are always taking the same amount of time. In one instance there already is code to include a perturbation, but in my setup this was not large enough to make the test complete in a sensible time
While some of these points can be addressed pretty straight-forward, I would like to start a discussion, especially on the resonance issue.
The current tests were written with some assumptions that do not work out for other architectures.
In getting the tests working on a virtual RISC-V platform(32 and 64 bit), I ran into the following issues:
While some of these points can be addressed pretty straight-forward, I would like to start a discussion, especially on the resonance issue.