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 2015/01/10 02:00:50 UTC
bigtop git commit: BIGTOP-1559. Tests are failing in Apache CI build
Repository: bigtop
Updated Branches:
refs/heads/master 4da87e1d3 -> e839f9ab7
BIGTOP-1559. Tests are failing in Apache CI build
Signed-off-by: Konstantin Boudnik <co...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo
Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/e839f9ab
Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/e839f9ab
Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/e839f9ab
Branch: refs/heads/master
Commit: e839f9ab77f5ad85ee1ff308073fc216b5a34e29
Parents: 4da87e1
Author: Dasha Boudnik <da...@wandisco.com>
Authored: Fri Jan 9 16:16:54 2015 -0800
Committer: Konstantin Boudnik <co...@apache.org>
Committed: Fri Jan 9 17:00:43 2015 -0800
----------------------------------------------------------------------
bigtop-test-framework/pom.xml | 5 +
.../itest/failures/ClusterFailuresTest.groovy | 167 -------------------
.../IntegrationTestClusterFailures.groovy | 167 +++++++++++++++++++
3 files changed, 172 insertions(+), 167 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/bigtop/blob/e839f9ab/bigtop-test-framework/pom.xml
----------------------------------------------------------------------
diff --git a/bigtop-test-framework/pom.xml b/bigtop-test-framework/pom.xml
index 4d13b43..60a6659 100644
--- a/bigtop-test-framework/pom.xml
+++ b/bigtop-test-framework/pom.xml
@@ -64,6 +64,11 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7</version>
+ <configuration>
+ <excludes>
+ <exclude>**/*IntegrationTest*</exclude>
+ </excludes>
+ </configuration>
</plugin>
<plugin>
<groupId>org.codehaus.groovy</groupId>
http://git-wip-us.apache.org/repos/asf/bigtop/blob/e839f9ab/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/ClusterFailuresTest.groovy
----------------------------------------------------------------------
diff --git a/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/ClusterFailuresTest.groovy b/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/ClusterFailuresTest.groovy
deleted file mode 100644
index 1f099be..0000000
--- a/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/ClusterFailuresTest.groovy
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * 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.failures
-
-import org.apache.bigtop.itest.shell.OS
-import org.junit.Before
-import org.junit.Test
-import org.apache.bigtop.itest.shell.Shell
-
-public class ClusterFailuresTest {
- private Shell rootShell = new Shell("/bin/bash", "root")
- private final int SLEEP_TIME = 100
- private final String CRON_SERVICE
- private String testHost;
- private String testRemoteHost;
- private String serviceRestart;
- private String serviceKill;
- private String networkShutdown;
-
- {
- switch (OS.linux_flavor) {
- case ~/(?is).*(redhat|centos|rhel|fedora|enterpriseenterpriseserver).*/:
- CRON_SERVICE = "crond"
- break
- default:
- CRON_SERVICE = "cron"
- }
- }
-
- @Before
- void configureVars() {
- def f = new FailureVars();
- testHost = f.getTestHost();
- testRemoteHost = f.getTestRemoteHost();
- serviceRestart = f.getServiceRestart();
- serviceKill = f.getServiceKill();
- networkShutdown = f.getNetworkShutdown();
- }
-
- @Test
- void testServiceRestart() {
- startCron()
- assert isCronRunning(), "$CRON_SERVICE service isn't running before the test:"
-
- def cronKilled = new ServiceRestartFailure([testHost], "$CRON_SERVICE")
- Thread t = new Thread(cronKilled)
- t.start()
-
- while (isCronRunning()) {
- println "$CRON_SERVICE it still running"
- Thread.sleep(SLEEP_TIME)
- }
-
- try{
- assert !isCronRunning(), "$CRON_SERVICE hasn't been stopped as expected:"
- println "$CRON_SERVICE stopped. Good."
- } finally {
- t.interrupt()
- }
-
- while (!isCronRunning()) {
- println "$CRON_SERVICE it still stopped.."
- Thread.sleep(SLEEP_TIME)
- }
-
- assert isCronRunning(), "$CRON_SERVICE hasn't been restarted after the test:"
- println "$CRON_SERVICE is up. Good"
- }
-
- @Test
- void testServiceKilled() {
- // On Ubuntu services like cron or ssh get restarted automatically if killed,
- // so for now disabling this test for Ubuntu users.
- if (OS.linux_flavor ==~ /(?is).*(ubuntu|debian).*/) {
- println "As you're running on $OS.linux_flavor, testServiceKilled() doesn't run for you."
- return
- }
-
- startCron()
- assert isCronRunning(), "$CRON_SERVICE service isn't running before the test:"
-
- def cronKilled = new ServiceKilledFailure([testHost], "$CRON_SERVICE")
- Thread t = new Thread(cronKilled)
- t.start()
-
- while (isCronRunning()) {
- println "$CRON_SERVICE it still running.."
- Thread.sleep(SLEEP_TIME)
- }
-
- try{
- assert !isCronRunning(), "$CRON_SERVICE hasn't been killed as expected:"
- println "$CRON_SERVICE killed. Good."
- } finally {
- t.interrupt()
- }
-
- while (!isCronRunning()) {
- println "$CRON_SERVICE it still killed..."
- Thread.sleep(SLEEP_TIME)
- }
-
- assert isCronRunning(), "$CRON_SERVICE hasn't been restarted after the test:"
- println "$CRON_SERVICE is up. Good."
- }
-
- @Test
- void testNetworkShutdown() {
- //make sure there are no blocking rules
- rootShell.exec("iptables -D INPUT -s $testRemoteHost -j DROP")
- rootShell.exec("iptables -D OUTPUT -d $testRemoteHost -j DROP")
-
- assert isRemoteHostReachable(), "No ping to $testRemoteHost, which is used for network failures test:"
-
- def networkShutdown = new NetworkShutdownFailure(testHost, [testRemoteHost])
- Thread t = new Thread(networkShutdown)
- t.start()
-
- while (isRemoteHostReachable()) {
- println "$testRemoteHost is still reachable..."
- Thread.sleep(SLEEP_TIME)
- }
-
- try{
- assert !isRemoteHostReachable(), "Connection to $testRemoteHost hasn't been killed as expected:"
- println "$testRemoteHost isn't reachable. Good."
- } finally {
- t.interrupt()
- }
-
- while (!isRemoteHostReachable()) {
- println "$testRemoteHost isn't reachable..."
- Thread.sleep(SLEEP_TIME)
- }
-
- assert isRemoteHostReachable(), "Connection to $testRemoteHost hasn't been restored after the test:"
- println "$testRemoteHost is reachable again. Good."
- }
-
- private boolean isCronRunning() {
- return rootShell.exec("pgrep $CRON_SERVICE").ret == 0 ? true : false
- }
-
- private void startCron() {
- rootShell.exec("service $CRON_SERVICE start")
- }
-
- private boolean isRemoteHostReachable() {
- return rootShell.exec("ping -qc 1 $testRemoteHost").ret == 0 ? true : false
- }
-}
http://git-wip-us.apache.org/repos/asf/bigtop/blob/e839f9ab/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/IntegrationTestClusterFailures.groovy
----------------------------------------------------------------------
diff --git a/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/IntegrationTestClusterFailures.groovy b/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/IntegrationTestClusterFailures.groovy
new file mode 100644
index 0000000..2799f85
--- /dev/null
+++ b/bigtop-test-framework/src/test/groovy/org/apache/bigtop/itest/failures/IntegrationTestClusterFailures.groovy
@@ -0,0 +1,167 @@
+/**
+ * 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.failures
+
+import org.apache.bigtop.itest.shell.OS
+import org.junit.Before
+import org.junit.Test
+import org.apache.bigtop.itest.shell.Shell
+
+public class IntegrationTestClusterFailures {
+ private Shell rootShell = new Shell("/bin/bash", "root")
+ private final int SLEEP_TIME = 100
+ private final String CRON_SERVICE
+ private String testHost;
+ private String testRemoteHost;
+ private String serviceRestart;
+ private String serviceKill;
+ private String networkShutdown;
+
+ {
+ switch (OS.linux_flavor) {
+ case ~/(?is).*(redhat|centos|rhel|fedora|enterpriseenterpriseserver).*/:
+ CRON_SERVICE = "crond"
+ break
+ default:
+ CRON_SERVICE = "cron"
+ }
+ }
+
+ @Before
+ void configureVars() {
+ def f = new FailureVars();
+ testHost = f.getTestHost();
+ testRemoteHost = f.getTestRemoteHost();
+ serviceRestart = f.getServiceRestart();
+ serviceKill = f.getServiceKill();
+ networkShutdown = f.getNetworkShutdown();
+ }
+
+ @Test
+ void testServiceRestart() {
+ startCron()
+ assert isCronRunning(), "$CRON_SERVICE service isn't running before the test:"
+
+ def cronKilled = new ServiceRestartFailure([testHost], "$CRON_SERVICE")
+ Thread t = new Thread(cronKilled)
+ t.start()
+
+ while (isCronRunning()) {
+ println "$CRON_SERVICE it still running"
+ Thread.sleep(SLEEP_TIME)
+ }
+
+ try{
+ assert !isCronRunning(), "$CRON_SERVICE hasn't been stopped as expected:"
+ println "$CRON_SERVICE stopped. Good."
+ } finally {
+ t.interrupt()
+ }
+
+ while (!isCronRunning()) {
+ println "$CRON_SERVICE it still stopped.."
+ Thread.sleep(SLEEP_TIME)
+ }
+
+ assert isCronRunning(), "$CRON_SERVICE hasn't been restarted after the test:"
+ println "$CRON_SERVICE is up. Good"
+ }
+
+ @Test
+ void testServiceKilled() {
+ // On Ubuntu services like cron or ssh get restarted automatically if killed,
+ // so for now disabling this test for Ubuntu users.
+ if (OS.linux_flavor ==~ /(?is).*(ubuntu|debian).*/) {
+ println "As you're running on $OS.linux_flavor, testServiceKilled() doesn't run for you."
+ return
+ }
+
+ startCron()
+ assert isCronRunning(), "$CRON_SERVICE service isn't running before the test:"
+
+ def cronKilled = new ServiceKilledFailure([testHost], "$CRON_SERVICE")
+ Thread t = new Thread(cronKilled)
+ t.start()
+
+ while (isCronRunning()) {
+ println "$CRON_SERVICE it still running.."
+ Thread.sleep(SLEEP_TIME)
+ }
+
+ try{
+ assert !isCronRunning(), "$CRON_SERVICE hasn't been killed as expected:"
+ println "$CRON_SERVICE killed. Good."
+ } finally {
+ t.interrupt()
+ }
+
+ while (!isCronRunning()) {
+ println "$CRON_SERVICE it still killed..."
+ Thread.sleep(SLEEP_TIME)
+ }
+
+ assert isCronRunning(), "$CRON_SERVICE hasn't been restarted after the test:"
+ println "$CRON_SERVICE is up. Good."
+ }
+
+ @Test
+ void testNetworkShutdown() {
+ //make sure there are no blocking rules
+ rootShell.exec("iptables -D INPUT -s $testRemoteHost -j DROP")
+ rootShell.exec("iptables -D OUTPUT -d $testRemoteHost -j DROP")
+
+ assert isRemoteHostReachable(), "No ping to $testRemoteHost, which is used for network failures test:"
+
+ def networkShutdown = new NetworkShutdownFailure(testHost, [testRemoteHost])
+ Thread t = new Thread(networkShutdown)
+ t.start()
+
+ while (isRemoteHostReachable()) {
+ println "$testRemoteHost is still reachable..."
+ Thread.sleep(SLEEP_TIME)
+ }
+
+ try{
+ assert !isRemoteHostReachable(), "Connection to $testRemoteHost hasn't been killed as expected:"
+ println "$testRemoteHost isn't reachable. Good."
+ } finally {
+ t.interrupt()
+ }
+
+ while (!isRemoteHostReachable()) {
+ println "$testRemoteHost isn't reachable..."
+ Thread.sleep(SLEEP_TIME)
+ }
+
+ assert isRemoteHostReachable(), "Connection to $testRemoteHost hasn't been restored after the test:"
+ println "$testRemoteHost is reachable again. Good."
+ }
+
+ private boolean isCronRunning() {
+ return rootShell.exec("pgrep $CRON_SERVICE").ret == 0 ? true : false
+ }
+
+ private void startCron() {
+ rootShell.exec("service $CRON_SERVICE start")
+ }
+
+ private boolean isRemoteHostReachable() {
+ return rootShell.exec("ping -qc 1 $testRemoteHost").ret == 0 ? true : false
+ }
+}