Browse Source

HADOOP-4796. Fix Chukwa test configuration, remove unused components. Contributed by Eric Yang.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/trunk@724229 13f79535-47bb-0310-9956-ffa450edef68
Christopher Douglas 16 years ago
parent
commit
478220d0fa

+ 3 - 0
CHANGES.txt

@@ -311,6 +311,9 @@ Trunk (unreleased changes)
     HADOOP-4792. Add generated Chukwa configuration files to version control
     ignore lists. (cdouglas)
 
+    HADOOP-4796. Fix Chukwa test configuration, remove unused components. (Eric
+    Yang via cdouglas)
+
 Release 0.19.1 - Unreleased
 
   IMPROVEMENTS

+ 14 - 101
src/contrib/chukwa/build.xml

@@ -222,8 +222,8 @@
 
 
 
-	<target name="test-chunk" depends="compile,compile-test" description="Test chunk">
-               
+	<target name="test-chukwa" depends="compile,compile-test" description="Run Chukwa unit tests">
+          <mkdir dir="${basedir}/var"/>
           <junit showoutput="yes"
             fork="yes"
             printsummary="${test.junit.printsummary}"
@@ -234,12 +234,20 @@
            <classpath refid="testClasspath"/>
            <sysproperty key="test.src.dir" value="${test.src.dir}"/>
            <formatter type="${test.junit.output.format}" />
-           <batchtest todir="${test.build.dir}" >
-            <fileset dir="${test.src.dir}" includes="org/apache/hadoop/chukwa/*.java"/>
+           <batchtest todir="${test.build.dir}" unless="testcase">
+            <fileset dir="${test.src.dir}">
+              <include name="**/${test.include}.java"/>
+              <exclude name="**/${test.exclude}.java"/>
+            </fileset>
+           </batchtest>
+           <batchtest todir="${test.build.dir}" if="testcase">
+            <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
            </batchtest>
          </junit>
          <fail if="tests.failed">Tests failed!</fail>
-
+         <delete>
+            <fileset dir="${basedir}/var" includes="*"/>
+         </delete>
         </target>
 
 	<target name="collector" depends="compile" description="Prepare collector.war">
@@ -469,30 +477,7 @@
 		</copy>
 	</target>
 
-	<target name="test" depends="compile,compile-test,test-chunk,test-input-tools,test-agent,test-database" description="Automated Test Framework">
-	</target>
-
-	<target name="test-input-tools" depends="compile,compile-test" description="Test Input Tools">
-            <junit showoutput="${test.output}"
-             printsummary="${test.junit.printsummary}"
-             haltonfailure="${test.junit.haltonfailure}"
-             fork="yes"
-             forkmode="${test.junit.fork.mode}"
-             maxmemory="${test.junit.maxmemory}"
-             dir="${basedir}" timeout="${test.timeout}"
-             errorProperty="tests.failed" failureProperty="tests.failed">
-               <sysproperty key="CHUKWA_HOME" value="${basedir}"/>
-               <sysproperty key="CHUKWA_CONF_DIR" value="${basedir}/conf"/>
-               <classpath refid="testClasspath"/>
-               <formatter type="${test.junit.output.format}" />
-               <batchtest todir="${build.dir}/test" >
-               <fileset dir="${test.src.dir}" includes="org/apache/hadoop/chukwa/datacollection/adaptor/filetailer/*.java"/>
-               </batchtest>
-            </junit>
-            <delete>
-               <fileset dir="${basedir}/var" includes="*"/>
-            </delete>
-            <fail if="tests.failed">Tests failed!</fail>
+	<target name="test" depends="compile,compile-test,test-chukwa" description="Automated Test Framework">
 	</target>
 
         <!-- ================================================================== -->
@@ -502,78 +487,6 @@
             <delete dir="${build.dir}"/>
             <delete dir="${docs.src}/build"/>
         </target>
-	<target name="test-agent" depends="compile,compile-test" description="Test Agent">
-            <junit showoutput="${test.output}"
-             printsummary="${test.junit.printsummary}"
-             haltonfailure="${test.junit.haltonfailure}"
-             fork="yes"
-             forkmode="${test.junit.fork.mode}"
-             maxmemory="${test.junit.maxmemory}"
-             dir="${basedir}" timeout="${test.timeout}"
-             errorProperty="tests.failed" failureProperty="tests.failed">
-               <sysproperty key="CHUKWA_HOME" value="${basedir}"/>
-               <sysproperty key="CHUKWA_CONF_DIR" value="${basedir}/conf"/>
-               <classpath refid="testClasspath"/>
-               <formatter type="${test.junit.output.format}" />
-               <batchtest todir="${build.dir}/test" >
-               <fileset dir="${test.src.dir}" includes="org/apache/hadoop/chukwa/datacollection/agent/TestAgent.java"/>
-               </batchtest>
-            </junit> 
-            <delete>
-               <fileset dir="${basedir}/var" includes="*"/>
-            </delete>
-            <fail if="tests.failed">Tests failed!</fail>
-	</target>
-
-	<target name="test-demux" depends="compile,compile-test" description="Test Demux">
-           <copy file="${basedir}/data/demuxData.tgz" todir="${test.cache.data}"/> 
-           <junit showoutput="${test.output}"
-             printsummary="${test.junit.printsummary}"
-             haltonfailure="${test.junit.haltonfailure}"
-             fork="yes"
-             forkmode="${test.junit.fork.mode}"
-             maxmemory="${test.junit.maxmemory}"
-             dir="${basedir}" timeout="${test.timeout}"
-             errorProperty="tests.failed" failureProperty="tests.failed">
-               <sysproperty key="test.build.data" value="${test.build.data}"/>
-               <sysproperty key="test.demux.data" value="${test.cache.data}"/>
-               <sysproperty key="CHUKWA_HOME" value="${basedir}"/>
-               <sysproperty key="CHUKWA_CONF_DIR" value="${basedir}/conf"/>
-               <classpath refid="testDemuxClasspath"/>
-               <formatter type="${test.junit.output.format}" />
-               <batchtest todir="${build.dir}/test" >
-               <fileset dir="${test.src.dir}" includes="org/apache/hadoop/chukwa/validationframework/TestDemux.java"/>
-               </batchtest>
-            </junit> 
-            <delete>
-               <fileset dir="${basedir}/var" includes="*"/>
-            </delete>
-            <fail if="tests.failed">Tests failed!</fail>
-	</target>
-
-	<target name="test-database" depends="compile,compile-test" description="Test Database">
-            <junit showoutput="${test.output}"
-             printsummary="${test.junit.printsummary}"
-             haltonfailure="${test.junit.haltonfailure}"
-             fork="yes"
-             forkmode="${test.junit.fork.mode}"
-             maxmemory="${test.junit.maxmemory}"
-             dir="${basedir}" timeout="${test.timeout}"
-             errorProperty="tests.failed" failureProperty="tests.failed">
-               <sysproperty key="CHUKWA_HOME" value="${basedir}"/>
-               <sysproperty key="CHUKWA_CONF_DIR" value="${basedir}/conf"/>
-               <classpath refid="testClasspath"/>
-               <formatter type="${test.junit.output.format}" />
-               <batchtest todir="${build.dir}/test" >
-               <fileset dir="${test.src.dir}" includes="org/apache/hadoop/chukwa/*.java"/>
-               </batchtest>
-            </junit> 
-            <delete>
-               <fileset dir="${basedir}/var" includes="*"/>
-            </delete>
-            <fail if="tests.failed">Tests failed!</fail>
-	</target>
-
 	<!-- ====================================================== -->
 	<!-- Macro definitions                                      -->
 	<!-- ====================================================== -->

+ 0 - 202
src/contrib/chukwa/lib/ant-LICENSE.txt

@@ -1,202 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-

+ 0 - 98
src/contrib/chukwa/lib/ant-README.txt

@@ -1,98 +0,0 @@
-
-                                 A     N     T
- 
-
-  What is it? 
-  -----------
-  
-  Ant is a Java based build tool. In theory it is kind of like "make" 
-  without makes wrinkles and with the full portability of pure java code.
-
-  
-  Why?
-  ----
-  
-  Why another build tool when there is already make, gnumake, nmake, jam, 
-  and others? Because all of those tools have limitations that its original 
-  author couldn't live with when developing software across multiple platforms. 
-  
-  Make-like tools are inherently shell based. They evaluate a set of 
-  dependencies and then execute commands not unlike what you would issue on a 
-  shell. This means that you can easily extend these tools by using or writing 
-  any program for the OS that you are working on. However, this also means that 
-  you limit yourself to the OS, or at least the OS type such as Unix, that you 
-  are working on.
-  
-  Makefiles are inherently evil as well. Anybody who has worked on them for any 
-  time has run into the dreaded tab problem. "Is my command not executing 
-  because I have a space in front of my tab!!!" said the original author of Ant 
-  way too many times. Tools like Jam took care of this to a great degree, but 
-  still use yet another format to use and remember.
-  
-  Ant is different. Instead a model where it is extended with shell based 
-  commands, it is extended using Java classes. Instead of writing shell 
-  commands, the configuration files are XML based calling out a target tree 
-  where various tasks get executed. Each task is run by an object which 
-  implements a particular Task interface.
-  
-  Granted, this removes some of the expressive power that is inherent by being 
-  able to construct a shell command such as `find . -name foo -exec rm {}` but 
-  it gives you the ability to be cross platform. To work anywhere and 
-  everywhere. And hey, if you really need to execute a shell command, Ant has 
-  an exec rule that allows different commands to be executed based on the OS 
-  that it is executing on.
-
-  The Latest Version
-  ------------------
-
-  Details of the latest version can be found on the Apache Ant
-  Project web site <http://ant.apache.org/>.
-
-
-  Documentation
-  -------------
-
-  Documentation is available in HTML format, in the docs/ directory.
-  For information about building and installing Ant, see
-  docs/manual/index.html
-
-
-  Licensing
-  ---------
-
-  This software is licensed under the terms you may find in the file 
-  named "LICENSE" in this directory.
-  
-  This distribution includes cryptographic software.  The country in 
-  which you currently reside may have restrictions on the import, 
-  possession, use, and/or re-export to another country, of 
-  encryption software.  BEFORE using any encryption software, please 
-  check your country's laws, regulations and policies concerning the
-  import, possession, or use, and re-export of encryption software, to 
-  see if this is permitted.  See <http://www.wassenaar.org/> for more
-  information.
-
-  The U.S. Government Department of Commerce, Bureau of Industry and
-  Security (BIS), has classified this software as Export Commodity 
-  Control Number (ECCN) 5D002.C.1, which includes information security
-  software using or performing cryptographic functions with asymmetric
-  algorithms.  The form and manner of this Apache Software Foundation
-  distribution makes it eligible for export under the License Exception
-  ENC Technology Software Unrestricted (TSU) exception (see the BIS 
-  Export Administration Regulations, Section 740.13) for both object 
-  code and source code.
-
-  The following provides more details on the included cryptographic
-  software:
-
-  For the SSH family of tasks (<sshexec> and <scp>) Ant requires the
-  JSch <http://www.jcraft.com/jsch/index.html> library as well as the
-  Java Cryptography extensions
-  <http://java.sun.com/javase/technologies/security/>.  Ant does not
-  include these libraries itself, but is designed to use them.
-
-  Thanks for using Ant.
-
-                                          The Apache Ant Project
-                                         <http://ant.apache.org/>
-

BIN
src/contrib/chukwa/lib/ant.jar


+ 0 - 183
src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/datacollection/TestAgentCollector.java

@@ -1,183 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.chukwa.datacollection;
-
-import java.io.*;
-import java.util.*;
-
-import org.apache.hadoop.chukwa.conf.ChukwaConfiguration;
-import org.apache.hadoop.chukwa.datacollection.agent.*;
-import org.apache.hadoop.chukwa.datacollection.collector.servlet.ServletCollector;
-import org.apache.hadoop.chukwa.datacollection.connector.http.HttpConnector;
-import org.apache.hadoop.chukwa.datacollection.controller.ChukwaAgentController;
-import org.apache.hadoop.chukwa.datacollection.writer.*;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.servlet.Context;
-import org.mortbay.jetty.servlet.ServletHolder;
-import junit.framework.TestCase;
-
-/**
- * Starts an agent, connector, collector in one process.
- * Starts an adaptor to push a random temp file through through.
- * 
- *
- */
-public class TestAgentCollector extends TestCase {
-  static Server server;
-  static Context root;
-  static ChukwaAgent agent ;
-  static HttpConnector connector;
-  int STOPS_AND_STARTS = 10;
-  
-  static {
-    try {
-    server = new Server(9990);
-    root = new Context(server,"/",Context.SESSIONS);
-    agent = new ChukwaAgent();
-    connector = new HttpConnector(agent, "http://localhost:9990/chukwa");
-    connector.start();
-
-    ConsoleWriter readInData =  new ConsoleWriter(false);
-    ServletCollector.setWriter(readInData);
-    root.addServlet(new ServletHolder(new ServletCollector()), "/*");
-    server.start();
-    server.setStopAtShutdown(false);
-    } catch(Exception e) {
-      e.printStackTrace();
-    }
-  }
-  /**
-   * @param args
-   */
-  public void testAllOnce()
-  {
-    try {
-
-      InMemoryWriter readInData =  new InMemoryWriter();
-      ServletCollector.setWriter(readInData);
-  
-      Thread.sleep(1000);
-        
-      ChukwaConfiguration cc = new ChukwaConfiguration();
-      int portno = cc.getInt("chukwaAgent.control.port", 9093);
-      ChukwaAgentController cli = new ChukwaAgentController("localhost", portno);
-      
-      File tmpOutput = new File("/tmp/chukwaTest");
-      FileOutputStream fos = new FileOutputStream(tmpOutput);
-      Random r = new Random();
-      boolean failed = false;
-      byte[] randomData = new byte[2000];
-      r.nextBytes(randomData);
-      randomData[1999] = '\n';//need data to end with \n since default tailer uses that
-      fos.write(randomData);
-      fos.flush();
-      fos.close();
-      
-      cli.addFile("unknown", tmpOutput.getAbsolutePath());
-      assertEquals(1, agent.adaptorCount());
-      cli.removeFile("unknown", tmpOutput.getAbsolutePath());
-      assertEquals(0, agent.adaptorCount());
-      org.apache.hadoop.chukwa.Chunk readIn = readInData.readOutChunk(randomData.length, 5000);
-      byte[] readInBytes = readIn.getData();
-      if(readInBytes.length != randomData.length)
-      {
-        System.err.println("FAIL: input ended at " + readInBytes.length + " bytes");
-        failed = true;
-      } else {
-        for(int i = 0; i < randomData.length ; ++i) {
-          byte next = readInBytes[i];
-          if(next != randomData[i]) {
-            System.err.println("FAIL: saw byte " + next + " at position " + i +
-                ", expected " + randomData[i]);
-            failed = true;
-            break;
-          }
-        }
-      }
-      cli.removeAll();
-      tmpOutput.delete();
-      assertFalse(failed);
-      System.out.println("done");
-    } catch(Exception e) {
-      e.printStackTrace();
-    }
-  }
-  
-  public void testStopAndStart() {
-
-    try {
-      ConsoleWriter readInData =  new ConsoleWriter(false);
-      ServletCollector.setWriter(readInData);
-  
-      Thread.sleep(1000);
-       
-      ChukwaConfiguration cc = new ChukwaConfiguration();
-      int portno = cc.getInt("chukwaAgent.control.port", 9093);
-      ChukwaAgentController cli = new ChukwaAgentController("localhost", portno);
-      
-      for(int i=1; i < STOPS_AND_STARTS; ++i) {
-        cli.add("org.apache.hadoop.chukwa.util.ConstRateAdaptor", "oneatatime_raw" + i, "20000", 0);
-        assertEquals("adaptor failed to start", 1, agent.adaptorCount());
-        Thread.sleep(2000);   
-        cli.removeAll();
-        assertTrue("adaptor failed to stop", agent.adaptorCount() == 0);
-      }
-    } catch(Exception e) {
-      e.printStackTrace();
-    }
-    
-  }
-
-  public void testManyAdaptors() {
-    try {
-      
-      ConsoleWriter readInData =  new ConsoleWriter(false);
-      ServletCollector.setWriter(readInData);
-  
-      Thread.sleep(1000);
-
-      
-      ChukwaConfiguration cc = new ChukwaConfiguration();
-      int portno = cc.getInt("chukwaAgent.control.port", 9093);
-      ChukwaAgentController cli = new ChukwaAgentController("localhost", portno);
-      assertEquals("no adaptors should be running pre-test",0, agent.adaptorCount());
-      for(int i=0; i < 10; ++i) {
-        
-        for(int n = 1; n < 7; ++n) {
-//          cli.add("org.apache.hadoop.chukwa.util.ConstRateAdaptor", "many_raw"+n, "20000", 0);
-          agent.processCommand("add org.apache.hadoop.chukwa.util.ConstRateAdaptor many_raw"+n + " 20000 0");
-          assertEquals(n, agent.adaptorCount());
-        }
-        
-        Thread.sleep(5000);
-   
-        cli.removeAll();
-        assertEquals("remove left some adaptors running", 0, agent.adaptorCount());
-      }
-  } catch(Exception e) {
-    e.printStackTrace();
-  }
-  }
-  
-  public static void main(String[] args)  {
-    new TestAgentCollector().testManyAdaptors();
-  }
-  
-
-}

+ 0 - 56
src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/inputtools/log4j/TestChukwaAppender.java

@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.chukwa.inputtools.log4j;
-
-import org.apache.hadoop.chukwa.Chunk;
-import org.apache.hadoop.chukwa.datacollection.agent.ChukwaAgent;
-import org.apache.hadoop.chukwa.datacollection.connector.ChunkCatcherConnector;
-
-import junit.framework.TestCase;
-import java.io.*;
-import org.apache.log4j.*;
-import org.apache.log4j.spi.*;
-
-public class TestChukwaAppender extends TestCase {
-  
-  public void testChukwaAppender() {
-    try {
-    
-    ChukwaAgent agent = new ChukwaAgent();
-    ChunkCatcherConnector chunks = new ChunkCatcherConnector();
-    chunks.start();
-    Logger myLogger = Logger.getLogger(TestChukwaAppender.class);
-    File out = new File("/tmp/chukwa_test_out");
-    out.delete();
-    ChukwaDailyRollingFileAppender app = new ChukwaDailyRollingFileAppender(
-        new SimpleLayout(), out.getAbsolutePath(), "yyyy-MM-dd");
-    app.append(new LoggingEvent("foo", myLogger,  System.currentTimeMillis(),Priority.INFO, "foo", null));
-    assertEquals(1, agent.adaptorCount());
-    Chunk c = chunks.waitForAChunk();
-    System.out.println("read a chunk OK");
-    String logLine = new String(c.getData());
-    assertTrue(logLine.equals("INFO - foo\n"));
-    System.out.println(new String(c.getData()));
-    //
-    } catch(Exception e) {
-      e.printStackTrace();
-    }
-  }
-
-}

+ 0 - 114
src/contrib/chukwa/src/test/org/apache/hadoop/chukwa/validationframework/TestDemux.java

@@ -1,114 +0,0 @@
-package org.apache.hadoop.chukwa.validationframework;
-
-import java.io.File;
-import java.io.IOException;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.hadoop.chukwa.extraction.demux.Demux;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hdfs.MiniDFSCluster;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.FileUtil;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapred.MiniMRCluster;
-import org.apache.hadoop.util.ToolRunner;
-
-public class TestDemux extends TestCase
-{
-
-  int NUM_HADOOP_SLAVES = 2;
-  private String DEMUX_INPUT_PATH = "demuxHdfsData/input";
-  private String DEMUX_GOLD_PATH = "demuxHdfsData/gold";
-  private String DEMUX_OUTPUT_PATH = "demuxHdfsData/output_";
-  
-  Configuration conf = null;
-  FileSystem fileSys = null;
-  MiniDFSCluster dfs = null;
-  MiniMRCluster mr = null;
-  
-  protected void setUp() throws Exception
-  {
-   
-    
-    conf = new Configuration();
-    System.setProperty("hadoop.log.dir", "/tmp/");
-    dfs = new MiniDFSCluster(conf,NUM_HADOOP_SLAVES,true,null,null);
-    dfs.waitClusterUp();
-    
-    fileSys = dfs.getFileSystem();
-    mr = new MiniMRCluster(NUM_HADOOP_SLAVES, fileSys.getUri().toString(), 1);
-   
-    unpackStorage();
-  }
-  
-    void unpackStorage() throws IOException 
-    {
-      String tarFile = System.getProperty("test.demux.data") +
-                       "/demuxData.tgz";
-      String dataDir = System.getProperty("test.build.data");
-      File dfsDir = new File(dataDir, "chukwa");
-      if ( dfsDir.exists() && !FileUtil.fullyDelete(dfsDir) ) {
-        throw new IOException("Could not delete dfs directory '" + dfsDir + "'");
-      }
-      
-      FileUtil.unTar(new File(tarFile), new File(dataDir));
-
-      // Copy to HDFS
-      FileUtil.copy(new File(System.getProperty("test.build.data") +"/demuxData/"),
-          fileSys, new Path("demuxHdfsData"), false, conf);
-      
-      // Set input/output directories
-      DEMUX_OUTPUT_PATH = DEMUX_OUTPUT_PATH + System.currentTimeMillis();
-
-      System.out.println("DEMUX_INPUT_PATH: " +DEMUX_INPUT_PATH);
-      System.out.println("DEMUX_OUTPUT_PATH: " +DEMUX_OUTPUT_PATH);
-//      
-//      FileStatus[] testFiles = fileSys.listStatus(new Path("demuxHdfsData"));
-//      for (FileStatus f: testFiles)
-//      {
-//        System.out.println(f.getPath().toString());
-//      }
-     
-
-  }
-  
-  public void testDemux() {
-    try
-    {
-      
-      String[] sortArgs = {DEMUX_INPUT_PATH.toString(), DEMUX_OUTPUT_PATH.toString()};
-      int res = ToolRunner.run(mr.createJobConf(), new Demux(), sortArgs);
-      Assert.assertEquals(res, 0);
-      
-      String[] directories = new String[2];
-      directories[0] = DEMUX_GOLD_PATH;
-      directories[1] = DEMUX_OUTPUT_PATH;
-      
-      DemuxDirectoryValidator.validate(false, fileSys, conf,directories);
-      
-    }
-    catch(Exception e)
-    {
-      e.printStackTrace();
-      Assert.fail("Exception in TestDemux: " + e);
-    }
-  }
-  protected void tearDown() throws Exception
-  {
-    if (dfs != null)
-    {
-      try { dfs.shutdown(); }
-      catch(Exception e) 
-      { /* do nothing since we're not testing the MiniDFSCluster */ }  
-    }
-    if (mr != null)
-    {
-      try { mr.shutdown(); }
-      catch(Exception e) 
-      { /* do nothing since we're not testing the MiniDFSCluster */ }  
-    }
-  }
-
-}