build a shared lib and test binary
more or less have test cases implemented