diff --git a/dev-support/test-patch.sh b/dev-support/test-patch.sh index ae74c5be1a..57fd65774d 100755 --- a/dev-support/test-patch.sh +++ b/dev-support/test-patch.sh @@ -40,6 +40,9 @@ function setup_defaults BASEDIR=$(pwd) RELOCATE_PATCH_DIR=false + USER_PLUGIN_DIR="" + LOAD_SYSTEM_PLUGINS=true + FINDBUGS_HOME=${FINDBUGS_HOME:-} ECLIPSE_HOME=${ECLIPSE_HOME:-} BUILD_NATIVE=${BUILD_NATIVE:-true} @@ -586,9 +589,11 @@ function hadoop_usage echo "--modulelist= Specify additional modules to test (comma delimited)" echo "--offline Avoid connecting to the Internet" echo "--patch-dir= The directory for working and output files (default '/tmp/${PROJECT_NAME}-test-patch/pid')" + echo "--plugins= A directory of user provided plugins. see test-patch.d for examples (default empty)" echo "--project= The short name for project currently using test-patch (default 'hadoop')" echo "--resetrepo Forcibly clean the repo" echo "--run-tests Run all relevant tests below the base directory" + echo "--skip-system-plugins Do not load plugins from ${BINDIR}/test-patch.d" echo "--testlist= Specify which subsystem tests to use (comma delimited)" echo "Shell binary overrides:" @@ -706,6 +711,9 @@ function parse_args --patch-dir=*) USER_PATCH_DIR=${i#*=} ;; + --plugins=*) + USER_PLUGIN_DIR=${i#*=} + ;; --project=*) PROJECT_NAME=${i#*=} ;; @@ -723,6 +731,9 @@ function parse_args --run-tests) RUN_TESTS=true ;; + --skip-system-plugins) + LOAD_SYSTEM_PLUGINS=false + ;; --testlist=*) testlist=${i#*=} testlist=${testlist//,/ } @@ -2523,17 +2534,25 @@ function runtests done } -## @description Import content from test-patch.d +## @description Import content from test-patch.d and optionally +## @description from user provided plugin directory ## @audience private ## @stability evolving ## @replaceable no function importplugins { local i - local files + local files=() - if [[ -d "${BINDIR}/test-patch.d" ]]; then - files=(${BINDIR}/test-patch.d/*.sh) + if [[ ${LOAD_SYSTEM_PLUGINS} == "true" ]]; then + if [[ -d "${BINDIR}/test-patch.d" ]]; then + files=(${BINDIR}/test-patch.d/*.sh) + fi + fi + + if [[ -n "${USER_PLUGIN_DIR}" && -d "${USER_PLUGIN_DIR}" ]]; then + hadoop_debug "Loading user provided plugins from ${USER_PLUGIN_DIR}" + files=("${files[@]}" ${USER_PLUGIN_DIR}/*.sh) fi for i in "${files[@]}"; do diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 8f66072e87..324434b110 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -486,6 +486,8 @@ Release 2.8.0 - UNRELEASED HADOOP-11843. Make setting up the build environment easier. (Niels Basjes via cnauroth) + HADOOP-11949. Add user-provided plugins to test-patch (Sean Busbey via aw) + IMPROVEMENTS HADOOP-6842. "hadoop fs -text" does not give a useful text representation