Skip to content

Commit

Permalink
Add failing test for SPARK-4882
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshRosen committed Dec 29, 2014
1 parent 29fabb1 commit 069d8a7
Showing 1 changed file with 58 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* 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.spark.api.python

import scala.io.Source

import java.io.{PrintWriter, File}

import org.scalatest.{Matchers, FunSuite}

import org.apache.spark.SparkConf
import org.apache.spark.serializer.KryoSerializer
import org.apache.spark.util.Utils


class PythonBroadcastSuite extends FunSuite with Matchers {
test("PythonBroadcast can be serialized with Kryo (SPARK-4882)") {
val tempDir = Utils.createTempDir()
val broadcastedString = "Hello, world!"
def assertBroadcastIsValid(broadcast: PythonBroadcast): Unit = {
val source = Source.fromFile(broadcast.path)
val contents = source.mkString
source.close()
contents should be (broadcastedString)
}
try {
val broadcastDataFile: File = {
val file = new File(tempDir, "broadcastData")
val printWriter = new PrintWriter(file)
printWriter.write(broadcastedString)
printWriter.close()
file
}
val broadcast = new PythonBroadcast(broadcastDataFile.getAbsolutePath)
assertBroadcastIsValid(broadcast)
val deserializedBroadcast =
Utils.clone[PythonBroadcast](broadcast, new KryoSerializer(new SparkConf()).newInstance())
assertBroadcastIsValid(deserializedBroadcast)
} finally {
Utils.deleteRecursively(tempDir)
}
}
}

0 comments on commit 069d8a7

Please sign in to comment.