Unit tests for interrupt-heavy code on an embedded system
Solution 1:
Threads?
Launch a high-priority thread which calls your ISR at some rate similar to the real thing. Then in your main, do the buffer read over and over again in a loop. Validate that the buffer read is not corrupted.
(Maybe this is more of an integration test than a pure unit test.)