Explorar o código

HADOOP-8523. test-patch.sh doesn't validate patches before building (Jack Dintruff via jeagles)


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1358394 13f79535-47bb-0310-9956-ffa450edef68
Jonathan Turner Eagles %!s(int64=13) %!d(string=hai) anos
pai
achega
141127660c

+ 6 - 0
dev-support/smart-apply-patch.sh

@@ -14,6 +14,7 @@
 set -e
 
 PATCH_FILE=$1
+DRY_RUN=$2
 if [ -z "$PATCH_FILE" ]; then
   echo usage: $0 patch-file
   exit 1
@@ -100,6 +101,11 @@ else
   cleanup 1;
 fi
 
+# If this is a dry run then exit instead of applying the patch
+if [[ -n $DRY_RUN ]]; then
+  cleanup 0;
+fi
+
 echo Going to apply patch with: $PATCH -p$PLEVEL
 $PATCH -p$PLEVEL -E < $PATCH_FILE
 

+ 30 - 4
dev-support/test-patch.sh

@@ -207,7 +207,7 @@ checkout () {
 }
 
 ###############################################################################
-setup () {
+downloadPatch () {
   ### Download latest patch file (ignoring .htm and .html) when run from patch process
   if [[ $JENKINS == "true" ]] ; then
     $WGET -q -O $PATCH_DIR/jira http://issues.apache.org/jira/browse/$defect
@@ -240,6 +240,25 @@ setup () {
       cleanupAndExit 0
     fi
   fi
+}
+
+###############################################################################
+verifyPatch () {
+  # Before building, check to make sure that the patch is valid
+  $bindir/smart-apply-patch.sh $PATCH_DIR/patch dryrun
+  if [[ $? != 0 ]] ; then
+    echo "PATCH APPLICATION FAILED"
+    JIRA_COMMENT="$JIRA_COMMENT
+
+    -1 patch.  The patch command could not apply the patch."
+    return 1
+  else
+    return 0
+  fi
+}
+
+###############################################################################
+buildWithPatch () {
   echo ""
   echo ""
   echo "======================================================================"
@@ -886,9 +905,15 @@ if [[ $JENKINS == "true" ]] ; then
     exit 100
   fi
 fi
-setup
+downloadPatch
+verifyPatch
+(( RESULT = RESULT + $? ))
+if [[ $RESULT != 0 ]] ; then
+  submitJiraComment 1
+  cleanupAndExit 1
+fi
+buildWithPatch
 checkAuthor
-RESULT=$?
 
 if [[ $JENKINS == "true" ]] ; then
   cleanUpXml
@@ -896,7 +921,8 @@ fi
 checkTests
 (( RESULT = RESULT + $? ))
 applyPatch
-if [[ $? != 0 ]] ; then
+(( RESULT = RESULT + $? ))
+if [[ $RESULT != 0 ]] ; then
   submitJiraComment 1
   cleanupAndExit 1
 fi

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -85,6 +85,9 @@ Trunk (unreleased changes)
     HADOOP-8434. Add tests for Configuration setter methods.
     (Madhukara Phatak via suresh)
 
+    HADOOP-8523. test-patch.sh doesn't validate patches before building
+    (Jack Dintruff via jeagles)
+
   BUG FIXES
 
     HADOOP-8177. MBeans shouldn't try to register when it fails to create MBeanName.