add more test case
fix the "DEBUG_ASSERT_RET"
improve: nullpointercheck
improve: deref after func call
improve: