I think your approach is very interesting. I had implemented something similar but reverted to a simple API for tests as I felt it was too complicated to use (e.g. I had "testEQxxx()" for xxx in (int, str, ptr, ...).
Actually I'm putting together a library much similar to yours (<a href="https://github.com/rdentato/clibutl" rel="nofollow">https://github.com/rdentato/clibutl</a>) and I would love to get in touch with you to share experiences (and C horror stories :) ).