@@ -32,6 +32,36 @@ class KryoSerializerSuite extends FunSuite with SharedSparkContext {
3232  conf.set(" spark.serializer" " org.apache.spark.serializer.KryoSerializer" 
3333  conf.set(" spark.kryo.registrator" classOf [MyRegistrator ].getName)
3434
35+   test(" configuration limits" 
36+     val  conf1  =  conf.clone()
37+     val  kryoBufferProperty  =  " spark.kryoserializer.buffer" 
38+     val  kryoBufferMaxProperty  =  " spark.kryoserializer.buffer.max" 
39+     conf1.set(kryoBufferProperty, " 64k" 
40+     conf1.set(kryoBufferMaxProperty, " 64m" 
41+     new  KryoSerializer (conf1).newInstance()
42+     //  2048m = 2097152k
43+     conf1.set(kryoBufferProperty, " 2097151k" 
44+     conf1.set(kryoBufferMaxProperty, " 64m" 
45+     //  should not throw exception when kryoBufferMaxProperty < kryoBufferProperty
46+     new  KryoSerializer (conf1).newInstance()
47+     conf1.set(kryoBufferMaxProperty, " 2097151k" 
48+     new  KryoSerializer (conf1).newInstance()
49+     val  conf2  =  conf.clone()
50+     conf2.set(kryoBufferProperty, " 2048m" 
51+     val  thrown1  =  intercept[IllegalArgumentException ](new  KryoSerializer (conf2).newInstance())
52+     assert(thrown1.getMessage.contains(kryoBufferProperty))
53+     val  conf3  =  conf.clone()
54+     conf3.set(kryoBufferMaxProperty, " 2048m" 
55+     val  thrown2  =  intercept[IllegalArgumentException ](new  KryoSerializer (conf3).newInstance())
56+     assert(thrown2.getMessage.contains(kryoBufferMaxProperty))
57+     val  conf4  =  conf.clone()
58+     conf4.set(kryoBufferProperty, " 2g" 
59+     conf4.set(kryoBufferMaxProperty, " 3g" 
60+     val  thrown3  =  intercept[IllegalArgumentException ](new  KryoSerializer (conf4).newInstance())
61+     assert(thrown3.getMessage.contains(kryoBufferProperty))
62+     assert(! thrown3.getMessage.contains(kryoBufferMaxProperty))
63+   }
64+   
3565  test(" basic types" 
3666    val  ser  =  new  KryoSerializer (conf).newInstance()
3767    def  check [T :  ClassTag ](t : T ) {
0 commit comments