test-patch has the ability to support multiple build tools. Build tool plug-ins have some extra hooks to do source and object maintenance at key points. Every build tool plug-in must have one line in order to be recognized:
add_build_tool <pluginname>
BUILDTOOLCWD
UNSUPPORTED_TEST
For example, the gradle build tool does not have a standard way to execute checkstyle. So when checkstyle is requested, gradle_modules_worker sets UNSUPPORTED_TEST to true and returns out of the routine.
pluginname_buildfile
pluginname_executor
pluginname_modules_worker
pluginname_builtin_personality_modules
pluginname_builtin_personality_file_tests
pluginname_postapply_install
pluginname_parse_args
pluginname_initialize
pluginname_count_(test)_probs
test-patch always passes -noinput to Ant. This forces ant to be non-interactive.
The gradle plug-in always rebuilds the gradlew file and uses gradlew as the method to execute commands.
test-patch always passes --batch-mode to maven to force it into non-interactive mode. Additionally, some tests will also force -fae in order to get all of messages/errors during that mode. Some tests are executed with -DskipTests. Additional arguments should be handled via the personality.
By default, test-patch will pass -Ptest-patch to Maven. This will allow you to configure special actions that should only happen when running underneath test-patch.