add unittest
 .
 .
 add shflags
Merge branch 'third_party'