add many new test cases.

Signed-off-by: Daogang Tang <daogangtang@gmail.com>