You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cu...@apache.org on 2006/08/02 20:44:45 UTC
svn commit: r428088 -
/lucene/hadoop/trunk/src/contrib/streaming/src/test/org/apache/hadoop/streaming/TrApp.java
Author: cutting
Date: Wed Aug 2 11:44:45 2006
New Revision: 428088
URL: http://svn.apache.org/viewvc?rev=428088&view=rev
Log:
HADOOP-418. Add unit tests for streaming contrib environment variables.
Modified:
lucene/hadoop/trunk/src/contrib/streaming/src/test/org/apache/hadoop/streaming/TrApp.java
Modified: lucene/hadoop/trunk/src/contrib/streaming/src/test/org/apache/hadoop/streaming/TrApp.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/streaming/src/test/org/apache/hadoop/streaming/TrApp.java?rev=428088&r1=428087&r2=428088&view=diff
==============================================================================
--- lucene/hadoop/trunk/src/contrib/streaming/src/test/org/apache/hadoop/streaming/TrApp.java (original)
+++ lucene/hadoop/trunk/src/contrib/streaming/src/test/org/apache/hadoop/streaming/TrApp.java Wed Aug 2 11:44:45 2006
@@ -17,6 +17,8 @@
package org.apache.hadoop.streaming;
import java.io.*;
+import java.util.*;
+import org.apache.hadoop.streaming.Environment;
/** A minimal Java implementation of /usr/bin/tr.
Used to test the usage of external applications without adding
@@ -31,8 +33,68 @@
this.replace = replace;
}
+ void testParentJobConfToEnvVars() throws IOException
+ {
+ env = new Environment();
+
+ /* To get some ideas of stable env.vars:
+ Enumeration it = env.keys();
+ while(it.hasMoreElements()) {
+ String key = (String)it.nextElement();
+ String val = (String)env.get(key);
+ System.out.println("@@@" + key + "=" + val);
+ }
+ */
+
+ // test that some JobConf properties are exposed as expected
+ // Note the dots translated to underscore:
+ // property names have been escaped in PipeMapRed.safeEnvVarName()
+ expect("mapred_input_format_class", "org.apache.hadoop.streaming.StreamInputFormat");
+ expect("mapred_job_tracker", "local");
+ expect("mapred_input_key_class", "org.apache.hadoop.io.UTF8");
+ expect("mapred_input_value_class", "org.apache.hadoop.io.UTF8");
+ expect("mapred_local_dir", "build/test/mapred/local");
+ expect("mapred_output_format_class", "org.apache.hadoop.streaming.StreamOutputFormat");
+ expect("mapred_output_key_class", "org.apache.hadoop.io.UTF8");
+ expect("mapred_output_value_class", "org.apache.hadoop.io.UTF8");
+
+ expect("mapred_task_is_map", "true");
+ expect("mapred_reduce_tasks", "1");
+ expectDefined("mapred_task_id");
+
+ expectDefined("map_input_file");
+ expect("map_input_start", "0");
+ expectDefined("map_input_length");
+
+ expectDefined("io_sort_factor");
+
+ // the FileSplit context properties are not available in local hadoop..
+ // so can't check them in this test.
+
+ }
+
+ // this runs in a subprocess; won't use JUnit's assertTrue()
+ void expect(String evName, String evVal) throws IOException
+ {
+ String got = env.getProperty(evName);
+ if(! evVal.equals(got)) {
+ String msg = "FAIL evName=" + evName + " got=" + got + " expect=" + evVal;
+ throw new IOException(msg);
+ }
+ }
+
+ void expectDefined(String evName) throws IOException
+ {
+ String got = env.getProperty(evName);
+ if(got == null) {
+ String msg = "FAIL evName=" + evName + " is undefined. Expect defined.";
+ throw new IOException(msg);
+ }
+ }
+
public void go() throws IOException
{
+ testParentJobConfToEnvVars();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
@@ -60,5 +122,5 @@
}
char find;
char replace;
-
+ Environment env;
}