Pārlūkot izejas kodu

HADOOP-6326. Hundson runs should check for AspectJ warnings and report failure if any is present. Contributed by Konstantin Boudnik

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@829269 13f79535-47bb-0310-9956-ffa450edef68
Konstantin Boudnik 15 gadi atpakaļ
vecāks
revīzija
d7a7f02c3e
2 mainītis faili ar 19 papildinājumiem un 1 dzēšanām
  1. 3 0
      CHANGES.txt
  2. 16 1
      src/test/aop/build/aop.xml

+ 3 - 0
CHANGES.txt

@@ -27,6 +27,9 @@ Trunk (unreleased changes)
     HADOOP-6312. Remove unnecessary debug logging in Configuration constructor.
     (Aaron Kimball via cdouglas)
 
+    HADOOP-6326. Hundson runs should check for AspectJ warnings and report
+    failure if any is present (cos)
+
   OPTIMIZATIONS
 
   BUG FIXES

+ 16 - 1
src/test/aop/build/aop.xml

@@ -17,6 +17,7 @@
 <project name="aspects">
   <property name="build-fi.dir" value="${basedir}/build-fi"/>
   <property name="hadoop-fi.jar" location="${build.dir}/${final.name}-fi.jar" />
+  <property name="compile-inject.output" value="${build-fi.dir}/compile-fi.log"/>
   <property name="aspectversion" value="1.6.4"/>
   <property file="${basedir}/build.properties"/>
 
@@ -53,12 +54,26 @@
       deprecation="${javac.deprecation}">
       <classpath refid="test.classpath"/>
     </iajc>
+    <loadfile property="injection.failure" srcfile="${compile-inject.output}">
+      <filterchain>
+        <linecontainsregexp>
+          <regexp pattern='iajc.*warning'/>
+        </linecontainsregexp>
+      </filterchain>
+    </loadfile>
+    <fail if="injection.failure">
+      Broken binding of advises: ${line.separator}${injection.failure}
+    </fail>
     <echo message="Weaving of aspects is finished"/>
   </target>
 
   <target name="injectfaults" 
   	description="Instrument classes with faults and other AOP advices">
-    <subant buildpath="${basedir}" target="compile-fault-inject">
+    <!--mkdir to prevent <subant> failure in case the folder has been removed-->
+    <mkdir dir="${build-fi.dir}"/>
+    <delete file="${compile-inject.output}"/>
+    <subant buildpath="${basedir}" target="compile-fault-inject"
+    	output="${compile-inject.output}">
       <property name="build.dir" value="${build-fi.dir}"/>
     </subant>
   </target>