macro and test for option parser