summaryrefslogtreecommitdiff
path: root/test/junit
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@typesafe.com>2015-10-21 09:49:38 +0200
committerLukas Rytz <lukas.rytz@typesafe.com>2015-10-21 09:49:38 +0200
commit462dc9af886391c9c31cb6949b15e69b0cab55ef (patch)
treef2ef218958a0e9c0a0dd5706380bb190378bcb74 /test/junit
parent6df88b024f720a10d3f7451750ab620addf725b9 (diff)
parent3141fdd6628df5c123db0250abc8ccfcf20d7eff (diff)
downloadscala-462dc9af886391c9c31cb6949b15e69b0cab55ef.tar.gz
scala-462dc9af886391c9c31cb6949b15e69b0cab55ef.tar.bz2
scala-462dc9af886391c9c31cb6949b15e69b0cab55ef.zip
Merge pull request #4802 from SethTisue/merge-2.11-to-2.12-oct-16
merge 2.11 to 2.12 Oct 16
Diffstat (limited to 'test/junit')
-rw-r--r--test/junit/scala/collection/mutable/OpenHashMapTest.scala42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/junit/scala/collection/mutable/OpenHashMapTest.scala b/test/junit/scala/collection/mutable/OpenHashMapTest.scala
new file mode 100644
index 0000000000..9b5c20e01a
--- /dev/null
+++ b/test/junit/scala/collection/mutable/OpenHashMapTest.scala
@@ -0,0 +1,42 @@
+package scala.collection.mutable
+
+import org.junit.Test
+import org.junit.Assert._
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+/** Tests for [[OpenHashMap]]. */
+@RunWith(classOf[JUnit4])
+class OpenHashMapTest {
+ /** Test that an [[OpenHashMap]] correctly maintains its internal `deleted` count. */
+ @Test
+ def maintainsDeletedCount {
+ val m = OpenHashMap.empty[Int, Int]
+
+ // Reflect to get the private `deleted` field's value, which should be zero.
+
+ /* TODO Doesn't work, due to SI-9306.
+ import scala.reflect.runtime.{universe => ru}
+
+ val mirror = ru.runtimeMirror(m.getClass.getClassLoader)
+ val mapType = ru.typeOf[OpenHashMap[Int, Int]]
+ val termSym = mapType.decls
+ .filterNot { s => s.isMethod }
+ .filter { s => s.fullName.endsWith("deleted") }
+ .head.asTerm
+
+ val fieldMirror = mirror.reflect(m).reflectField(termSym)
+ */
+ // Use Java reflection instead for now.
+ val field = m.getClass.getDeclaredField("deleted")
+ field.setAccessible(true)
+
+ m.put(0, 0)
+ m.remove(0)
+ assertEquals(1, field.getInt(m))
+
+ m.put(0, 0) // Add an entry with the same key
+ // TODO assertEquals(0, fieldMirror.get.asInstanceOf[Int])
+ assertEquals(0, field.getInt(m))
+ }
+}