[callback] add functional test