compile and test