modify output filename
modulize output filename
test another file combinations
move code shared into main_test
remove no srctotarget testcase
for original output
option functions are arugments