You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@yetus.apache.org by aw...@apache.org on 2018/08/21 21:29:25 UTC

yetus git commit: YETUS-658. Built-in Support For Unit Test Excluding

Repository: yetus
Updated Branches:
  refs/heads/master 31d2ca6a5 -> e1e22b361


YETUS-658. Built-in Support For Unit Test Excluding

Signed-off-by: Allen Wittenauer <aw...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/yetus/repo
Commit: http://git-wip-us.apache.org/repos/asf/yetus/commit/e1e22b36
Tree: http://git-wip-us.apache.org/repos/asf/yetus/tree/e1e22b36
Diff: http://git-wip-us.apache.org/repos/asf/yetus/diff/e1e22b36

Branch: refs/heads/master
Commit: e1e22b361632b307432017ed4721de65ebfca9e6
Parents: 31d2ca6
Author: jackbearden <ja...@jackbearden.com>
Authored: Fri Aug 10 14:42:46 2018 -0700
Committer: Allen Wittenauer <aw...@apache.org>
Committed: Tue Aug 21 14:29:07 2018 -0700

----------------------------------------------------------------------
 precommit/jenkins/unit-test-filter-file.example |  2 ++
 .../test-patch-docker/launch-test-patch.sh      |  3 ++
 precommit/test-patch.d/maven.sh                 | 34 +++++++++++++++++++-
 precommit/test-patch.sh                         | 19 +++++++++++
 4 files changed, 57 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/yetus/blob/e1e22b36/precommit/jenkins/unit-test-filter-file.example
----------------------------------------------------------------------
diff --git a/precommit/jenkins/unit-test-filter-file.example b/precommit/jenkins/unit-test-filter-file.example
new file mode 100644
index 0000000..dc38859
--- /dev/null
+++ b/precommit/jenkins/unit-test-filter-file.example
@@ -0,0 +1,2 @@
+[package].[class].[method]
+![package].[class].[method]

http://git-wip-us.apache.org/repos/asf/yetus/blob/e1e22b36/precommit/test-patch-docker/launch-test-patch.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch-docker/launch-test-patch.sh b/precommit/test-patch-docker/launch-test-patch.sh
index ea3395a..b170cd2 100755
--- a/precommit/test-patch-docker/launch-test-patch.sh
+++ b/precommit/test-patch-docker/launch-test-patch.sh
@@ -48,6 +48,9 @@ TESTPATCHMODE=${TESTPATCHMODE%--docker}
 PATCH_DIR=$(cd -P -- "${PATCH_DIR}" >/dev/null && pwd -P)
 OVERWRITEARGS=("${OVERWRITEARGS[@]}" "--patch-dir=${PATCH_DIR}")
 OVERWRITEARGS=("${OVERWRITEARGS[@]}" "--user-plugins=${PATCH_DIR}/precommit/user-plugins")
+if [[ -f "${PATCH_DIR}/precommit/unit_test_filter_file.txt" ]]; then
+  OVERWRITEARGS=("${OVERWRITEARGS[@]}" "--unit-test-filter-file=${PATCH_DIR}/precommit/unit_test_filter_file.txt")
+fi
 
 # if patch system is generic, then it's either a local
 # patch file or was in some other way not pulled from a bug

http://git-wip-us.apache.org/repos/asf/yetus/blob/e1e22b36/precommit/test-patch.d/maven.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/maven.sh b/precommit/test-patch.d/maven.sh
index f772d2a..2a384de 100755
--- a/precommit/test-patch.d/maven.sh
+++ b/precommit/test-patch.d/maven.sh
@@ -282,7 +282,9 @@ function maven_modules_worker
 {
   declare repostatus=$1
   declare tst=$2
+  declare maven_unit_test_filter
 
+  maven_unit_test_filter="$(maven_unit_test_filter)"
   # shellcheck disable=SC2034
   UNSUPPORTED_TEST=false
 
@@ -303,7 +305,11 @@ function maven_modules_worker
       modules_workers "${repostatus}" scaladoc clean scala:doc -DskipTests=true
     ;;
     unit)
-      modules_workers "${repostatus}" unit clean test -fae
+      if [[ -n "${maven_unit_test_filter}" ]]; then
+        modules_workers "${repostatus}" unit clean test -fae "${maven_unit_test_filter}"
+      else
+        modules_workers "${repostatus}" unit clean test -fae
+      fi
     ;;
     *)
       # shellcheck disable=SC2034
@@ -498,6 +504,32 @@ function maven_builtin_personality_file_tests
   fi
 }
 
+## @description  Maven unit test filter file string
+## @audience     private
+## @stability    evolving
+## @replaceable  no
+## @return       string
+function maven_unit_test_filter()
+{
+  declare filtered
+
+  if [[ ! -z "${UNIT_TEST_FILTER_FILE}" ]]; then
+    while read -r line || [[ -n "${line}" ]]; do
+      if [[ -z $line ]]; then
+        continue
+      fi
+
+      filtered="${filtered}${line},"
+    done < "${UNIT_TEST_FILTER_FILE}"
+  fi
+
+  if [[ -z "${filtered}" ]]; then
+    printf "%s" ""
+  else
+    printf "%s" "-Dtest=${filtered%,}"
+  fi
+}
+
 ## @description  Confirm site pre-patch
 ## @audience     private
 ## @stability    stable

http://git-wip-us.apache.org/repos/asf/yetus/blob/e1e22b36/precommit/test-patch.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.sh b/precommit/test-patch.sh
index 5b375ca..df1849b 100755
--- a/precommit/test-patch.sh
+++ b/precommit/test-patch.sh
@@ -757,6 +757,7 @@ function yetus_usage
   yetus_add_option "--summarize=<bool>" "Allow tests to summarize results"
   yetus_add_option "--test-parallel=<bool>" "Run multiple tests in parallel (default false in developer mode, true in Jenkins mode)"
   yetus_add_option "--test-threads=<int>" "Number of tests to run in parallel (default defined in ${PROJECT_NAME} build)"
+  yetus_add_option "--unit-test-filter-file=<file>" "The unit test filter file to load"
   yetus_add_option "--tests-filter=<list>" "Lists of tests to turn failures into warnings"
   yetus_add_option "--user-plugins=<dir>" "A directory of user provided plugins. see test-patch.d for examples (default empty)"
   yetus_add_option "--version" "Print release version information and exit"
@@ -946,6 +947,9 @@ function parse_args
         # shellcheck disable=SC2034
         TEST_THREADS=${i#*=}
       ;;
+      --unit-test-filter-file=*)
+        UNIT_TEST_FILTER_FILE=${i#*=}
+      ;;
       --tests-filter=*)
         yetus_comma_to_array VOTE_FILTER "${i#*=}"
       ;;
@@ -998,6 +1002,15 @@ function parse_args
     yetus_add_entry EXEC_MODES Robot
   fi
 
+  if [[ -n $UNIT_TEST_FILTER_FILE ]]; then
+    if [[ -f $UNIT_TEST_FILTER_FILE ]]; then
+      UNIT_TEST_FILTER_FILE=$(yetus_abs "${UNIT_TEST_FILTER_FILE}")
+    else
+      yetus_error "ERROR: Unit test filter file (${UNIT_TEST_FILTER_FILE}) does not exist!"
+      cleanup_and_exit 1
+    fi
+  fi
+
   if [[ -n ${REEXECLAUNCHTIMER} ]]; then
     TIMER=${REEXECLAUNCHTIMER};
   else
@@ -1651,6 +1664,12 @@ function copytpbits
     cp -pr "${PERSONALITY}" "${PATCH_DIR}/precommit/personality/provided.sh"
   fi
 
+  if [[ -n ${UNIT_TEST_FILTER_FILE}
+    && -f ${UNIT_TEST_FILTER_FILE} ]]; then
+    yetus_debug "copying '${UNIT_TEST_FILTER_FILE}' over to '${PATCH_DIR}/precommit/unit_test_filter_file.txt'"
+    cp -pr "${UNIT_TEST_FILTER_FILE}" "${PATCH_DIR}/precommit/unit_test_filter_file.txt"
+  fi
+
   if [[ -n ${DOCKERFILE}
       && -f ${DOCKERFILE} ]]; then
     yetus_debug "copying '${DOCKERFILE}' over to '${PATCH_DIR}/precommit/test-patch-docker/Dockerfile'"