This change is a side-effect of debugging some carp behaviour.
Effectively it's a rewrite of carp:carp_basic_v[46] tests.
I'm not insisting to commit this. However, while it's doesn't provide much more value that the shell version, it can serve as a base for implementing more complex carp tests if so desired. Happy to discuss :-)