1. use libtap to test
2. fix a special case bug in dstring_catl