You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@yetus.apache.org by se...@apache.org on 2015/12/23 20:57:16 UTC

yetus git commit: YETUS-191. plugins that require external executables should verify those external executables exist.

Repository: yetus
Updated Branches:
  refs/heads/master d6a4e58a0 -> 5c8df77f2


YETUS-191. plugins that require external executables should verify those external executables exist.

Signed-off-by: Kengo Seki <se...@apache.org>


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

Branch: refs/heads/master
Commit: 5c8df77f21393a3d401696c20ae50cc91b48b51c
Parents: d6a4e58
Author: Marco Zuehlke <mz...@gmail.com>
Authored: Fri Dec 18 23:45:03 2015 +0100
Committer: Kengo Seki <se...@apache.org>
Committed: Thu Dec 24 04:55:38 2015 +0900

----------------------------------------------------------------------
 precommit/core.d/01-common.sh        | 30 ++++++++++++++++-
 precommit/core.d/docker.sh           |  3 +-
 precommit/test-patch.d/findbugs.sh   | 55 +++++++++++--------------------
 precommit/test-patch.d/perlcritic.sh | 20 +++++------
 precommit/test-patch.d/pylint.sh     | 20 +++++------
 precommit/test-patch.d/rubocop.sh    | 20 +++++------
 precommit/test-patch.d/ruby-lint.sh  | 19 +++++------
 precommit/test-patch.d/shellcheck.sh | 19 +++++------
 precommit/test-patch.d/xml.sh        | 12 ++++---
 precommit/test-patch.sh              |  2 +-
 10 files changed, 101 insertions(+), 99 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/core.d/01-common.sh
----------------------------------------------------------------------
diff --git a/precommit/core.d/01-common.sh b/precommit/core.d/01-common.sh
index 96b092c..a6eb257 100755
--- a/precommit/core.d/01-common.sh
+++ b/precommit/core.d/01-common.sh
@@ -511,4 +511,32 @@ function plugin_usage_output
   echo ""
   echo "${YETUS_USAGE_HEADER}"
   echo ""
-}
\ No newline at end of file
+}
+
+## @description  Verifies the existence of a command
+## @audience     private
+## @stability    evolving
+## @replaceable  no
+## @param        commandname
+## @param        commandpath
+## @return       0 = ok
+## @return       1 = error
+function verify_command
+{
+  local cmd_name="$1"
+  local cmd_path="$2"
+
+  if [[ -z ${cmd_path} ]]; then
+    yetus_error "executable for '${cmd_name}' was not specified."
+    return 1
+  fi
+  if [[ ! -f ${cmd_path} ]]; then
+    yetus_error "executable '${cmd_path}' for '${cmd_name}' does not exist."
+    return 1
+  fi
+  if [[ ! -x ${cmd_path} ]]; then
+    yetus_error "executable '${cmd_path}' for '${cmd_name}' is not executable."
+    return 1
+  fi
+  return 0
+}

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/core.d/docker.sh
----------------------------------------------------------------------
diff --git a/precommit/core.d/docker.sh b/precommit/core.d/docker.sh
index 0bad245..80ed919 100755
--- a/precommit/core.d/docker.sh
+++ b/precommit/core.d/docker.sh
@@ -115,8 +115,7 @@ function docker_exeverify
     DOCKERCMD="${pathdocker}"
   fi
 
-  if [[ ! -x "${DOCKERCMD}" ]];then
-    yetus_error "Docker command ${DOCKERCMD} is not executable."
+  if ! verify_command "Docker" "${DOCKERCMD}"; then
     return 1
   fi
 

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.d/findbugs.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/findbugs.sh b/precommit/test-patch.d/findbugs.sh
index da0328b..2f77811 100755
--- a/precommit/test-patch.d/findbugs.sh
+++ b/precommit/test-patch.d/findbugs.sh
@@ -20,19 +20,6 @@ FINDBUGS_WARNINGS_FAIL_PRECHECK=false
 
 add_test_type findbugs
 
-function findbugs_filefilter
-{
-  local filename=$1
-
-  if [[ ${BUILDTOOL} == maven
-    || ${BUILDTOOL} == ant ]]; then
-    if [[ ${filename} =~ \.java$
-      || ${filename} =~ (^|/)findbugs-exclude.xml$ ]]; then
-      add_test findbugs
-    fi
-  fi
-}
-
 function findbugs_usage
 {
   yetus_add_option "--findbugs-home=<path>" "Findbugs home directory (default \${FINDBUGS_HOME})"
@@ -55,13 +42,20 @@ function findbugs_parse_args
   done
 }
 
-## @description  are the needed bits for findbugs present?
-## @audience     private
-## @stability    evolving
-## @replaceable  no
-## @return       0 findbugs will work for our use
-## @return       1 findbugs is missing some component
-function findbugs_is_installed
+function findbugs_filefilter
+{
+  local filename=$1
+
+  if [[ ${BUILDTOOL} == maven
+    || ${BUILDTOOL} == ant ]]; then
+    if [[ ${filename} =~ \.java$
+      || ${filename} =~ (^|/)findbugs-exclude.xml$ ]]; then
+      add_test findbugs
+    fi
+  fi
+}
+
+function findbugs_precheck
 {
   declare exec
   declare status=0
@@ -71,12 +65,14 @@ function findbugs_is_installed
               convertXmlToText \
               filterBugs \
               setBugDatabaseInfo; do
-    if [[ ! -x "${FINDBUGS_HOME}/bin/${exec}"  ]]; then
-      yetus_error "ERROR: ${FINDBUGS_HOME}/bin/${exec} is not executable."
+    if ! verify_command "${exec}" "${FINDBUGS_HOME}/bin/${exec}"; then
       status=1
     fi
   done
-  return ${status}
+  if [[ ${status} == 1 ]]; then
+    add_vote_table 0 findbugs "Findbugs executables are not available."
+    delete_test findbugs
+  fi
 }
 
 ## @description  Run the maven findbugs plugin and record found issues in a bug database
@@ -192,17 +188,10 @@ function findbugs_preapply
   declare msg
 
   verify_needed_test findbugs
-
   if [[ $? == 0 ]]; then
     return 0
   fi
 
-  findbugs_is_installed
-  if [[ $? != 0 ]]; then
-    add_vote_table 0 findbugs "findbugs executables are not available."
-    return 0
-  fi
-
   big_console_header "Pre-patch findbugs detection"
 
   findbugs_runner branch
@@ -277,16 +266,10 @@ function findbugs_postinstall
   local savestop
 
   verify_needed_test findbugs
-
   if [[ $? == 0 ]]; then
     return 0
   fi
 
-  findbugs_is_installed
-  if [[ $? != 0 ]]; then
-    return 0
-  fi
-
   big_console_header "Patch findbugs detection"
 
   findbugs_runner patch

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.d/perlcritic.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/perlcritic.sh b/precommit/test-patch.d/perlcritic.sh
index a099fd6..d97326d 100755
--- a/precommit/test-patch.d/perlcritic.sh
+++ b/precommit/test-patch.d/perlcritic.sh
@@ -47,6 +47,15 @@ function perlcritic_filefilter
   fi
 }
 
+function perlcritic_precheck
+{
+  if ! verify_command "Perl::Critic" "${PERLCRITIC}"; then
+    add_vote_table 0 perlcritic "Perl::Critic was not available."
+    delete_test perlcritic
+  fi
+}
+
+
 function perlcritic_preapply
 {
   local i
@@ -58,11 +67,6 @@ function perlcritic_preapply
 
   big_console_header "Perl::Critic plugin: prepatch"
 
-  if [[ ! -x ${PERLCRITIC} ]]; then
-    yetus_error "${PERLCRITIC} does not exist."
-    return 0
-  fi
-
   start_clock
 
   echo "Running perlcritic against modified perl scripts/modules."
@@ -92,12 +96,6 @@ function perlcritic_postapply
 
   big_console_header "Perl::Critic plugin: postpatch"
 
-  if [[ ! -x ${PERLCRITIC} ]]; then
-    yetus_error "${PERLCRITIC} is not available."
-    add_vote_table 0 perlcritic "Perl::Critic was not available."
-    return 0
-  fi
-
   start_clock
 
   # add our previous elapsed to our new timer

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.d/pylint.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/pylint.sh b/precommit/test-patch.d/pylint.sh
index 5706d23..3e48197 100755
--- a/precommit/test-patch.d/pylint.sh
+++ b/precommit/test-patch.d/pylint.sh
@@ -52,6 +52,15 @@ function pylint_filefilter
   fi
 }
 
+function pylint_precheck
+{
+  if ! verify_command "Pylint" "${PYLINT}"; then
+    add_vote_table 0 pylint "Pylint was not available."
+    delete_test pylint
+  fi
+}
+
+
 function pylint_preapply
 {
   local i
@@ -65,11 +74,6 @@ function pylint_preapply
 
   big_console_header "pylint plugin: prepatch"
 
-  if [[ ! -x ${PYLINT} ]]; then
-    yetus_error "${PYLINT} does not exist."
-    return 0
-  fi
-
   start_clock
 
   echo "Running pylint against modified python scripts."
@@ -111,12 +115,6 @@ function pylint_postapply
 
   big_console_header "pylint plugin: postpatch"
 
-  if [[ ! -x ${PYLINT} ]]; then
-    yetus_error "${PYLINT} is not available."
-    add_vote_table 0 pylint "Pylint was not available."
-    return 0
-  fi
-
   start_clock
 
   # add our previous elapsed to our new timer

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.d/rubocop.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/rubocop.sh b/precommit/test-patch.d/rubocop.sh
index 36a5e5d..ddea0ca 100755
--- a/precommit/test-patch.d/rubocop.sh
+++ b/precommit/test-patch.d/rubocop.sh
@@ -47,6 +47,15 @@ function rubocop_filefilter
   fi
 }
 
+function rubocop_precheck
+{
+  if ! verify_command rubocop "${RUBOCOP}"; then
+    add_vote_table 0 rubocop "rubocop was not available."
+    delete_test rubocop
+  fi
+}
+
+
 function rubocop_preapply
 {
   local i
@@ -58,11 +67,6 @@ function rubocop_preapply
 
   big_console_header "rubocop plugin: prepatch"
 
-  if [[ ! -x ${RUBOCOP} ]]; then
-    yetus_error "${RUBOCOP} does not exist."
-    return 0
-  fi
-
   start_clock
 
   echo "Running rubocop against modified ruby scripts."
@@ -92,12 +96,6 @@ function rubocop_postapply
 
   big_console_header "rubocop plugin: postpatch"
 
-  if [[ ! -x ${RUBOCOP} ]]; then
-    yetus_error "${RUBOCOP} is not available."
-    add_vote_table 0 rubocop "Rubocop was not available."
-    return 0
-  fi
-
   start_clock
 
   # add our previous elapsed to our new timer

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.d/ruby-lint.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/ruby-lint.sh b/precommit/test-patch.d/ruby-lint.sh
index 3246a6a..862c5b4 100755
--- a/precommit/test-patch.d/ruby-lint.sh
+++ b/precommit/test-patch.d/ruby-lint.sh
@@ -47,6 +47,14 @@ function ruby_lint_filefilter
   fi
 }
 
+function ruby_lint_precheck
+{
+  if ! verify_command "Ruby-lint" "${RUBY_LINT}"; then
+    add_vote_table 0 ruby-lint "Ruby-lint was not available."
+    delete_test ruby_lint
+  fi
+}
+
 function ruby_lint_preapply
 {
   local i
@@ -58,11 +66,6 @@ function ruby_lint_preapply
 
   big_console_header "ruby-lint plugin: prepatch"
 
-  if [[ ! -x ${RUBY_LINT} ]]; then
-    yetus_error "${RUBY_LINT} does not exist."
-    return 0
-  fi
-
   start_clock
 
   echo "Running ruby-lint against modified ruby scripts."
@@ -92,12 +95,6 @@ function ruby_lint_postapply
 
   big_console_header "ruby-lint plugin: postpatch"
 
-  if [[ ! -x ${RUBY_LINT} ]]; then
-    yetus_error "${RUBY_LINT} is not available."
-    add_vote_table 0 ruby-lint "Ruby-lint was not available."
-    return 0
-  fi
-
   start_clock
 
   # add our previous elapsed to our new timer

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.d/shellcheck.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/shellcheck.sh b/precommit/test-patch.d/shellcheck.sh
index d50d212..9043acb 100755
--- a/precommit/test-patch.d/shellcheck.sh
+++ b/precommit/test-patch.d/shellcheck.sh
@@ -38,6 +38,14 @@ function shellcheck_filefilter
   fi
 }
 
+function shellcheck_precheck
+{
+  if ! verify_command "shellcheck" "${SHELLCHECK}"; then
+    add_vote_table 0 shellcheck "Shellcheck was not available."
+    delete_test shellcheck
+  fi
+}
+
 function shellcheck_private_findbash
 {
   local i
@@ -72,11 +80,6 @@ function shellcheck_preapply
 
   big_console_header "shellcheck plugin: prepatch"
 
-  if [[ ! -x "${SHELLCHECK}" ]]; then
-    yetus_error "shellcheck is not available."
-    return 0
-  fi
-
   start_clock
 
   echo "Running shellcheck against all identifiable shell scripts"
@@ -107,12 +110,6 @@ function shellcheck_postapply
 
   big_console_header "shellcheck plugin: postpatch"
 
-  if [[ ! -x "${SHELLCHECK}" ]]; then
-    yetus_error "shellcheck is not available."
-    add_vote_table 0 shellcheck "Shellcheck was not available."
-    return 0
-  fi
-
   start_clock
 
   # add our previous elapsed to our new timer

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.d/xml.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.d/xml.sh b/precommit/test-patch.d/xml.sh
index b04a2f3..4aba556 100755
--- a/precommit/test-patch.d/xml.sh
+++ b/precommit/test-patch.d/xml.sh
@@ -25,6 +25,14 @@ function xml_filefilter
   fi
 }
 
+function xml_precheck
+{
+  if ! verify_command "jrunscript" "${JAVA_HOME}/bin/jrunscript"; then
+    add_vote_table 0 xml "jrunscript was not available."
+    delete_test xml
+  fi
+}
+
 function xml_postcompile
 {
   declare repostatus=$1
@@ -44,10 +52,6 @@ function xml_postcompile
   big_console_header "Checking if XML files are well-formed"
 
   js="${JAVA_HOME}/bin/jrunscript"
-  if [[ ! -x ${js} ]]; then
-    yetus_error "${js} does not exist"
-    return 0
-  fi
 
   start_clock
 

http://git-wip-us.apache.org/repos/asf/yetus/blob/5c8df77f/precommit/test-patch.sh
----------------------------------------------------------------------
diff --git a/precommit/test-patch.sh b/precommit/test-patch.sh
index 4eca16a..e992d0f 100755
--- a/precommit/test-patch.sh
+++ b/precommit/test-patch.sh
@@ -2608,7 +2608,7 @@ function prechecks
   declare plugin
   declare result=0
 
-  for plugin in ${BUILDTOOL} ${NEEDEDTESTS} ${TESTFORMATS}; do
+  for plugin in ${BUILDTOOL} ${NEEDED_TESTS} ${TESTFORMATS}; do
     verify_patchdir_still_exists
 
     if declare -f ${plugin}_precheck >/dev/null 2>&1; then