1717
1818package org .apache .spark .util
1919
20- import org .scalatest .BeforeAndAfterAll
21- import org .scalatest .FunSuite
22- import org .scalatest .PrivateMethodTester
20+ import org .scalatest .{BeforeAndAfterEach , BeforeAndAfterAll , FunSuite , PrivateMethodTester }
2321
2422class DummyClass1 {}
2523
@@ -46,20 +44,12 @@ class DummyString(val arr: Array[Char]) {
4644}
4745
4846class SizeEstimatorSuite
49- extends FunSuite with BeforeAndAfterAll with PrivateMethodTester {
47+ extends FunSuite with ResetSystemProperties with BeforeAndAfterEach with PrivateMethodTester {
5048
51- var oldArch : String = _
52- var oldOops : String = _
53-
54- override def beforeAll () {
49+ override def beforeEach () {
5550 // Set the arch to 64-bit and compressedOops to true to get a deterministic test-case
56- oldArch = System .setProperty(" os.arch" , " amd64" )
57- oldOops = System .setProperty(" spark.test.useCompressedOops" , " true" )
58- }
59-
60- override def afterAll () {
61- resetOrClear(" os.arch" , oldArch)
62- resetOrClear(" spark.test.useCompressedOops" , oldOops)
51+ System .setProperty(" os.arch" , " amd64" )
52+ System .setProperty(" spark.test.useCompressedOops" , " true" )
6353 }
6454
6555 test(" simple classes" ) {
@@ -122,7 +112,7 @@ class SizeEstimatorSuite
122112 }
123113
124114 test(" 32-bit arch" ) {
125- val arch = System .setProperty(" os.arch" , " x86" )
115+ System .setProperty(" os.arch" , " x86" )
126116
127117 val initialize = PrivateMethod [Unit ](' initialize )
128118 SizeEstimator invokePrivate initialize()
@@ -131,31 +121,19 @@ class SizeEstimatorSuite
131121 assertResult(48 )(SizeEstimator .estimate(DummyString (" a" )))
132122 assertResult(48 )(SizeEstimator .estimate(DummyString (" ab" )))
133123 assertResult(56 )(SizeEstimator .estimate(DummyString (" abcdefgh" )))
134- resetOrClear(" os.arch" , arch)
135124 }
136125
137126 // NOTE: The String class definition varies across JDK versions (1.6 vs. 1.7) and vendors
138127 // (Sun vs IBM). Use a DummyString class to make tests deterministic.
139128 test(" 64-bit arch with no compressed oops" ) {
140- val arch = System .setProperty(" os.arch" , " amd64" )
141- val oops = System .setProperty(" spark.test.useCompressedOops" , " false" )
129+ System .setProperty(" os.arch" , " amd64" )
130+ System .setProperty(" spark.test.useCompressedOops" , " false" )
142131 val initialize = PrivateMethod [Unit ](' initialize )
143132 SizeEstimator invokePrivate initialize()
144133
145134 assertResult(56 )(SizeEstimator .estimate(DummyString (" " )))
146135 assertResult(64 )(SizeEstimator .estimate(DummyString (" a" )))
147136 assertResult(64 )(SizeEstimator .estimate(DummyString (" ab" )))
148137 assertResult(72 )(SizeEstimator .estimate(DummyString (" abcdefgh" )))
149-
150- resetOrClear(" os.arch" , arch)
151- resetOrClear(" spark.test.useCompressedOops" , oops)
152- }
153-
154- def resetOrClear (prop : String , oldValue : String ) {
155- if (oldValue != null ) {
156- System .setProperty(prop, oldValue)
157- } else {
158- System .clearProperty(prop)
159- }
160138 }
161139}
0 commit comments