org.scalatest.concurrent.Timeouts Scala Examples
The following examples show how to use org.scalatest.concurrent.Timeouts.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: OutputCommitCoordinatorIntegrationSuite.scala From iolap with Apache License 2.0 | 5 votes |
package org.apache.spark.scheduler import org.apache.hadoop.mapred.{FileOutputCommitter, TaskAttemptContext} import org.scalatest.concurrent.Timeouts import org.scalatest.time.{Span, Seconds} import org.apache.spark.{SparkConf, SparkContext, LocalSparkContext, SparkFunSuite, TaskContext} import org.apache.spark.util.Utils class OutputCommitCoordinatorIntegrationSuite extends SparkFunSuite with LocalSparkContext with Timeouts { override def beforeAll(): Unit = { super.beforeAll() val conf = new SparkConf() .set("master", "local[2,4]") .set("spark.hadoop.outputCommitCoordination.enabled", "true") .set("spark.hadoop.mapred.output.committer.class", classOf[ThrowExceptionOnFirstAttemptOutputCommitter].getCanonicalName) sc = new SparkContext("local[2, 4]", "test", conf) } test("exception thrown in OutputCommitter.commitTask()") { // Regression test for SPARK-10381 failAfter(Span(60, Seconds)) { val tempDir = Utils.createTempDir() try { sc.parallelize(1 to 4, 2).map(_.toString).saveAsTextFile(tempDir.getAbsolutePath + "/out") } finally { Utils.deleteRecursively(tempDir) } } } } private class ThrowExceptionOnFirstAttemptOutputCommitter extends FileOutputCommitter { override def commitTask(context: TaskAttemptContext): Unit = { val ctx = TaskContext.get() if (ctx.attemptNumber < 1) { throw new java.io.FileNotFoundException("Intentional exception") } super.commitTask(context) } }
Example 2
Source File: NetworkTest.scala From jvm-toxcore-c with GNU General Public License v3.0 | 5 votes |
package im.tox.tox4j.core import im.tox.core.network.Port import im.tox.tox4j.DhtNodeSelector.node import im.tox.tox4j.TestConstants.Timeout import im.tox.tox4j._ import im.tox.tox4j.core.NetworkTest.logger import im.tox.tox4j.core.data.ToxPublicKey import im.tox.tox4j.impl.jni.ToxCoreImplFactory.{ withToxUnit, withToxes } import org.scalatest.FlatSpec import org.scalatest.concurrent.Timeouts import org.slf4j.LoggerFactory import scala.language.postfixOps object NetworkTest { private val logger = LoggerFactory.getLogger(classOf[NetworkTest]) private val ToxCount = 10 } @SuppressWarnings(Array("org.wartremover.warts.While")) final class NetworkTest extends FlatSpec with Timeouts { // TODO(iphydf): Figure out why the bootstrap tests all fail on Travis. "LAN discovery" should "connect all nodes" in { failAfter(Timeout) { withToxes(NetworkTest.ToxCount) { toxes => val action = s"Connecting all of ${toxes.size} toxes with LAN discovery" logger.info(action) val start = System.currentTimeMillis while (!toxes.isAllConnected) { toxes.iterate() Thread.sleep(toxes.iterationInterval) } val end = System.currentTimeMillis logger.info(s"$action took ${end - start} ms") } } } it should "connect at least one instance" in { failAfter(Timeout) { withToxes(NetworkTest.ToxCount) { toxes => val action = s"Connecting one of ${toxes.size} toxes with LAN discovery" logger.info(action) val start = System.currentTimeMillis while (!toxes.isAnyConnected) { toxes.iterate() try { Thread.sleep(toxes.iterationInterval) } catch { case e: InterruptedException => } } val end = System.currentTimeMillis logger.info(s"$action took ${end - start} ms") } } } }
Example 3
Source File: AutoTestSuite.scala From jvm-toxcore-c with GNU General Public License v3.0 | 5 votes |
package im.tox.tox4j.testing.autotest import com.typesafe.scalalogging.Logger import im.tox.tox4j.TestConstants import im.tox.tox4j.core.data.ToxFriendNumber import im.tox.tox4j.core.enums.ToxConnection import im.tox.tox4j.core.options.ToxOptions import im.tox.tox4j.impl.jni.{ ToxAvImplFactory, ToxCoreImplFactory } import im.tox.tox4j.testing.autotest.AutoTest.ClientState import org.scalatest.FunSuite import org.scalatest.concurrent.Timeouts import org.slf4j.LoggerFactory import shapeless.<:!< import scala.util.Random object AutoTestSuite { sealed abstract class Timed[A, R] { protected def wrap(time: Int, result: A): R def timed(block: => A): R = { val start = System.currentTimeMillis() val result = block val end = System.currentTimeMillis() wrap((end - start).toInt, result) } } implicit def otherTimed[A](implicit notUnit: A <:!< Unit): Timed[A, (Int, A)] = new Timed[A, (Int, A)] { protected def wrap(time: Int, result: A): (Int, A) = (time, result) } implicit val unitTimed: Timed[Unit, Int] = new Timed[Unit, Int] { protected def wrap(time: Int, result: Unit): Int = time } def timed[A, R](block: => A)(implicit timed: Timed[A, R]): R = timed.timed(block) } abstract class AutoTestSuite extends FunSuite with Timeouts { private val logger = Logger(LoggerFactory.getLogger(getClass)) protected def maxParticipantCount: Int = 2 type S abstract class EventListener(val initial: S) extends AutoTest.EventListener[S] { override def selfConnectionStatus( connectionStatus: ToxConnection )(state: State): State = { debug(state, s"Our connection: $connectionStatus") state } override def friendConnectionStatus( friendNumber: ToxFriendNumber, connectionStatus: ToxConnection )(state: State): State = { debug(state, s"Friend ${state.id(friendNumber)}'s connection: $connectionStatus") state } } def Handler: EventListener // scalastyle:ignore method.name protected def debug(state: ClientState[S], message: String): Unit = { logger.debug(s"[${state.id}] $message") } @SuppressWarnings(Array("org.wartremover.warts.Equals")) def run(ipv6Enabled: Boolean = true, udpEnabled: Boolean = true): Unit = { failAfter(TestConstants.Timeout) { val participantCount = if (maxParticipantCount == 2) { maxParticipantCount } else { new Random().nextInt(maxParticipantCount - 2) + 2 } AutoTest(ToxCoreImplFactory, ToxAvImplFactory).run(participantCount, ToxOptions(ipv6Enabled, udpEnabled), Handler) } } test("UDP")(run(ipv6Enabled = true, udpEnabled = true)) }
Example 4
Source File: DriverSuite.scala From BigDatalog with Apache License 2.0 | 5 votes |
package org.apache.spark import java.io.File import org.scalatest.concurrent.Timeouts import org.scalatest.prop.TableDrivenPropertyChecks._ import org.scalatest.time.SpanSugar._ import org.apache.spark.util.Utils class DriverSuite extends SparkFunSuite with Timeouts { ignore("driver should exit after finishing without cleanup (SPARK-530)") { val sparkHome = sys.props.getOrElse("spark.test.home", fail("spark.test.home is not set!")) val masters = Table("master", "local", "local-cluster[2,1,1024]") forAll(masters) { (master: String) => val process = Utils.executeCommand( Seq(s"$sparkHome/bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master), new File(sparkHome), Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome)) failAfter(60 seconds) { process.waitFor() } // Ensure we still kill the process in case it timed out process.destroy() } } } object DriverWithoutCleanup { def main(args: Array[String]) { Utils.configTestLog4j("INFO") val conf = new SparkConf val sc = new SparkContext(args(0), "DriverWithoutCleanup", conf) sc.parallelize(1 to 100, 4).count() } }
Example 5
Source File: OutputCommitCoordinatorIntegrationSuite.scala From BigDatalog with Apache License 2.0 | 5 votes |
package org.apache.spark.scheduler import org.apache.hadoop.mapred.{FileOutputCommitter, TaskAttemptContext} import org.scalatest.concurrent.Timeouts import org.scalatest.time.{Span, Seconds} import org.apache.spark.{SparkConf, SparkContext, LocalSparkContext, SparkFunSuite, TaskContext} import org.apache.spark.util.Utils class OutputCommitCoordinatorIntegrationSuite extends SparkFunSuite with LocalSparkContext with Timeouts { override def beforeAll(): Unit = { super.beforeAll() val conf = new SparkConf() .set("master", "local[2,4]") .set("spark.speculation", "true") .set("spark.hadoop.mapred.output.committer.class", classOf[ThrowExceptionOnFirstAttemptOutputCommitter].getCanonicalName) sc = new SparkContext("local[2, 4]", "test", conf) } test("exception thrown in OutputCommitter.commitTask()") { // Regression test for SPARK-10381 failAfter(Span(60, Seconds)) { val tempDir = Utils.createTempDir() try { sc.parallelize(1 to 4, 2).map(_.toString).saveAsTextFile(tempDir.getAbsolutePath + "/out") } finally { Utils.deleteRecursively(tempDir) } } } } private class ThrowExceptionOnFirstAttemptOutputCommitter extends FileOutputCommitter { override def commitTask(context: TaskAttemptContext): Unit = { val ctx = TaskContext.get() if (ctx.attemptNumber < 1) { throw new java.io.FileNotFoundException("Intentional exception") } super.commitTask(context) } }
Example 6
Source File: DriverSuite.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark import java.io.File import org.scalatest.concurrent.Timeouts import org.scalatest.prop.TableDrivenPropertyChecks._ import org.scalatest.time.SpanSugar._ import org.apache.spark.util.Utils class DriverSuite extends SparkFunSuite with Timeouts { //driver退出后无需清理 test("driver should exit after finishing without cleanup (SPARK-530)") { //System.getenv()和System.getProperties()的区别 //System.getenv() 返回系统环境变量值 设置系统环境变量:当前登录用户主目录下的".bashrc"文件中可以设置系统环境变量 //System.getProperties() 返回Java进程变量值 通过命令行参数的"-D"选项 //getOrElse("spark.test.home", fail("spark.test.home is not set!")) val sparkHome = sys.props.getOrElse("spark.test.home", "/software/spark152") // val masters = Table("master", "local", "local-cluster[2,1,1024]") val masters = Table("master", "local", "local[*]") forAll(masters) { (master: String) => val process = Utils.executeCommand( Seq(s"$sparkHome/bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master), new File(sparkHome), Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome)) failAfter(60 seconds) { process.waitFor() } // Ensure we still kill the process in case it timed out //它超时,确保我们仍然杀死过程 //杀死子进程,Process对象表示的子进程被强行终止 process.destroy() } } } object DriverWithoutCleanup { def main(args: Array[String]) { Utils.configTestLog4j("INFO") val conf = new SparkConf //val sc = new SparkContext(args(0), "DriverWithoutCleanup", conf) val sc = new SparkContext("local", "DriverWithoutCleanup", conf) sc.parallelize(1 to 100, 4).count() } }
Example 7
Source File: OutputCommitCoordinatorIntegrationSuite.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark.scheduler import org.apache.hadoop.mapred.{FileOutputCommitter, TaskAttemptContext} import org.scalatest.concurrent.Timeouts import org.scalatest.time.{Span, Seconds} import org.apache.spark.{SparkConf, SparkContext, LocalSparkContext, SparkFunSuite, TaskContext} import org.apache.spark.util.Utils class OutputCommitCoordinatorIntegrationSuite extends SparkFunSuite with LocalSparkContext with Timeouts { override def beforeAll(): Unit = { super.beforeAll() val conf = new SparkConf() .set("master", "local[2,4]") .set("spark.speculation", "true") .set("spark.hadoop.mapred.output.committer.class", classOf[ThrowExceptionOnFirstAttemptOutputCommitter].getCanonicalName) sc = new SparkContext("local[2, 4]", "test", conf) } test("exception thrown in OutputCommitter.commitTask()") {//异常抛出 // Regression test for SPARK-10381 failAfter(Span(60, Seconds)) { val tempDir = Utils.createTempDir() try { sc.parallelize(1 to 4, 2).map(_.toString).saveAsTextFile(tempDir.getAbsolutePath + "/out") } finally { Utils.deleteRecursively(tempDir) } } } } private class ThrowExceptionOnFirstAttemptOutputCommitter extends FileOutputCommitter { override def commitTask(context: TaskAttemptContext): Unit = { val ctx = TaskContext.get() if (ctx.attemptNumber < 1) { throw new java.io.FileNotFoundException("Intentional exception") } super.commitTask(context) } }
Example 8
Source File: BagelSuite.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark.bagel import org.scalatest.{BeforeAndAfter, Assertions} import org.scalatest.concurrent.Timeouts import org.scalatest.time.SpanSugar._ import org.apache.spark._ import org.apache.spark.storage.StorageLevel class TestVertex(val active: Boolean, val age: Int) extends Vertex with Serializable class TestMessage(val targetId: String) extends Message[String] with Serializable class BagelSuite extends SparkFunSuite with Assertions with BeforeAndAfter with Timeouts { var sc: SparkContext = _ after { if (sc != null) { sc.stop() sc = null } } test("halting by voting") { sc = new SparkContext("local", "test") val verts = sc.parallelize(Array("a", "b", "c", "d").map(id => (id, new TestVertex(true, 0)))) val msgs = sc.parallelize(Array[(String, TestMessage)]()) val numSupersteps = 5 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => (new TestVertex(superstep < numSupersteps - 1, self.age + 1), Array[TestMessage]()) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } test("halting by message silence") { sc = new SparkContext("local", "test") val verts = sc.parallelize(Array("a", "b", "c", "d").map(id => (id, new TestVertex(false, 0)))) val msgs = sc.parallelize(Array("a" -> new TestMessage("a"))) val numSupersteps = 5 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => val msgsOut = msgs match { case Some(ms) if (superstep < numSupersteps - 1) => ms case _ => Array[TestMessage]() } (new TestVertex(self.active, self.age + 1), msgsOut) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } test("large number of iterations") { // This tests whether jobs with a large number of iterations finish in a reasonable time, // because non-memoized recursion in RDD or DAGScheduler used to cause them to hang failAfter(30 seconds) { sc = new SparkContext("local", "test") val verts = sc.parallelize((1 to 4).map(id => (id.toString, new TestVertex(true, 0)))) val msgs = sc.parallelize(Array[(String, TestMessage)]()) val numSupersteps = 50 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => (new TestVertex(superstep < numSupersteps - 1, self.age + 1), Array[TestMessage]()) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } } test("using non-default persistence level") { failAfter(10 seconds) { sc = new SparkContext("local", "test") val verts = sc.parallelize((1 to 4).map(id => (id.toString, new TestVertex(true, 0)))) val msgs = sc.parallelize(Array[(String, TestMessage)]()) val numSupersteps = 20 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism, StorageLevel.DISK_ONLY) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => (new TestVertex(superstep < numSupersteps - 1, self.age + 1), Array[TestMessage]()) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } } }
Example 9
Source File: DriverSuite.scala From iolap with Apache License 2.0 | 5 votes |
package org.apache.spark import java.io.File import org.scalatest.concurrent.Timeouts import org.scalatest.prop.TableDrivenPropertyChecks._ import org.scalatest.time.SpanSugar._ import org.apache.spark.util.Utils class DriverSuite extends SparkFunSuite with Timeouts { ignore("driver should exit after finishing without cleanup (SPARK-530)") { val sparkHome = sys.props.getOrElse("spark.test.home", fail("spark.test.home is not set!")) val masters = Table("master", "local", "local-cluster[2,1,512]") forAll(masters) { (master: String) => val process = Utils.executeCommand( Seq(s"$sparkHome/bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master), new File(sparkHome), Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome)) failAfter(60 seconds) { process.waitFor() } // Ensure we still kill the process in case it timed out process.destroy() } } } object DriverWithoutCleanup { def main(args: Array[String]) { Utils.configTestLog4j("INFO") val conf = new SparkConf val sc = new SparkContext(args(0), "DriverWithoutCleanup", conf) sc.parallelize(1 to 100, 4).count() } }
Example 10
Source File: OutputCommitCoordinatorIntegrationSuite.scala From drizzle-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.scheduler import org.apache.hadoop.mapred.{FileOutputCommitter, TaskAttemptContext} import org.scalatest.concurrent.Timeouts import org.scalatest.time.{Seconds, Span} import org.apache.spark.{LocalSparkContext, SparkConf, SparkContext, SparkFunSuite, TaskContext} import org.apache.spark.util.Utils class OutputCommitCoordinatorIntegrationSuite extends SparkFunSuite with LocalSparkContext with Timeouts { override def beforeAll(): Unit = { super.beforeAll() val conf = new SparkConf() .set("spark.hadoop.outputCommitCoordination.enabled", "true") .set("spark.hadoop.mapred.output.committer.class", classOf[ThrowExceptionOnFirstAttemptOutputCommitter].getCanonicalName) sc = new SparkContext("local[2, 4]", "test", conf) } test("exception thrown in OutputCommitter.commitTask()") { // Regression test for SPARK-10381 failAfter(Span(60, Seconds)) { val tempDir = Utils.createTempDir() try { sc.parallelize(1 to 4, 2).map(_.toString).saveAsTextFile(tempDir.getAbsolutePath + "/out") } finally { Utils.deleteRecursively(tempDir) } } } } private class ThrowExceptionOnFirstAttemptOutputCommitter extends FileOutputCommitter { override def commitTask(context: TaskAttemptContext): Unit = { val ctx = TaskContext.get() if (ctx.attemptNumber < 1) { throw new java.io.FileNotFoundException("Intentional exception") } super.commitTask(context) } }
Example 11
Source File: BagelSuite.scala From iolap with Apache License 2.0 | 5 votes |
package org.apache.spark.bagel import org.scalatest.{BeforeAndAfter, Assertions} import org.scalatest.concurrent.Timeouts import org.scalatest.time.SpanSugar._ import org.apache.spark._ import org.apache.spark.storage.StorageLevel class TestVertex(val active: Boolean, val age: Int) extends Vertex with Serializable class TestMessage(val targetId: String) extends Message[String] with Serializable class BagelSuite extends SparkFunSuite with Assertions with BeforeAndAfter with Timeouts { var sc: SparkContext = _ after { if (sc != null) { sc.stop() sc = null } } test("halting by voting") { sc = new SparkContext("local", "test") val verts = sc.parallelize(Array("a", "b", "c", "d").map(id => (id, new TestVertex(true, 0)))) val msgs = sc.parallelize(Array[(String, TestMessage)]()) val numSupersteps = 5 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => (new TestVertex(superstep < numSupersteps - 1, self.age + 1), Array[TestMessage]()) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } test("halting by message silence") { sc = new SparkContext("local", "test") val verts = sc.parallelize(Array("a", "b", "c", "d").map(id => (id, new TestVertex(false, 0)))) val msgs = sc.parallelize(Array("a" -> new TestMessage("a"))) val numSupersteps = 5 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => val msgsOut = msgs match { case Some(ms) if (superstep < numSupersteps - 1) => ms case _ => Array[TestMessage]() } (new TestVertex(self.active, self.age + 1), msgsOut) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } test("large number of iterations") { // This tests whether jobs with a large number of iterations finish in a reasonable time, // because non-memoized recursion in RDD or DAGScheduler used to cause them to hang failAfter(30 seconds) { sc = new SparkContext("local", "test") val verts = sc.parallelize((1 to 4).map(id => (id.toString, new TestVertex(true, 0)))) val msgs = sc.parallelize(Array[(String, TestMessage)]()) val numSupersteps = 50 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => (new TestVertex(superstep < numSupersteps - 1, self.age + 1), Array[TestMessage]()) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } } test("using non-default persistence level") { failAfter(10 seconds) { sc = new SparkContext("local", "test") val verts = sc.parallelize((1 to 4).map(id => (id.toString, new TestVertex(true, 0)))) val msgs = sc.parallelize(Array[(String, TestMessage)]()) val numSupersteps = 20 val result = Bagel.run(sc, verts, msgs, sc.defaultParallelism, StorageLevel.DISK_ONLY) { (self: TestVertex, msgs: Option[Array[TestMessage]], superstep: Int) => (new TestVertex(superstep < numSupersteps - 1, self.age + 1), Array[TestMessage]()) } for ((id, vert) <- result.collect) { assert(vert.age === numSupersteps) } } } }
Example 12
Source File: DriverSuite.scala From multi-tenancy-spark with Apache License 2.0 | 5 votes |
package org.apache.spark import java.io.File import org.scalatest.concurrent.Timeouts import org.scalatest.prop.TableDrivenPropertyChecks._ import org.scalatest.time.SpanSugar._ import org.apache.spark.util.Utils class DriverSuite extends SparkFunSuite with Timeouts { ignore("driver should exit after finishing without cleanup (SPARK-530)") { val sparkHome = sys.props.getOrElse("spark.test.home", fail("spark.test.home is not set!")) val masters = Table("master", "local", "local-cluster[2,1,1024]") forAll(masters) { (master: String) => val process = Utils.executeCommand( Seq(s"$sparkHome/bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master), new File(sparkHome), Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome)) failAfter(60 seconds) { process.waitFor() } // Ensure we still kill the process in case it timed out process.destroy() } } } object DriverWithoutCleanup { def main(args: Array[String]) { Utils.configTestLog4j("INFO") val conf = new SparkConf val sc = new SparkContext(args(0), "DriverWithoutCleanup", conf) sc.parallelize(1 to 100, 4).count() } }
Example 13
Source File: OutputCommitCoordinatorIntegrationSuite.scala From multi-tenancy-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.scheduler import org.apache.hadoop.mapred.{FileOutputCommitter, TaskAttemptContext} import org.scalatest.concurrent.Timeouts import org.scalatest.time.{Seconds, Span} import org.apache.spark.{LocalSparkContext, SparkConf, SparkContext, SparkFunSuite, TaskContext} import org.apache.spark.util.Utils class OutputCommitCoordinatorIntegrationSuite extends SparkFunSuite with LocalSparkContext with Timeouts { override def beforeAll(): Unit = { super.beforeAll() val conf = new SparkConf() .set("spark.hadoop.outputCommitCoordination.enabled", "true") .set("spark.hadoop.mapred.output.committer.class", classOf[ThrowExceptionOnFirstAttemptOutputCommitter].getCanonicalName) sc = new SparkContext("local[2, 4]", "test", conf) } test("exception thrown in OutputCommitter.commitTask()") { // Regression test for SPARK-10381 failAfter(Span(60, Seconds)) { val tempDir = Utils.createTempDir() try { sc.parallelize(1 to 4, 2).map(_.toString).saveAsTextFile(tempDir.getAbsolutePath + "/out") } finally { Utils.deleteRecursively(tempDir) } } } } private class ThrowExceptionOnFirstAttemptOutputCommitter extends FileOutputCommitter { override def commitTask(context: TaskAttemptContext): Unit = { val ctx = TaskContext.get() if (ctx.attemptNumber < 1) { throw new java.io.FileNotFoundException("Intentional exception") } super.commitTask(context) } }
Example 14
Source File: DriverSuite.scala From SparkCore with Apache License 2.0 | 5 votes |
package org.apache.spark import java.io.File import org.scalatest.FunSuite import org.scalatest.concurrent.Timeouts import org.scalatest.prop.TableDrivenPropertyChecks._ import org.scalatest.time.SpanSugar._ import org.apache.spark.util.Utils class DriverSuite extends FunSuite with Timeouts { test("driver should exit after finishing without cleanup (SPARK-530)") { val sparkHome = sys.props.getOrElse("spark.test.home", fail("spark.test.home is not set!")) val masters = Table("master", "local", "local-cluster[2,1,512]") forAll(masters) { (master: String) => val process = Utils.executeCommand( Seq(s"$sparkHome/bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master), new File(sparkHome), Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome)) failAfter(60 seconds) { process.waitFor() } // Ensure we still kill the process in case it timed out process.destroy() } } } object DriverWithoutCleanup { def main(args: Array[String]) { Utils.configTestLog4j("INFO") val conf = new SparkConf val sc = new SparkContext(args(0), "DriverWithoutCleanup", conf) sc.parallelize(1 to 100, 4).count() } }
Example 15
Source File: DriverSuite.scala From sparkoscope with Apache License 2.0 | 5 votes |
package org.apache.spark import java.io.File import org.scalatest.concurrent.Timeouts import org.scalatest.prop.TableDrivenPropertyChecks._ import org.scalatest.time.SpanSugar._ import org.apache.spark.util.Utils class DriverSuite extends SparkFunSuite with Timeouts { ignore("driver should exit after finishing without cleanup (SPARK-530)") { val sparkHome = sys.props.getOrElse("spark.test.home", fail("spark.test.home is not set!")) val masters = Table("master", "local", "local-cluster[2,1,1024]") forAll(masters) { (master: String) => val process = Utils.executeCommand( Seq(s"$sparkHome/bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master), new File(sparkHome), Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome)) failAfter(60 seconds) { process.waitFor() } // Ensure we still kill the process in case it timed out process.destroy() } } } object DriverWithoutCleanup { def main(args: Array[String]) { Utils.configTestLog4j("INFO") val conf = new SparkConf val sc = new SparkContext(args(0), "DriverWithoutCleanup", conf) sc.parallelize(1 to 100, 4).count() } }
Example 16
Source File: OutputCommitCoordinatorIntegrationSuite.scala From sparkoscope with Apache License 2.0 | 5 votes |
package org.apache.spark.scheduler import org.apache.hadoop.mapred.{FileOutputCommitter, TaskAttemptContext} import org.scalatest.concurrent.Timeouts import org.scalatest.time.{Seconds, Span} import org.apache.spark.{LocalSparkContext, SparkConf, SparkContext, SparkFunSuite, TaskContext} import org.apache.spark.util.Utils class OutputCommitCoordinatorIntegrationSuite extends SparkFunSuite with LocalSparkContext with Timeouts { override def beforeAll(): Unit = { super.beforeAll() val conf = new SparkConf() .set("spark.hadoop.outputCommitCoordination.enabled", "true") .set("spark.hadoop.mapred.output.committer.class", classOf[ThrowExceptionOnFirstAttemptOutputCommitter].getCanonicalName) sc = new SparkContext("local[2, 4]", "test", conf) } test("exception thrown in OutputCommitter.commitTask()") { // Regression test for SPARK-10381 failAfter(Span(60, Seconds)) { val tempDir = Utils.createTempDir() try { sc.parallelize(1 to 4, 2).map(_.toString).saveAsTextFile(tempDir.getAbsolutePath + "/out") } finally { Utils.deleteRecursively(tempDir) } } } } private class ThrowExceptionOnFirstAttemptOutputCommitter extends FileOutputCommitter { override def commitTask(context: TaskAttemptContext): Unit = { val ctx = TaskContext.get() if (ctx.attemptNumber < 1) { throw new java.io.FileNotFoundException("Intentional exception") } super.commitTask(context) } }
Example 17
Source File: TimeSeriesRDDCacheSpec.scala From flint with Apache License 2.0 | 5 votes |
package com.twosigma.flint.timeseries import com.twosigma.flint.timeseries.row.Schema import org.apache.spark.sql.Row import org.apache.spark.sql.types.{ DoubleType, IntegerType } import org.scalatest.concurrent.Timeouts import org.scalatest.tagobjects.Slow import org.scalatest.time.{ Second, Span } class TimeSeriesRDDCacheSpec extends TimeSeriesSuite with Timeouts { "TimeSeriesRDD" should "correctly cache data" taggedAs Slow in { withResource("/timeseries/csv/Price.csv") { source => val priceSchema = Schema("id" -> IntegerType, "price" -> DoubleType) val timeSeriesRdd = CSV.from(sqlContext, "file://" + source, sorted = true, schema = priceSchema) val slowTimeSeriesRdd = timeSeriesRdd.addColumns("new_column" -> DoubleType -> { row: Row => Thread.sleep(500L) row.getAs[Double]("price") + 1.0 }) // run a dummy addColumns() to initialize TSRDD's internal state slowTimeSeriesRdd.addColumns("foo_column" -> DoubleType -> { _ => 1.0 }) slowTimeSeriesRdd.cache() assert(slowTimeSeriesRdd.count() == 12) // this test succeeds only if all representations are correctly cached failAfter(Span(1, Second)) { assert(slowTimeSeriesRdd.toDF.collect().length == 12) assert(slowTimeSeriesRdd.orderedRdd.count() == 12) assert(slowTimeSeriesRdd.asInstanceOf[TimeSeriesRDDImpl].unsafeOrderedRdd.count == 12) } } } }
Example 18
Source File: DriverSuite.scala From drizzle-spark with Apache License 2.0 | 5 votes |
package org.apache.spark import java.io.File import org.scalatest.concurrent.Timeouts import org.scalatest.prop.TableDrivenPropertyChecks._ import org.scalatest.time.SpanSugar._ import org.apache.spark.util.Utils class DriverSuite extends SparkFunSuite with Timeouts { ignore("driver should exit after finishing without cleanup (SPARK-530)") { val sparkHome = sys.props.getOrElse("spark.test.home", fail("spark.test.home is not set!")) val masters = Table("master", "local", "local-cluster[2,1,1024]") forAll(masters) { (master: String) => val process = Utils.executeCommand( Seq(s"$sparkHome/bin/spark-class", "org.apache.spark.DriverWithoutCleanup", master), new File(sparkHome), Map("SPARK_TESTING" -> "1", "SPARK_HOME" -> sparkHome)) failAfter(60 seconds) { process.waitFor() } // Ensure we still kill the process in case it timed out process.destroy() } } } object DriverWithoutCleanup { def main(args: Array[String]) { Utils.configTestLog4j("INFO") val conf = new SparkConf val sc = new SparkContext(args(0), "DriverWithoutCleanup", conf) sc.parallelize(1 to 100, 4).count() } }