Return-Path: X-Original-To: apmail-pig-commits-archive@www.apache.org Delivered-To: apmail-pig-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9DD0E9CCD for ; Fri, 5 Oct 2012 21:19:18 +0000 (UTC) Received: (qmail 40049 invoked by uid 500); 5 Oct 2012 21:19:18 -0000 Delivered-To: apmail-pig-commits-archive@pig.apache.org Received: (qmail 39954 invoked by uid 500); 5 Oct 2012 21:19:18 -0000 Mailing-List: contact commits-help@pig.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pig.apache.org Delivered-To: mailing list commits@pig.apache.org Received: (qmail 39946 invoked by uid 99); 5 Oct 2012 21:19:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Oct 2012 21:19:18 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Oct 2012 21:19:12 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B860223889B8 for ; Fri, 5 Oct 2012 21:18:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Fri, 05 Oct 2012 21:18:25 -0000 To: commits@pig.apache.org From: jcoveney@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121005211826.B860223889B8@eris.apache.org> 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 list, String name, boolean included) { - Iterator 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 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 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 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 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 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 iter = pig.openIterator("b"); - Assert.assertTrue(((Long)iter.next().get(0))==5); + assertTrue(((Long)iter.next().get(0))==5); } }