You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bigtop.apache.org by co...@apache.org on 2014/02/21 02:36:36 UTC
git commit: BIGTOP-1209. Add SLive test into longevity suite
Repository: bigtop
Updated Branches:
refs/heads/master 54d45491f -> b91629c91
BIGTOP-1209. Add SLive test into longevity suite
Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo
Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/b91629c9
Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/b91629c9
Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/b91629c9
Branch: refs/heads/master
Commit: b91629c91533ab2bf74ac4448b9cb815ffa78169
Parents: 54d4549
Author: Virginia Wang <vi...@wandisco.com>
Authored: Thu Feb 20 17:36:06 2014 -0800
Committer: Konstantin Boudnik <co...@apache.org>
Committed: Thu Feb 20 17:36:06 2014 -0800
----------------------------------------------------------------------
.../bigtop/itest/iolongevity/TestSLive.groovy | 122 +++++++++++++++++++
bigtop-tests/test-execution/README | 7 +-
2 files changed, 128 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bigtop/blob/b91629c9/bigtop-tests/test-artifacts/longevity/src/main/groovy/org/apache/bigtop/itest/iolongevity/TestSLive.groovy
----------------------------------------------------------------------
diff --git a/bigtop-tests/test-artifacts/longevity/src/main/groovy/org/apache/bigtop/itest/iolongevity/TestSLive.groovy b/bigtop-tests/test-artifacts/longevity/src/main/groovy/org/apache/bigtop/itest/iolongevity/TestSLive.groovy
new file mode 100644
index 0000000..76a96e6
--- /dev/null
+++ b/bigtop-tests/test-artifacts/longevity/src/main/groovy/org/apache/bigtop/itest/iolongevity/TestSLive.groovy
@@ -0,0 +1,122 @@
+/**
+ * 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.bigtop.itest.iolongevity
+
+import org.apache.bigtop.itest.JarContent
+import org.apache.bigtop.itest.shell.Shell
+import org.junit.Before
+import org.junit.BeforeClass
+import org.junit.Test
+import static org.apache.bigtop.itest.LogErrorsUtils.logError
+import static org.junit.Assert.assertNotNull
+import static org.junit.Assert.assertTrue
+
+/** SLive test includes the following test sequence
+ * 100% creates, 100% renames, 100% read, 100% append, 100% ls, and 100% delete
+ * A mix 20% creates, 20% read, 20% append, 20% ls, 20% mkdir
+ */
+
+public class TestSLive {
+ static Shell sh = new Shell("/bin/bash -s")
+ private static final String hadoopMapReduceHome =
+ System.getProperty('HADOOP_MAPRED_HOME', '/usr/lib/hadoop-mapreduce')
+ private static final String Slive_jar =
+ JarContent.getJarName(hadoopMapReduceHome,
+ 'hadoop.mapreduce.client.jobclient.*.tests.jar')
+ private static final String SLIVE_JAR =
+ hadoopMapReduceHome + "/" + Slive_jar
+ private static final int SLEEP_TIMEOUT = 5000
+ private static final String SLIVE_OUTPUT_FILE = "/test/slive/slive/output"
+ private static final String SLIVE_ROOT_FILE = "/test/slive"
+ private final int numOfIterations = Integer.getInteger("numOfIterations", 1);
+ static String[] sliveCmds
+
+ @BeforeClass
+ static void setUp() throws IOException {
+ assertNotNull("Can't find hadoop.mapreduce.client.jobclient.tests.jar",
+ Slive_jar)
+ final String numSliveFiles = System.getProperty("numSliveFiles", "100")
+ final String writeSize = System.getProperty("writeSize", "20480,20480")
+ final String readSize = System.getProperty("readSize", "20480,20480")
+ final String appendSize = System.getProperty("appendSize", "20480,20480")
+ final String blockSize = System.getProperty("blockSize", "10240,10240")
+
+ String SLIVE_TEMPLATE = "hadoop jar %s SliveTest -create %s -delete %s " +
+ "-rename %s -read %s -append %s -ls %s -mkdir %s -files %s " +
+ "-writeSize %s -readSize %s -appendSize %s -blockSize %s -resFile %s"
+ sliveCmds = [
+ String.format(SLIVE_TEMPLATE, SLIVE_JAR, 100, 0, 0, 0, 0, 0, 0,
+ numSliveFiles, writeSize, readSize, appendSize, blockSize,
+ "sliveOutputcreate.txt"), //create
+ String.format(SLIVE_TEMPLATE, SLIVE_JAR, 0, 0, 100, 0, 0, 0, 0,
+ numSliveFiles, writeSize, readSize, appendSize, blockSize,
+ "sliveOutputrename.txt"), //rename
+ String.format(SLIVE_TEMPLATE, SLIVE_JAR, 0, 0, 0, 100, 0, 0, 0,
+ numSliveFiles, writeSize, readSize, appendSize, blockSize,
+ "sliveOutputread.txt"), //read
+ String.format(SLIVE_TEMPLATE, SLIVE_JAR, 0, 0, 0, 0, 100, 0, 0,
+ numSliveFiles, writeSize, readSize, appendSize, blockSize,
+ "sliveOutputappend.txt"), //append
+ String.format(SLIVE_TEMPLATE, SLIVE_JAR, 0, 0, 0, 0, 0, 100, 0,
+ numSliveFiles, writeSize, readSize, appendSize, blockSize,
+ "sliveOutputls.txt"), //ls
+ String.format(SLIVE_TEMPLATE, SLIVE_JAR, 0, 100, 0, 0, 0, 0, 0,
+ numSliveFiles, writeSize, readSize, appendSize, blockSize,
+ "sliveOutputdelete.txt"), //delete
+ String.format(SLIVE_TEMPLATE, SLIVE_JAR, 20, 0, 0, 20, 20, 20, 20,
+ numSliveFiles, writeSize, readSize, appendSize, blockSize,
+ "sliveOutputmix.txt") //mix
+ ]
+ }
+
+ @Before
+ public void tearDown() {
+ sh.exec("hadoop fs -rm -r " + SLIVE_ROOT_FILE)
+ Thread.sleep(SLEEP_TIMEOUT)
+ }
+
+ public void cleanup() {
+ sh.exec("hadoop fs -rm -r " + SLIVE_OUTPUT_FILE)
+ Thread.sleep(SLEEP_TIMEOUT)
+ }
+
+ @Test
+ public void testSlive() {
+ String suffix = ""
+ for (int counter = 0; counter < numOfIterations; counter++) {
+ sh.exec("hadoop fs -mkdir " + SLIVE_ROOT_FILE)
+ sliveCmds.each { cmd ->
+ sh.exec(cmd + suffix)
+ logError(sh)
+ assertTrue(sh.getRet() == 0)
+ String expectedFile = SLIVE_OUTPUT_FILE + "/_SUCCESS"
+ sh.exec("hadoop fs -ls " + expectedFile)
+ boolean success = false
+ sh.getOut().each { str ->
+ if (str.contains(expectedFile)) {
+ success = true
+ }
+ }
+ assertTrue("File " + expectedFile + " was not found", success)
+ cleanup()
+ }
+ suffix = "." + counter
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/bigtop/blob/b91629c9/bigtop-tests/test-execution/README
----------------------------------------------------------------------
diff --git a/bigtop-tests/test-execution/README b/bigtop-tests/test-execution/README
index 136cbbf..3673e3c 100644
--- a/bigtop-tests/test-execution/README
+++ b/bigtop-tests/test-execution/README
@@ -19,4 +19,9 @@ of Hadoop stack validations using iTest framework
To run the DFSIO longevity test, you can parametrize the number of files (-nrFiles),
size of files (-fileSize), and number of cycles using system properties
numFiles, sizeFile, and numOfIterations, respectively.
-User must make sure that the user home directory exists prior to running the test.
\ No newline at end of file
+User must make sure that the user home directory exists prior to running the test.
+
+SLive longevity test:
+User must create /test directory in hdfs with the necessary permissions
+Default parameters: blockSize 10240,10240 appendSize 20480,20480 writeSize 20480,20480 readSize 20480,20480 files 100 numOfIterations 0
+System parameter names: blockSize, appendSize, writeSize, readSize, numSliveFiles, numOfIterations