You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by jc...@apache.org on 2012/10/05 23:18:25 UTC
svn commit: r1394816 [2/2] - in /pig/trunk: ./ src/org/apache/pig/
src/org/apache/pig/backend/hadoop/executionengine/
src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/
src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/par...
Modified: pig/trunk/test/org/apache/pig/test/TestPigServer.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestPigServer.java?rev=1394816&r1=1394815&r2=1394816&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestPigServer.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestPigServer.java Fri Oct 5 21:18:23 2012
@@ -18,20 +18,18 @@
package org.apache.pig.test;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import java.io.PrintStream;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.net.URL;
@@ -45,13 +43,11 @@ import java.util.Properties;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.pig.builtin.mock.Storage;
-import org.apache.pig.impl.PigContext;
-
-
import org.apache.pig.ExecType;
import org.apache.pig.PigServer;
+import org.apache.pig.data.DataType;
import org.apache.pig.data.Tuple;
+import org.apache.pig.impl.PigContext;
import org.apache.pig.impl.io.FileLocalizer;
import org.apache.pig.impl.logicalLayer.FrontendException;
import org.apache.pig.impl.logicalLayer.schema.Schema;
@@ -59,36 +55,30 @@ import org.apache.pig.impl.util.Properti
import org.apache.pig.impl.util.Utils;
import org.junit.After;
import org.junit.AfterClass;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-@RunWith(JUnit4.class)
+import com.google.common.io.Files;
+
public class TestPigServer {
private PigServer pig = null;
static MiniCluster cluster = MiniCluster.buildCluster();
- private File stdOutRedirectedFile;
+ private File tempDir;
@Before
public void setUp() throws Exception{
FileLocalizer.setInitialized(false);
pig = new PigServer(ExecType.MAPREDUCE, cluster.getProperties());
- stdOutRedirectedFile = new File("stdout.redirected");
- // Create file if it does not exist
- try {
- if(!stdOutRedirectedFile.createNewFile())
- Assert.fail("Unable to create input files");
- } catch (IOException e) {
- Assert.fail("UAssert.assertTruee to create input files:" + e.getMessage());
- }
+
+ tempDir = Files.createTempDir();
+ tempDir.deleteOnExit();
+ registerNewResource(tempDir.getAbsolutePath());
}
@After
public void tearDown() throws Exception{
pig = null;
- stdOutRedirectedFile.delete();
+ tempDir.delete();
}
@AfterClass
@@ -101,23 +91,18 @@ public class TestPigServer {
// make sure that name is included or not (depending on flag "included")
// in the given list of stings
private static void verifyStringContained(List<URL> list, String name, boolean included) {
- Iterator<URL> iter = list.iterator();
- boolean nameIsSubstring = false;
int count = 0;
- while (iter.hasNext()) {
- if (iter.next().toString().contains(name)) {
- nameIsSubstring = true;
- ++count;
+ for (URL url : list) {
+ if (url.toString().contains(name)) {
+ if (!included) {
+ fail("Included is false, but url ["+url+"] contains name ["+name+"]");
}
+ assertEquals("Too many urls contain name: " + name, 1, ++count);
}
-
- if (included) {
- Assert.assertTrue(nameIsSubstring);
- Assert.assertTrue(count == 1);
}
- else {
- Assert.assertFalse(nameIsSubstring);
+ if (included) {
+ assertEquals("Number of urls that contain name [" + name + "] != 1", 1, count);
}
}
@@ -135,7 +120,7 @@ public class TestPigServer {
Path dir = new Path(location);
fs.mkdirs(dir);
- Assert.assertTrue(fs.createNewFile(new Path(dir, name)));
+ assertTrue(fs.createNewFile(new Path(dir, name)));
}
// dynamically add more resources to the system class loader
@@ -160,15 +145,13 @@ public class TestPigServer {
// jar name is not present to start with
verifyStringContained(pig.getPigContext().extraJars, jarName, false);
-
- boolean exceptionRaised = false;
+ boolean raisedException = false;
try {
pig.registerJar(jarName);
+ } catch (IOException e) {
+ raisedException = true;
}
- catch (IOException e) {
- exceptionRaised = true;
- }
- Assert.assertTrue(exceptionRaised);
+ assertTrue("registerJar on jarName ["+jarName+"] should have raised an exception", raisedException);
verifyStringContained(pig.getPigContext().extraJars, jarName, false);
}
@@ -189,18 +172,11 @@ public class TestPigServer {
verifyStringContained(pig.getPigContext().extraJars, jarName, false);
- boolean exceptionRaised = false;
- try {
pig.registerJar(jarLocation + jarName);
- }
- catch (IOException e) {
- exceptionRaised = true;
- }
- Assert.assertFalse(exceptionRaised);
verifyStringContained(pig.getPigContext().extraJars, jarName, true);
// clean-up
- Assert.assertTrue((new File(jarLocation + jarName)).delete());
+ assertTrue((new File(jarLocation + jarName)).delete());
(new File(dir1 + FILE_SEPARATOR + dir2)).delete();
(new File(dir1)).delete();
}
@@ -228,19 +204,12 @@ public class TestPigServer {
registerNewResource(jarLocation1);
registerNewResource(jarLocation2);
- boolean exceptionRaised = false;
- try {
pig.registerJar(jarName);
- }
- catch (IOException e) {
- exceptionRaised = true;
- }
- Assert.assertFalse(exceptionRaised);
verifyStringContained(pig.getPigContext().extraJars, jarName, true);
// clean-up
- Assert.assertTrue((new File(jarLocation1 + jarName)).delete());
- Assert.assertTrue((new File(jarLocation2 + jarName)).delete());
+ assertTrue((new File(jarLocation1 + jarName)).delete());
+ assertTrue((new File(jarLocation2 + jarName)).delete());
(new File(jarLocation1)).delete();
(new File(jarLocation2)).delete();
(new File(dir)).delete();
@@ -276,7 +245,7 @@ public class TestPigServer {
int status;
status = Util.executeJavaCommand("javac " + dir + FILE_SEPARATOR + subDir +
FILE_SEPARATOR + className + ".java");
- Assert.assertTrue(status==0);
+ assertEquals(0, status);
// remove src file
(new File(dir + FILE_SEPARATOR + subDir +
@@ -285,7 +254,7 @@ public class TestPigServer {
// generate jar file
status = Util.executeJavaCommand("jar -cf " + dir + FILE_SEPARATOR + jarName + " " +
"-C " + dir + " " + subDir);
- Assert.assertTrue(status==0);
+ assertEquals(0, status);
// remove class file and sub_dir
(new File(dir + FILE_SEPARATOR + subDir +
@@ -305,7 +274,7 @@ public class TestPigServer {
}
// verify proper jar file is located
- Assert.assertFalse(exceptionRaised);
+ assertFalse(exceptionRaised);
verifyStringContained(pig.getPigContext().extraJars, jarName, true);
// clean up Jar file and test dir
@@ -323,20 +292,13 @@ public class TestPigServer {
createFakeJarFile(jarLocation, jar1Name);
createFakeJarFile(jarLocation, jar2Name);
- boolean exceptionRaised = false;
- try {
pig.registerJar(jarLocation + "TestRegisterJarGlobbing*.jar");
- }
- catch (IOException e) {
- exceptionRaised = true;
- }
- Assert.assertFalse(exceptionRaised);
verifyStringContained(pig.getPigContext().extraJars, jar1Name, true);
verifyStringContained(pig.getPigContext().extraJars, jar2Name, true);
// clean-up
- Assert.assertTrue((new File(jarLocation + jar1Name)).delete());
- Assert.assertTrue((new File(jarLocation + jar2Name)).delete());
+ assertTrue((new File(jarLocation + jar1Name)).delete());
+ assertTrue((new File(jarLocation + jar2Name)).delete());
(new File(dir)).delete();
}
@@ -350,21 +312,14 @@ public class TestPigServer {
createFakeJarFile(jarLocation, jar1Name);
createFakeJarFile(jarLocation, jar2Name);
- boolean exceptionRaised = false;
String currentDir = System.getProperty("user.dir");
- try {
pig.registerJar(new File(currentDir, dir) + FILE_SEPARATOR + "TestRegisterJarGlobbing*.jar");
- }
- catch (IOException e) {
- exceptionRaised = true;
- }
- Assert.assertFalse(exceptionRaised);
verifyStringContained(pig.getPigContext().extraJars, jar1Name, true);
verifyStringContained(pig.getPigContext().extraJars, jar2Name, true);
// clean-up
- Assert.assertTrue((new File(jarLocation + jar1Name)).delete());
- Assert.assertTrue((new File(jarLocation + jar2Name)).delete());
+ assertTrue((new File(jarLocation + jar1Name)).delete());
+ assertTrue((new File(jarLocation + jar2Name)).delete());
(new File(dir)).delete();
}
@@ -383,145 +338,65 @@ public class TestPigServer {
// depend on configuration
String absPath = fs.getFileStatus(new Path(jarLocation)).getPath().toString();
- boolean exceptionRaised = false;
- try {
pig.registerJar(absPath + FILE_SEPARATOR + "TestRegister{Remote}Jar*.jar");
- }
- catch (IOException e) {
- e.printStackTrace();
- exceptionRaised = true;
- }
- Assert.assertFalse(exceptionRaised);
+
verifyStringContained(pig.getPigContext().extraJars, jar1Name, true);
verifyStringContained(pig.getPigContext().extraJars, jar2Name, true);
// clean-up
- Assert.assertTrue(fs.delete(new Path(jarLocation), true));
+ assertTrue(fs.delete(new Path(jarLocation), true));
}
- @Test
public void testDescribeLoad() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
- System.setOut(out);
- pig.dumpSchema("a") ;
- out.close(); // Remember this!
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("a: {field1: int,field2: float,field3: chararray}") == true);
- }
- reader.close();
+ Schema dumpedSchema = pig.dumpSchema("a") ;
+ Schema expectedSchema = Utils.getSchemaFromString("field1: int,field2: float,field3: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeFilter() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = filter a by field1 > 10;") ;
- System.setOut(out);
- pig.dumpSchema("b") ;
- out.close(); // Remember this!
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("b: {field1: int,field2: float,field3: chararray}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("b") ;
+ Schema expectedSchema = Utils.getSchemaFromString("field1: int,field2: float,field3: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeDistinct() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = distinct a ;") ;
- System.setOut(out);
- pig.dumpSchema("b") ;
- out.close(); // Remember this!
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("b: {field1: int,field2: float,field3: chararray}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("b") ;
+ Schema expectedSchema = Utils.getSchemaFromString("field1: int,field2: float,field3: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeSort() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = order a by * desc;") ;
- System.setOut(out);
- pig.dumpSchema("b") ;
- out.close(); // Remember this!
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("b: {field1: int,field2: float,field3: chararray}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("b") ;
+ Schema expectedSchema = Utils.getSchemaFromString("field1: int,field2: float,field3: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeLimit() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = limit a 10;") ;
- System.setOut(out);
- pig.dumpSchema("b") ;
- out.close(); // Remember this!
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("b: {field1: int,field2: float,field3: chararray}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("b") ;
+ Schema expectedSchema = Utils.getSchemaFromString("field1: int,field2: float,field3: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeForeach() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = foreach a generate field1 + 10;") ;
- System.setOut(out);
- pig.dumpSchema("b") ;
- out.close();
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("b: {int}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("b") ;
+ Schema expectedSchema = new Schema(new Schema.FieldSchema(null, DataType.INTEGER));
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
@@ -531,150 +406,70 @@ public class TestPigServer {
pig.registerQuery("b = foreach a generate field1 + 10;") ;
try {
pig.dumpSchema("c") ;
- Assert.fail("Error expected");
+ fail("Error expected");
} catch (Exception e) {
- Assert.assertTrue(e.getMessage().contains("Unable to describe schema for alias c"));
+ assertTrue(e.getMessage().contains("Unable to describe schema for alias c"));
}
}
@Test
public void testDescribeForeachNoSchema() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' ;") ;
pig.registerQuery("b = foreach a generate *;") ;
- System.setOut(out);
- pig.dumpSchema("b") ;
- out.close();
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("Schema for b unknown."));
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("b") ;
+ assertNull(dumpedSchema);
}
@Test
public void testDescribeCogroup() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = load 'b' as (field4, field5: double, field6: chararray );") ;
pig.registerQuery("c = cogroup a by field1, b by field4;") ;
- System.setOut(out);
- pig.dumpSchema("c") ;
- out.close();
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("c: {group: int,a: {(field1: int,field2: float,field3: chararray)},b: {(field4: bytearray,field5: double,field6: chararray)}}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("c") ;
+ Schema expectedSchema = Utils.getSchemaFromString("group:int,a:{(field1:int,field2:float,field3:chararray)},b:{(field4:bytearray,field5:double,field6:chararray)}");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeCross() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = load 'b' as (field4, field5: double, field6: chararray );") ;
pig.registerQuery("c = cross a, b;") ;
- System.setOut(out);
- pig.dumpSchema("c") ;
- out.close();
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("c: {a::field1: int,a::field2: float,a::field3: chararray,b::field4: bytearray,b::field5: double,b::field6: chararray}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("c") ;
+ Schema expectedSchema = Utils.getSchemaFromString("a::field1: int,a::field2: float,a::field3: chararray,b::field4: bytearray,b::field5: double,b::field6: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeJoin() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = load 'b' as (field4, field5: double, field6: chararray );") ;
pig.registerQuery("c = join a by field1, b by field4;") ;
- System.setOut(out);
- pig.dumpSchema("c") ;
- out.close();
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertEquals("c: {a::field1: int,a::field2: float,a::field3: chararray,b::field4: bytearray,b::field5: double,b::field6: chararray}", s );
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("c");
+ Schema expectedSchema = Utils.getSchemaFromString("a::field1: int,a::field2: float,a::field3: chararray,b::field4: bytearray,b::field5: double,b::field6: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeUnion() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (field1: int, field2: float, field3: chararray );") ;
pig.registerQuery("b = load 'b' as (field4, field5: double, field6: chararray );") ;
pig.registerQuery("c = union a, b;") ;
- System.setOut(out);
- pig.dumpSchema("c") ;
- out.close();
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- Assert.assertTrue(s.equals("c: {field1: int,field2: double,field3: chararray}") == true);
- }
- fileWithStdOutContents.close();
+ Schema dumpedSchema = pig.dumpSchema("c") ;
+ Schema expectedSchema = Utils.getSchemaFromString("field1: int,field2: double,field3: chararray");
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
public void testDescribeComplex() throws Throwable {
- PrintStream console = System.out;
- PrintStream out = new PrintStream(new BufferedOutputStream(new FileOutputStream(stdOutRedirectedFile)));
-
pig.registerQuery("a = load 'a' as (site: chararray, count: int, itemCounts: bag { itemCountsTuple: tuple (type: chararray, typeCount: int, f: float, m: map[]) } ) ;") ;
pig.registerQuery("b = foreach a generate site, count, FLATTEN(itemCounts);") ;
- System.setOut(out);
- pig.dumpSchema("b") ;
- out.close();
- System.setOut(console);
-
- String s;
- InputStream fileWithStdOutContents = new DataInputStream( new BufferedInputStream( new FileInputStream(stdOutRedirectedFile)));
- BufferedReader reader = new BufferedReader(new InputStreamReader(fileWithStdOutContents));
- while ((s = reader.readLine()) != null) {
- // strip away the initial schema alias and the
- // curlies surrounding the schema to construct
- // the schema object from the schema string
- s = s.replaceAll("^.*\\{", "");
- s = s.replaceAll("\\}$", "");
- Schema actual = Utils.getSchemaFromString( s);
- Schema expected = Utils.getSchemaFromString(
+ Schema dumpedSchema = pig.dumpSchema("b") ;
+ Schema expectedSchema = Utils.getSchemaFromString(
"site: chararray,count: int," +
"itemCounts::type: chararray,itemCounts::typeCount: int," +
"itemCounts::f: float,itemCounts::m: map[ ]");
- Assert.assertEquals(expected, actual);
- }
- fileWithStdOutContents.close();
+ assertEquals(expectedSchema, dumpedSchema);
}
@Test
@@ -690,7 +485,7 @@ public class TestPigServer {
List<Tuple> expectedTuples=Util.readFile2TupleList("test/org/apache/pig/test/data/passwd", ":");
while(iter.hasNext()){
Tuple tuple=iter.next();
- Assert.assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
+ assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
index++;
}
@@ -704,7 +499,7 @@ public class TestPigServer {
expectedTuples=Util.readFile2TupleList("test/org/apache/pig/test/data/passwd2", ":");
while(iter.hasNext()){
Tuple tuple=iter.next();
- Assert.assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
+ assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
index++;
}
@@ -716,7 +511,7 @@ public class TestPigServer {
expectedTuples=Util.readFile2TupleList("test/org/apache/pig/test/data/passwd", ":");
while(iter.hasNext()){
Tuple tuple=iter.next();
- Assert.assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
+ assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
index++;
}
}
@@ -735,7 +530,7 @@ public class TestPigServer {
List<Tuple> expectedTuples=Util.readFile2TupleList("test/org/apache/pig/test/data/passwd", ":");
while(iter.hasNext()){
Tuple tuple=iter.next();
- Assert.assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
+ assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
index++;
}
@@ -749,7 +544,7 @@ public class TestPigServer {
expectedTuples=Util.readFile2TupleList("test/org/apache/pig/test/data/passwd2", ":");
while(iter.hasNext()){
Tuple tuple=iter.next();
- Assert.assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
+ assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
index++;
}
@@ -761,26 +556,30 @@ public class TestPigServer {
expectedTuples=Util.readFile2TupleList("test/org/apache/pig/test/data/passwd", ":");
while(iter.hasNext()){
Tuple tuple=iter.next();
- Assert.assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
+ assertEquals(tuple.get(0).toString(), expectedTuples.get(index).get(0).toString());
index++;
}
}
@Test
public void testPigProperties() throws Throwable {
- File propertyFile = new File("pig.properties");
+ File propertyFile = new File(tempDir, "pig.properties");
+ propertyFile.deleteOnExit();
+ TestPigServer.registerNewResource(propertyFile.getAbsolutePath());
File cliPropertyFile = new File("commandLine_pig.properties");
+ cliPropertyFile.deleteOnExit();
+ TestPigServer.registerNewResource(cliPropertyFile.getAbsolutePath());
Properties properties = PropertiesUtil.loadDefaultProperties();
- Assert.assertTrue(properties.getProperty("pig.spill.gc.activation.size").equals("40000000"));
- Assert.assertTrue(properties.getProperty("test123")==null);
+ assertEquals("40000000", properties.getProperty("pig.spill.gc.activation.size"));
+ assertNull(properties.getProperty("test123"));
PrintWriter out = new PrintWriter(new FileWriter(propertyFile));
out.println("test123=properties");
out.close();
-
properties = PropertiesUtil.loadDefaultProperties();
- Assert.assertTrue(properties.getProperty("test123").equals("properties"));
+
+ assertEquals("properties", properties.getProperty("test123"));
out = new PrintWriter(new FileWriter(cliPropertyFile));
out.println("test123=cli_properties");
@@ -789,7 +588,7 @@ public class TestPigServer {
properties = PropertiesUtil.loadDefaultProperties();
PropertiesUtil.loadPropertiesFromFile(properties,
"commandLine_pig.properties");
- Assert.assertTrue(properties.getProperty("test123").equals("cli_properties"));
+ assertEquals("cli_properties", properties.getProperty("test123"));
propertyFile.delete();
cliPropertyFile.delete();
@@ -797,7 +596,8 @@ public class TestPigServer {
@Test
public void testPigTempDir() throws Throwable {
- File propertyFile = new File("pig.properties");
+ File propertyFile = new File(tempDir, "pig.properties");
+ propertyFile.deleteOnExit();
PrintWriter out = new PrintWriter(new FileWriter(propertyFile));
out.println("pig.temp.dir=/opt/temp");
out.close();
@@ -806,7 +606,7 @@ public class TestPigServer {
pigContext.connect();
FileLocalizer.setInitialized(false);
String tempPath= FileLocalizer.getTemporaryPath(pigContext).toString();
- Assert.assertTrue(tempPath.startsWith("file:/opt/temp"));
+ assertTrue(tempPath.startsWith("file:/opt/temp"));
propertyFile.delete();
FileLocalizer.setInitialized(false);
}
@@ -817,7 +617,7 @@ public class TestPigServer {
pig.registerQuery("b = group a by $0;") ;
pig.registerQuery("c = foreach b generate flatten(a);") ;
Schema s = pig.dumpSchema("c") ;
- Assert.assertTrue(s==null);
+ assertNull(s);
}
@Test // PIG-2059
@@ -826,13 +626,12 @@ public class TestPigServer {
pig.registerQuery("A = load 'x' as (u, v);") ;
try {
pig.registerQuery("B = foreach A generate $2;") ;
+ fail("Query is supposed to fail.");
} catch(FrontendException ex) {
String msg = "Out of bound access. " +
"Trying to access non-existent column: 2";
Util.checkMessageInException(ex, msg);
- return;
}
- Assert.fail( "Query is supposed to fail." );
}
@Test
@@ -841,24 +640,20 @@ public class TestPigServer {
PigServer pigServer = new PigServer(ExecType.MAPREDUCE);
Properties properties = pigServer.getPigContext().getProperties();
- Assert
- .assertTrue(properties.getProperty(
- "pig.exec.reducers.max").equals("999"));
- Assert.assertTrue(properties.getProperty("aggregate.warning").equals("true"));
- Assert.assertTrue(properties.getProperty("opt.multiquery").equals("true"));
- Assert.assertTrue(properties.getProperty("stop.on.failure").equals("false"));
+ assertEquals("999", properties.getProperty("pig.exec.reducers.max"));
+ assertEquals("true", properties.getProperty("aggregate.warning"));
+ assertEquals("true", properties.getProperty("opt.multiquery"));
+ assertEquals("false", properties.getProperty("stop.on.failure"));
//Test with properties file
- File propertyFile = new File("pig.properties");
+ File propertyFile = new File(tempDir, "pig.properties");
properties = PropertiesUtil.loadDefaultProperties();
- Assert
- .assertTrue(properties.getProperty(
- "pig.exec.reducers.max").equals("999"));
- Assert.assertTrue(properties.getProperty("aggregate.warning").equals("true"));
- Assert.assertTrue(properties.getProperty("opt.multiquery").equals("true"));
- Assert.assertTrue(properties.getProperty("stop.on.failure").equals("false"));
+ assertEquals("999", properties.getProperty("pig.exec.reducers.max"));
+ assertEquals("true", properties.getProperty("aggregate.warning"));
+ assertEquals("true", properties.getProperty("opt.multiquery"));
+ assertEquals("false", properties.getProperty("stop.on.failure"));
PrintWriter out = new PrintWriter(new FileWriter(propertyFile));
out.println("aggregate.warning=false");
@@ -868,12 +663,9 @@ public class TestPigServer {
out.close();
properties = PropertiesUtil.loadDefaultProperties();
- Assert.assertTrue(properties.getProperty("aggregate.warning")
- .equals("false"));
- Assert.assertTrue(properties.getProperty("opt.multiquery")
- .equals("false"));
- Assert.assertTrue(properties.getProperty("stop.on.failure")
- .equals("true"));
+ assertEquals("false", properties.getProperty("aggregate.warning"));
+ assertEquals("false", properties.getProperty("opt.multiquery"));
+ assertEquals("true", properties.getProperty("stop.on.failure"));
propertyFile.delete();
}
Modified: pig/trunk/test/org/apache/pig/test/TestPigServerWithMacros.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestPigServerWithMacros.java?rev=1394816&r1=1394815&r2=1394816&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestPigServerWithMacros.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestPigServerWithMacros.java Fri Oct 5 21:18:23 2012
@@ -17,17 +17,11 @@
*/
package org.apache.pig.test;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.pig.ExecType;
-import org.apache.pig.PigServer;
-import org.apache.pig.builtin.mock.Storage;
-import org.apache.pig.data.Tuple;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import static org.apache.pig.builtin.mock.Storage.resetData;
+import static org.apache.pig.builtin.mock.Storage.tuple;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileOutputStream;
@@ -39,15 +33,27 @@ import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
-import static org.apache.pig.builtin.mock.Storage.resetData;
-import static org.apache.pig.builtin.mock.Storage.tuple;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.pig.ExecType;
+import org.apache.pig.PigServer;
+import org.apache.pig.builtin.mock.Storage;
+import org.apache.pig.data.Tuple;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
public class TestPigServerWithMacros {
+ // We pull in this MiniCluster just to get the properties. The test was not functioning properly
+ // otherwise.
+ private static MiniCluster cluster = MiniCluster.buildCluster();
+
private PigServer pig = null;
@Before
public void setUp() throws Exception{
- pig = new PigServer(ExecType.LOCAL);
+ pig = new PigServer(ExecType.LOCAL, cluster.getProperties());
}
@After
@@ -72,7 +78,6 @@ public class TestPigServerWithMacros {
// depend on configuration
String absPath = fs.getFileStatus(new Path(macroName)).getPath().toString();
- pig = new PigServer(ExecType.LOCAL);
Storage.Data data = resetData(pig);
data.set("some_path", "(l:chararray)", tuple("first row"), tuple("second row"));
@@ -81,7 +86,7 @@ public class TestPigServerWithMacros {
pig.registerQuery("b = row_count(a);");
Iterator<Tuple> iter = pig.openIterator("b");
- Assert.assertEquals(2L, iter.next().get(0));
+ assertEquals(2L, ((Long)iter.next().get(0)).longValue());
}
@Test
@@ -94,7 +99,7 @@ public class TestPigServerWithMacros {
pig.registerQuery("b = row_count(a);");
Iterator<Tuple> iter = pig.openIterator("b");
- Assert.assertEquals(2L, iter.next().get(0));
+ assertEquals(2L, ((Long)iter.next().get(0)).longValue());
}
@Test
@@ -121,9 +126,17 @@ public class TestPigServerWithMacros {
pig.registerQuery("b = foreach a generate pig.helloworld($0);");
Iterator<Tuple> iter = pig.openIterator("b");
- Assert.assertTrue(iter.next().get(0).equals("Hello, World"));
- Assert.assertTrue(iter.next().get(0).equals("Hello, World"));
- Assert.assertFalse(iter.hasNext());
+ assertTrue(iter.hasNext());
+ Tuple t = iter.next();
+ assertTrue(t.size() > 0);
+ assertEquals("Hello, World", t.get(0));
+
+ assertTrue(iter.hasNext());
+ t = iter.next();
+ assertTrue(t.size() > 0);
+ assertEquals("Hello, World", t.get(0));
+
+ assertFalse(iter.hasNext());
}
@Test
@@ -159,6 +172,6 @@ public class TestPigServerWithMacros {
pig.registerQuery("b = row_count_in_jar(a);");
Iterator<Tuple> iter = pig.openIterator("b");
- Assert.assertTrue(((Long)iter.next().get(0))==5);
+ assertTrue(((Long)iter.next().get(0))==5);
}
}