You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by de...@apache.org on 2016/04/27 13:45:22 UTC
lens git commit: LENS-1017 : Add session config tests to regression
Repository: lens
Updated Branches:
refs/heads/master 3b3f42da5 -> e26ee5a71
LENS-1017 : Add session config tests to regression
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/e26ee5a7
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/e26ee5a7
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/e26ee5a7
Branch: refs/heads/master
Commit: e26ee5a71fc493dec34f81066b52be399576c996
Parents: 3b3f42d
Author: Archana H <ar...@gmail.com>
Authored: Wed Apr 27 17:14:50 2016 +0530
Committer: Deepak Kumar Barr <de...@gmail.com>
Committed: Wed Apr 27 17:14:50 2016 +0530
----------------------------------------------------------------------
.../core/constants/QueryInventory.java | 4 +-
.../regression/core/helpers/QueryHelper.java | 8 +-
.../regression/core/helpers/SessionHelper.java | 3 +-
.../lens/regression/client/ITListQueryTest.java | 26 +-
.../lens/regression/client/KillQueryTests.java | 18 +-
.../regression/client/SessionResourceTests.java | 153 +++-----
.../regression/config/ITSessionConfigTests.java | 358 +++++++++++++++++++
7 files changed, 435 insertions(+), 135 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/e26ee5a7/lens-regression/src/main/java/org/apache/lens/regression/core/constants/QueryInventory.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/constants/QueryInventory.java b/lens-regression/src/main/java/org/apache/lens/regression/core/constants/QueryInventory.java
index 5f1f607..869a96b 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/constants/QueryInventory.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/constants/QueryInventory.java
@@ -60,8 +60,8 @@ public class QueryInventory {
+ "time_range_in(delivery_time,'2015-04-12','2015-04-14')";
public static final String WRONG_HIVE_DIM_QUERY = "cube select NO_ID from sample_dim2 where name != 'first'";
- public static final String WRONG_HIVE_CUBE_QUERY="cube select sample_dim_chain.name, measure4 from sample_cube where "
- + "time_range_in(dt, '2014-07-01-00', '2014-07-25-05')";
+ public static final String NO_PARTITION_HIVE_CUBE_QUERY="cube select sample_dim_chain.name, measure4 from sample_cube"
+ + " where time_range_in(dt, '2014-07-01-00', '2014-07-25-05')";
public static final String WRONG_SYNTAX_QUERY="cube select id,name from sample_dim2 name != 'first'";
http://git-wip-us.apache.org/repos/asf/lens/blob/e26ee5a7/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
index 9355e47..2b4a750 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/QueryHelper.java
@@ -298,18 +298,16 @@ public class QueryHelper extends ServiceManagerHelper {
* @param sessionHandleString
* @return the query Result
*/
+
public QueryResult getResultSet(QueryHandle queryHandle, String fromIndex, String fetchSize,
String sessionHandleString) throws LensException {
- MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
- query.put("fromindex", fromIndex);
- query.put("fetchsize", fetchSize);
-
+ MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "fromindex", fromIndex,
+ "fetchsize", fetchSize);
Response response = this.exec("get", QueryURL.QUERY_URL + "/" + queryHandle.toString() + "/resultset", servLens,
null, query, MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_XML, null);
AssertUtil.assertSucceededResponse(response);
QueryResult result = response.readEntity(new GenericType<QueryResult>(){});
- log.info("QueryResult String:{}", result);
return result;
}
http://git-wip-us.apache.org/repos/asf/lens/blob/e26ee5a7/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
index 753a7b4..4918882 100644
--- a/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
+++ b/lens-regression/src/main/java/org/apache/lens/regression/core/helpers/SessionHelper.java
@@ -216,8 +216,7 @@ public class SessionHelper extends ServiceManagerHelper {
}
public String getSessionParam(String sessionHandleString, String param) throws Exception {
- MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
- query.put("key", param);
+ MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "key", param);
Response response = this.exec("get", SessionURL.SESSION_PARAMS_URL, servLens, null, query);
AssertUtil.assertSucceededResponse(response);
StringList strList = response.readEntity(new GenericType<StringList>(StringList.class));
http://git-wip-us.apache.org/repos/asf/lens/blob/e26ee5a7/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
index d193c9c..60cf26c 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
@@ -77,7 +77,7 @@ public class ITListQueryTest extends BaseTestClass {
lens.closeSession();
}
- @DataProvider(name = "DP")
+ @DataProvider(name = "query-provider")
public Object[][] getData() throws Exception {
String[] queries = new String[]{QueryInventory.HIVE_CUBE_QUERY, QueryInventory.HIVE_DIM_QUERY,
@@ -93,7 +93,7 @@ public class ITListQueryTest extends BaseTestClass {
}
- @Test(enabled = true, dataProvider = "DP")
+ @Test(enabled = true, dataProvider = "query-provider")
public void getQueryByQueryNameAllQuery(String queryString) throws Exception {
String queryName = "queryNameFirst";
@@ -151,35 +151,26 @@ public class ITListQueryTest extends BaseTestClass {
public void listQueryByTimeRange() throws Exception {
//Running First Query
-
String startTime = String.valueOf(System.currentTimeMillis());
logger.info("Start Time of 1st Query : " + startTime);
- Thread.sleep(20000);
-
QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData();
LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
-
String endTime = String.valueOf(System.currentTimeMillis());
logger.info("End Time of 1st Query : " + endTime);
- Thread.sleep(20000);
+ Thread.sleep(1000);
//Running Second Query
-
String startTime1 = String.valueOf(System.currentTimeMillis());
logger.info("Start Time of 2nd Query : " + startTime1);
- Thread.sleep(20000);
-
QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData();
lensQuery = qHelper.waitForCompletion(queryHandle1);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
-
String endTime1 = String.valueOf(System.currentTimeMillis());
logger.info("End Time of 2nd Query : " + endTime1);
List<QueryHandle> list = qHelper.getQueryHandleList(null, null, null, sessionHandleString, startTime, endTime);
-
Assert.assertTrue(list.contains(queryHandle), "QueryList by TimeRange is not correct");
Assert.assertFalse(list.contains(queryHandle1), "QueryList by TimeRange is not correct");
@@ -239,7 +230,6 @@ public class ITListQueryTest extends BaseTestClass {
String startTime = String.valueOf(System.currentTimeMillis());
logger.info("Start Time of 1st Query : " + startTime);
- Thread.sleep(60000);
QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY, queryName).getData();
LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
@@ -467,28 +457,26 @@ public class ITListQueryTest extends BaseTestClass {
String diffSession2 = sHelper.openNewSession(user2, pwd2, lens.getCurrentDB());
String startTime1 = String.valueOf(System.currentTimeMillis());
- Thread.sleep(10000);
QueryHandle q1 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY, queryName1).getData();
LensQuery lensQuery = qHelper.waitForCompletion(q1);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
String endTime1 = String.valueOf(System.currentTimeMillis());
- Thread.sleep(10000);
+ Thread.sleep(1000);
String startTime2 = String.valueOf(System.currentTimeMillis());
- Thread.sleep(10000);
QueryHandle q2 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY, queryName2, diffSession1).getData();
String endTime2 = String.valueOf(System.currentTimeMillis());
- Thread.sleep(10000);
+ Thread.sleep(1000);
String startTime3 = String.valueOf(System.currentTimeMillis());
- Thread.sleep(10000);
+ Thread.sleep(1000);
QueryHandle q3 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY, queryName3, diffSession2).getData();
qHelper.killQueryByQueryHandle(q3);
String endTime3 = String.valueOf(System.currentTimeMillis());
- Thread.sleep(10000);
+ Thread.sleep(1000);
List<QueryHandle> list1 = qHelper.getQueryHandleList(queryName2, "RUNNING", user1, sessionHandleString, startTime2,
endTime2);
http://git-wip-us.apache.org/repos/asf/lens/blob/e26ee5a7/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java
index e2148e3..8aabe2d 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java
@@ -128,8 +128,7 @@ public class KillQueryTests extends BaseTestClass {
Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
- logger.info("Going to kill in 20 sec");
- Thread.sleep(20000);
+ Thread.sleep(1000);
qHelper.killQuery(null, null, lens.getUserName());
Thread.sleep(2000);
@@ -302,24 +301,17 @@ public class KillQueryTests extends BaseTestClass {
String startTime1 = String.valueOf(System.currentTimeMillis());
logger.info("Start Time of 1st Query : " + startTime1);
- Thread.sleep(20000);
-
+ Thread.sleep(1000);
QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY).getData();
- logger.info("1st QUERY HANDLE : " + queryHandle1);
-
String endTime1 = String.valueOf(System.currentTimeMillis());
logger.info("End Time of 1st Query : " + endTime1);
- //Sleeping for 1 min
- Thread.sleep(20000);
+ Thread.sleep(1000);
String startTime2 = String.valueOf(System.currentTimeMillis());
logger.info("Start Time of 2nd Query : " + startTime2);
- Thread.sleep(20000);
-
+ Thread.sleep(1000);
QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY).getData();
- logger.info("2nd QUERY HANDLE : " + queryHandle2);
-
String endTime2 = String.valueOf(System.currentTimeMillis());
logger.info("End Time of 2nd Query : " + endTime2);
@@ -352,7 +344,7 @@ public class KillQueryTests extends BaseTestClass {
String startTime1 = String.valueOf(System.currentTimeMillis());
logger.info("Start Time of 1st Query : " + startTime1);
- Thread.sleep(20000);
+ Thread.sleep(1000);
QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_QUERY, queryName1).getData();
logger.info("1st QUERY HANDLE : " + queryHandle1);
http://git-wip-us.apache.org/repos/asf/lens/blob/e26ee5a7/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
index 3bb30d8..62dd0ba 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/SessionResourceTests.java
@@ -39,6 +39,7 @@ import org.apache.lens.api.query.QueryHandle;
import org.apache.lens.api.query.QueryStatus;
import org.apache.lens.regression.core.constants.MetastoreURL;
import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.constants.QueryURL;
import org.apache.lens.regression.core.constants.SessionURL;
import org.apache.lens.regression.core.helpers.LensServerHelper;
import org.apache.lens.regression.core.helpers.MetastoreHelper;
@@ -49,9 +50,9 @@ import org.apache.lens.regression.core.testHelper.BaseTestClass;
import org.apache.lens.regression.core.type.FormBuilder;
import org.apache.lens.regression.core.type.MapBuilder;
import org.apache.lens.regression.util.AssertUtil;
-import org.apache.lens.regression.util.HadoopUtil;
import org.apache.lens.regression.util.Util;
import org.apache.lens.server.api.error.LensException;
+import org.apache.lens.server.api.util.LensUtil;
import org.apache.log4j.Logger;
@@ -84,13 +85,6 @@ public class SessionResourceTests extends BaseTestClass {
@BeforeClass(alwaysRun = true)
public void initialize() throws IOException, JSchException, JAXBException, LensException {
servLens = ServiceManagerHelper.init();
-
- HadoopUtil.uploadJars(localJarPath + "/" + hiveUdfJar, hdfsJarPath);
- logger.info("Creating Local Resource Directory in Server Machine");
- Util.runRemoteCommand("mkdir -p " + serverResourcePath);
- String path = hdfsJarPath + "/" + hiveUdfJar;
- logger.info("Copying " + path + " to Local Resource Directory in Server Machine");
- Util.runRemoteCommand("hadoop fs -get " + path + " " + serverResourcePath);
}
@BeforeMethod(alwaysRun = true)
@@ -106,13 +100,13 @@ public class SessionResourceTests extends BaseTestClass {
lens.closeSession();
}
- public boolean checkSessionParamMap(String sessionHandle) throws Exception {
+ private boolean checkSessionParamMap(String sessionHandle) throws Exception {
MapBuilder query = new MapBuilder("sessionid", sessionHandle, "verbose", "true");
Response response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
AssertUtil.assertSucceededResponse(response);
StringList strList = response.readEntity(new GenericType<StringList>(StringList.class));
HashMap<String, String> map = Util.stringListToMap(strList);
- if (map == null){
+ if (map == null) {
return false;
}
return true;
@@ -121,64 +115,34 @@ public class SessionResourceTests extends BaseTestClass {
@Test
public void testSessionGet() throws Exception {
- Response response = lens.exec("get", "/session", servLens, null, null);
- AssertUtil.assertSucceededResponse(response);
+ String newSessionHandle = sHelper.openNewSession("diff", "diff");
+ Assert.assertNotNull(newSessionHandle);
}
@Test
- public void testSessionPostDelete() throws Exception {
-
- Map<String, String> resource = new HashMap<String, String>();
- resource.put("username", lens.getUserName());
- resource.put("password", lens.getPassword());
-
- FormBuilder formData = new FormBuilder(resource);
- Response response = lens.sendForm("post", SessionURL.SESSION_BASE_URL, formData);
- AssertUtil.assertSucceededResponse(response);
- String sessionHandle = response.readEntity(String.class);
- Assert.assertTrue(checkSessionParamMap(sessionHandle), "Session is Closed");
-
- MapBuilder query = new MapBuilder("sessionid", sessionHandle);
- response = lens.exec("delete", SessionURL.SESSION_BASE_URL, servLens, null, query);
- AssertUtil.assertSucceeded(response);
- Assert.assertFalse(checkSessionParamMap(sessionHandle), "Session is Still Open");
- }
-
- @Test
- public void testSessionParamsGetVerbose() throws Exception {
+ public void testSessionParamsGetVerbose() throws Exception {
Assert.assertTrue(checkSessionParamMap(sessionHandleString), "Returned Empty Params list");
}
@Test
- public void testSessionParamsGetNPut() throws Exception {
-
- Map<String, String> resource = new HashMap<String, String>();
- resource.put("sessionid", sessionHandleString);
- resource.put("key", newParamsKey);
- resource.put("value", newParamsValue);
+ public void testSessionParamsGetNPut() throws Exception {
+ Map<String, String> resource = LensUtil.getHashMap("sessionid", sessionHandleString, "key", newParamsKey,
+ "value", newParamsValue);
FormBuilder formData = new FormBuilder(resource);
Response response = lens.sendForm("put", SessionURL.SESSION_PARAMS_URL, formData);
AssertUtil.assertSucceeded(response);
- MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "key", "datanucleus.autoCreateSchema");
-
- response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
- AssertUtil.assertSucceededResponse(response);
+ String value = sHelper.getSessionParam(newParamsKey);
+ Assert.assertEquals(value, newParamsValue, "From Session Params Put");
- StringList strList = response.readEntity(new GenericType<StringList>(StringList.class));
- HashMap<String, String> map = Util.stringListToMap(strList);
-
- Assert.assertEquals(map.get("datanucleus.autoCreateSchema"),
- newParamsValue, "From Session Params Put");
- Assert.assertEquals(map.size(), 1, "Params List contains more than one param");
}
//Negative Test Case
@Test
- public void testSessionGetUndefinedParams() throws Exception {
+ public void testSessionGetUndefinedParams() throws Exception {
String undefinedParamsKey = "test123";
MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "key", undefinedParamsKey);
@@ -195,32 +159,29 @@ public class SessionResourceTests extends BaseTestClass {
@Test
public void testSessionRestore() throws Exception {
- Map<String, String> resource = new HashMap<String, String>();
- resource.put("sessionid", sessionHandleString);
- resource.put("key", newParamsKey);
- resource.put("value", newParamsValue);
+ Map<String, String> resource = LensUtil.getHashMap("sessionid", sessionHandleString,
+ "key", newParamsKey, "value", newParamsValue);
FormBuilder formData = new FormBuilder(resource);
+
Response response = lens.sendForm("put", SessionURL.SESSION_PARAMS_URL, formData);
AssertUtil.assertSucceeded(response);
lens.restart();
- MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "key", "datanucleus.autoCreateSchema");
+ MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "key", newParamsKey);
response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
AssertUtil.assertSucceededResponse(response);
-
StringList strList = response.readEntity(new GenericType<StringList>(StringList.class));
HashMap<String, String> map = Util.stringListToMap(strList);
- Assert.assertEquals(map.get("datanucleus.autoCreateSchema"),
- newParamsValue, "From Session Params Put");
+ Assert.assertEquals(map.get(newParamsKey), newParamsValue, "From Session Params Put");
Assert.assertEquals(map.size(), 1, "Params List contains more than one param");
}
@Test
- public void testSessionHDFSResourcePutNDelete() throws Exception {
+ public void testSessionHDFSResourcePutNDelete() throws Exception {
String path = hdfsJarPath + "/" + hiveUdfJar;
sHelper.addResourcesJar(path);
@@ -228,21 +189,18 @@ public class SessionResourceTests extends BaseTestClass {
QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
- Assert.assertEquals(lensQuery.getStatus().getStatusMessage().trim(),
- "Query is successful!", "Query did not succeed");
sHelper.removeResourcesJar(path);
queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.FAILED);
- Assert.assertNotEquals(lensQuery.getStatus().getStatusMessage().trim(),
- "Query is successful!", "Query Should have Failed but it Passed");
+
}
@Test
- public void testSessionLocalResourcePutNDelete() throws Exception {
+ public void testSessionLocalResourcePutNDelete() throws Exception {
String path = serverResourcePath + "/" + hiveUdfJar;
sHelper.addResourcesJar(path);
@@ -250,47 +208,46 @@ public class SessionResourceTests extends BaseTestClass {
QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
- Assert.assertEquals(lensQuery.getStatus().getStatusMessage().trim(),
- "Query is successful!", "Query did not succeed");
sHelper.removeResourcesJar(path);
queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
lensQuery = qHelper.waitForCompletion(queryHandle);
Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.FAILED);
- Assert.assertNotEquals(lensQuery.getStatus().getStatusMessage().trim(),
- "Query is successful!", "Query Should have Failed but it Passed");
}
@Test
- public void testListResources() throws Exception {
+ public void testListResources() throws Exception {
String path = serverResourcePath + "/" + hiveUdfJar;
sHelper.addResourcesJar(path);
MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
Response response = lens.sendQuery("get", SessionURL.SESSION_LIST_RESOURCE_URL, query);
- logger.info(response);
AssertUtil.assertSucceededResponse(response);
StringList responseString = response.readEntity(StringList.class);
List<String> jars = responseString.getElements();
- for(String t : jars) {
+ for (String t : jars) {
Assert.assertTrue(t.contains(hiveUdfJar));
}
- System.out.println(responseString);
}
@Test
- public void testSessionGone() throws Exception {
+ public void testSessionGone() throws Exception {
+
String newSession = sHelper.openNewSession("test", "test");
sHelper.closeNewSession(newSession);
+
MapBuilder query = new MapBuilder("sessionid", newSession);
- // Get Session Params with closed session
+ // Get Session resources with closed session
Response response = lens.sendQuery("get", SessionURL.SESSION_LIST_RESOURCE_URL, query);
- logger.info(response);
+ AssertUtil.assertGoneResponse(response);
+
+ // Get Session params with closd session
+ response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
AssertUtil.assertGoneResponse(response);
//Setting DB with closed session Handle
@@ -298,30 +255,27 @@ public class SessionResourceTests extends BaseTestClass {
null, query, MediaType.APPLICATION_XML_TYPE, null, lens.getCurrentDB());
AssertUtil.assertGoneResponse(response);
- //Explain Query with closed session Handle
FormBuilder formData = new FormBuilder();
formData.add("sessionid", newSession);
formData.add("query", QueryInventory.QUERY);
- formData.add("operation", "EXPLAIN");
formData.add("conf", "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><conf />");
- response = lens.exec("post", "/queryapi/queries", servLens, null, null,
+
+ //Explain Query with closed session Handle
+ formData.add("operation", "EXPLAIN");
+ response = lens.exec("post", QueryURL.QUERY_URL, servLens, null, null,
MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
AssertUtil.assertGoneResponse(response);
//Execute Query with closed session Handle
- formData = new FormBuilder();
- formData.add("sessionid", newSession);
- formData.add("query", QueryInventory.QUERY);
formData.add("operation", "EXECUTE");
- formData.add("conf", "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><conf />");
- response = lens.exec("post", "/queryapi/queries", servLens, null, null,
+ response = lens.exec("post", QueryURL.QUERY_URL, servLens, null, null,
MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
AssertUtil.assertGoneResponse(response);
}
@Test
- public void testOpenSessionWithDB() throws Exception {
+ public void testOpenSessionWithDB() throws Exception {
String newDb = "opensessionwithdb";
mHelper.createDatabase(newDb);
@@ -333,7 +287,7 @@ public class SessionResourceTests extends BaseTestClass {
}
@Test
- public void testOpenSessionDefault() throws Exception {
+ public void testOpenSessionDefault() throws Exception {
String newSession = sHelper.openNewSession("test", "test");
String curDB = mHelper.getCurrentDatabase(newSession);
@@ -343,21 +297,14 @@ public class SessionResourceTests extends BaseTestClass {
@Test
- public void testOpenSessionDBDoesnotExist() throws Exception {
-
- FormBuilder formData = new FormBuilder();
- formData.add("username", "test");
- formData.add("password", "test");
- formData.add("database", "dbdoesnotexist");
+ public void testOpenSessionDBDoesnotExist() throws Exception {
- Response response = mHelper.exec("post", "/session", servLens, null, null,
- MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
+ Response response = sHelper.openSessionReturnResponse("test", "test", "dbdoesnotexist", null);
AssertUtil.assertFailedResponse(response);
-
}
@Test
- public void testDBCeption() throws Exception {
+ public void testSessionDBChange() throws Exception {
String newDb = "opensessionwithdb";
String newDb1 = "opensessionwithdb1";
@@ -371,9 +318,27 @@ public class SessionResourceTests extends BaseTestClass {
mHelper.setCurrentDatabase(newSession, newDb1);
curDB = mHelper.getCurrentDatabase(newSession);
Assert.assertEquals(curDB, newDb1, "Could not open session with passed db");
+
sHelper.closeNewSession(newSession);
mHelper.dropDatabase(newDb);
mHelper.dropDatabase(newDb1);
}
+ //Fails as closeSession cannot take json as input,. (No API can take json as input)
+ @Test(enabled = false)
+ public void testGetSessionJson() throws Exception {
+
+ String newSessionHandle = sHelper.openNewSession("diff", "diff", null, MediaType.APPLICATION_JSON);
+ Assert.assertNotNull(newSessionHandle);
+ Assert.assertFalse(newSessionHandle.isEmpty());
+ sHelper.closeNewSession(newSessionHandle, MediaType.APPLICATION_JSON);
+ }
+
+ @Test(enabled = true)
+ public void testCloseSessionJson() throws Exception {
+ String s2 = sHelper.openNewSession("diff", "diff", null, MediaType.APPLICATION_XML);
+ Assert.assertNotNull(s2);
+ Assert.assertFalse(s2.isEmpty());
+ sHelper.closeNewSession(s2, MediaType.APPLICATION_JSON);
+ }
}
http://git-wip-us.apache.org/repos/asf/lens/blob/e26ee5a7/lens-regression/src/test/java/org/apache/lens/regression/config/ITSessionConfigTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/config/ITSessionConfigTests.java b/lens-regression/src/test/java/org/apache/lens/regression/config/ITSessionConfigTests.java
new file mode 100644
index 0000000..d3b8ffb
--- /dev/null
+++ b/lens-regression/src/test/java/org/apache/lens/regression/config/ITSessionConfigTests.java
@@ -0,0 +1,358 @@
+/**
+ * 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.lens.regression.config;
+
+import java.io.IOException;
+import java.lang.reflect.Method;
+
+import javax.ws.rs.client.WebTarget;
+
+import javax.xml.bind.JAXBException;
+
+import org.apache.lens.api.query.*;
+import org.apache.lens.cube.parse.CubeQueryConfUtil;
+import org.apache.lens.regression.client.SessionResourceTests;
+import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.helpers.LensServerHelper;
+import org.apache.lens.regression.core.helpers.MetastoreHelper;
+import org.apache.lens.regression.core.helpers.QueryHelper;
+import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
+import org.apache.lens.regression.core.helpers.SessionHelper;
+import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.regression.util.Util;
+import org.apache.lens.server.api.LensConfConstants;
+import org.apache.lens.server.api.error.LensException;
+
+import org.apache.log4j.Logger;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+
+import com.jcraft.jsch.JSchException;
+
+
+public class ITSessionConfigTests extends BaseTestClass{
+
+ WebTarget servLens;
+ String sessionHandleString;
+
+ LensServerHelper lens = getLensServerHelper();
+ MetastoreHelper mHelper = getMetastoreHelper();
+ SessionHelper sHelper = getSessionHelper();
+ QueryHelper qHelper = getQueryHelper();
+
+ private static String queryResultParentDirPath = "/tmp/lensreports";
+ private String lensConfFilePath = lens.getServerDir() + "/conf/lens-site.xml";
+
+ private static Logger logger = Logger.getLogger(SessionResourceTests.class);
+
+ @BeforeClass(alwaysRun = true)
+ public void initialize() throws IOException, JSchException, JAXBException, LensException {
+ servLens = ServiceManagerHelper.init();
+ }
+
+ @BeforeMethod(alwaysRun = true)
+ public void setUp(Method method) throws Exception {
+ logger.info("Test Name: " + method.getName());
+ sessionHandleString = sHelper.openSession(lens.getCurrentDB());
+ }
+
+ @AfterMethod(alwaysRun=true)
+ public void restoreConfig() throws JSchException, IOException, JAXBException, LensException{
+ sHelper.closeSession();
+ }
+
+
+ @DataProvider(name="query_provider")
+ public Object[][] queryProvider(){
+ String[][] query = { {QueryInventory.JDBC_DIM_QUERY}, {QueryInventory.HIVE_CUBE_QUERY},
+ {QueryInventory.HIVE_DIM_QUERY}, };
+ return query;
+ }
+
+
+ // Test for lens.query.enable.persistent.resultset
+
+ @Test(enabled=true, dataProvider="query_provider")
+ public void testDisablePresistentResult(String queryString) throws Exception{
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "false");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(queryString).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+ InMemoryQueryResult inmemory = (InMemoryQueryResult) qHelper.getResultSet(queryHandle, "0", "100");
+ Assert.assertNotNull(inmemory);
+
+ try {
+ PersistentQueryResult result = (PersistentQueryResult)qHelper.getResultSet(queryHandle, "0", "100");
+ Assert.assertFalse(true);
+ } catch(Exception e){
+ logger.info(e.getMessage().toString());
+ }
+
+ }
+
+ @Test(enabled=true, dataProvider="query_provider")
+ public void testPresistentResult(String queryString) throws Exception{
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(queryString).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+ try{
+ InMemoryQueryResult inmemory = (InMemoryQueryResult)qHelper.getResultSet(queryHandle, "0", "100");
+ Assert.assertFalse(true);
+ }catch(Exception e){
+ logger.info(e.getMessage().toString());
+ }
+
+ PersistentQueryResult result = (PersistentQueryResult)qHelper.getResultSet(queryHandle, "0", "100");
+ Assert.assertNotNull(result);
+ }
+
+
+ @Test(enabled=false) //Issue with indriver persistence for local file path
+ public void testPersistentResultsetIndriver() throws Exception{
+
+ String parentDir = "file://" + queryResultParentDirPath;
+ String hdfsoutPath = "temphdfsout";
+ Util.runRemoteCommand("mkdir " + queryResultParentDirPath + "/" + hdfsoutPath);
+ Util.runRemoteCommand("chmod -R 777 " + queryResultParentDirPath + "/"+ hdfsoutPath);
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "true");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SET_PARENT_DIR, parentDir);
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_HDFS_OUTPUT_PATH, hdfsoutPath);
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+ PersistentQueryResult result = (PersistentQueryResult)qHelper.getResultSet(queryHandle);
+ String rowCount = Util.runRemoteCommand("cat " + queryResultParentDirPath + "/" + hdfsoutPath + "/"
+ + queryHandle.toString() + "/* |wc -l");
+ //Result file will have 2 lines extra, column header and footer saying number of rows.
+ Assert.assertEquals(Integer.parseInt(rowCount.trim()), result.getNumRows()+2,
+ "Result is not persisted in the given directory");
+ }
+
+
+ //Test for session properties lens.query.result.parent.dir
+
+ @DataProvider(name="path_provider")
+ public Object[][] pathProvider() throws JSchException, IOException{
+
+ Util.runRemoteCommand("mkdir /tmp/temporary");
+ Util.runRemoteCommand("chmod -R 777 /tmp/temporary");
+
+ String[][] path = { {"file://" + queryResultParentDirPath, "local"},
+ {lens.getServerHdfsUrl() + queryResultParentDirPath, "hdfs"},
+ {"file:///tmp/temporary", "local"},
+ };
+ return path;
+ }
+
+ @Test(enabled=true, dataProvider="path_provider")
+ public void testPersistentResultPath(String parentDir, String type) throws Exception {
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SET_PARENT_DIR, parentDir);
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+ PersistentQueryResult result = (PersistentQueryResult) qHelper.getResultSet(queryHandle);
+ String rowCount = null;
+
+ if (type.equalsIgnoreCase("hdfs")) {
+ rowCount = Util.runRemoteCommand("hadoop fs -cat " + parentDir + "/" + queryHandle + "* | gunzip | wc -l");
+ } else {
+ rowCount = Util.runRemoteCommand("cat " + parentDir.substring(7, parentDir.length()) + "/" + queryHandle
+ + "* | gunzip | wc -l");
+ }
+
+ Assert.assertEquals(Integer.parseInt(rowCount.trim()), result.getNumRows()+2,
+ "Result is not persisted in the given directory");
+ }
+
+ @Test(enabled=true, dataProvider="path_provider")
+ public void testPersistentResultPathJDBCQuery(String parentDir, String type) throws Exception {
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SET_PARENT_DIR, parentDir);
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_CUBE_QUERY).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+
+ PersistentQueryResult result = (PersistentQueryResult) qHelper.getResultSet(queryHandle);
+ String rowCount = null;
+
+ if (type.equalsIgnoreCase("hdfs")) {
+ rowCount = Util.runRemoteCommand("hadoop fs -cat " + parentDir + "/" + queryHandle + "* | gunzip | wc -l");
+ } else {
+ rowCount = Util.runRemoteCommand("cat " + parentDir.substring(7, parentDir.length()) + "/" + queryHandle
+ + "* | gunzip | wc -l");
+ }
+
+ Assert.assertEquals(Integer.parseInt(rowCount.trim()), result.getNumRows()+2);
+
+ }
+
+
+ // Test for lens.query.result.split.multiple and lens.query.result.split.multiple.maxrows
+
+ @Test(enabled=true, dataProvider="query_provider")
+ public void testQueryResultSplit(String queryString) throws Exception{
+
+ int splitSize = 1;
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SET_PARENT_DIR, lens.getServerHdfsUrl()
+ + queryResultParentDirPath);
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SPLIT_INTO_MULTIPLE, "true");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SPLIT_MULTIPLE_MAX_ROWS, String.valueOf(splitSize));
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(queryString).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed");
+ PersistentQueryResult result = (PersistentQueryResult)qHelper.getResultSet(queryHandle);
+
+ logger.info(Util.runRemoteCommand("bash hadoop fs -get " + queryResultParentDirPath + "/" + queryHandle
+ + ".zip /tmp"));
+ logger.info(Util.runRemoteCommand("cd /tmp; unzip " + queryHandle + ".zip"));
+ String numberOfFiles = Util.runRemoteCommand("ls /tmp/" + queryHandle + "* | grep -v zip |wc -l");
+ logger.info("number of files is-:" + numberOfFiles.trim());
+ int numFiles = Integer.parseInt(numberOfFiles.trim());
+ Assert.assertEquals(numFiles, result.getNumRows().intValue(), "Files are not splitting");
+
+ for(int i = 0; i < numFiles; i++) {
+ String rowsPerFile = Util.runRemoteCommand("cd /tmp;ls " + queryHandle + "_part-" + String.valueOf(i)
+ + ".csv |wc -l");
+ Assert.assertEquals(rowsPerFile.trim(), String.valueOf(splitSize), "Maxrows property not followed");
+ }
+ }
+
+ // Test for property lens.cube.query.fail.if.data.partial
+ @Test(enabled=true)
+ public void testQueryFailIfDataPartial() throws Exception{
+
+ sHelper.setAndValidateParam(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "true");
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.NO_PARTITION_HIVE_CUBE_QUERY).getData();
+ Assert.assertNull(queryHandle);
+
+ sHelper.setAndValidateParam(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "false");
+ queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.NO_PARTITION_HIVE_CUBE_QUERY).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed!!");
+ }
+
+
+ /*
+ * Test for property lens.query.output.write.header and lens.query.output.header
+ */
+
+ @Test(enabled=true, dataProvider="query_provider")
+ public void testQueryOutputHeader(String queryString) throws Exception {
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_OUTPUT_WRITE_HEADER, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_OUTPUT_HEADER, "Query Result");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SPLIT_INTO_MULTIPLE, "false");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SET_PARENT_DIR, "file://" + queryResultParentDirPath);
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(queryString).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed!!");
+
+ PersistentQueryResult result = (PersistentQueryResult)qHelper.getResultSet(queryHandle);
+ Util.runRemoteCommand("gzip -d " + queryResultParentDirPath + "/" + queryHandle + ".csv.gz");
+
+ String content = Util.runRemoteCommand("cat " + queryResultParentDirPath + "/" + queryHandle + ".csv");
+ String[] lines = content.split("\n");
+ Assert.assertEquals(lines[0].trim(), "Query Result", "Header incorrect");
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_OUTPUT_WRITE_HEADER, "false");
+
+ queryHandle = (QueryHandle) qHelper.executeQuery(queryString).getData();
+ lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed!!");
+
+ PersistentQueryResult result1 = (PersistentQueryResult)qHelper.getResultSet(queryHandle);
+ Util.runRemoteCommand("gzip -d " + queryResultParentDirPath + "/" + queryHandle + ".csv.gz");
+
+ content = Util.runRemoteCommand("cat " + queryResultParentDirPath + "/" + queryHandle + ".csv");
+ lines = content.split("\n");
+ Assert.assertNotEquals(lines[0].trim(), "Query Result", "Header should not be printed");
+ }
+
+ /*
+ * Test for property lens.query.output.write.footer and lens.query.output.footer
+ */
+
+ @Test(enabled=true, dataProvider="query_provider")
+ public void testQueryOutputFooter(String queryString) throws Exception {
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_OUTPUT_FOOTER, "CopyRight");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_OUTPUT_WRITE_FOOTER, "true");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SPLIT_INTO_MULTIPLE, "false");
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+ sHelper.setAndValidateParam(LensConfConstants.RESULT_SET_PARENT_DIR, "file://" + queryResultParentDirPath);
+
+ QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(queryString).getData();
+ LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed!!");
+
+ PersistentQueryResult result = (PersistentQueryResult)qHelper.getResultSet(queryHandle);
+ Util.runRemoteCommand("gzip -d " + queryResultParentDirPath + "/" + queryHandle + ".csv.gz");
+
+ String content = Util.runRemoteCommand("cat " + queryResultParentDirPath + "/" + queryHandle + ".csv");
+ String[] lines = content.split("\n");
+ Assert.assertEquals(lines[result.getNumRows()+1].trim(), "CopyRight", "Footer incorrect");
+
+ sHelper.setAndValidateParam(LensConfConstants.QUERY_OUTPUT_WRITE_FOOTER, "false");
+
+ queryHandle = (QueryHandle) qHelper.executeQuery(queryString).getData();
+ lensQuery = qHelper.waitForCompletion(queryHandle);
+ Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL, "Query did not succeed!!");
+
+ PersistentQueryResult result1 = (PersistentQueryResult)qHelper.getResultSet(queryHandle);
+ Util.runRemoteCommand("gzip -d " + queryResultParentDirPath + "/" + queryHandle + ".csv.gz");
+
+ content = Util.runRemoteCommand("cat " + queryResultParentDirPath + "/" + queryHandle + ".csv");
+ lines = content.split("\n");
+ Assert.assertEquals(lines.length, (result1.getNumRows().intValue())+1, "Footer shouldn't be coming");
+ }
+
+}
+
+
+