a basic test framework