diff options
author | Lukas Rytz <lukas.rytz@typesafe.com> | 2015-10-21 09:49:38 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@typesafe.com> | 2015-10-21 09:49:38 +0200 |
commit | 462dc9af886391c9c31cb6949b15e69b0cab55ef (patch) | |
tree | f2ef218958a0e9c0a0dd5706380bb190378bcb74 /test | |
parent | 6df88b024f720a10d3f7451750ab620addf725b9 (diff) | |
parent | 3141fdd6628df5c123db0250abc8ccfcf20d7eff (diff) | |
download | scala-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')
-rw-r--r-- | test/files/run/repl-paste-5.check | 28 | ||||
-rw-r--r-- | test/files/run/repl-paste-5.scala | 18 | ||||
-rw-r--r-- | test/junit/scala/collection/mutable/OpenHashMapTest.scala | 42 |
3 files changed, 88 insertions, 0 deletions
diff --git a/test/files/run/repl-paste-5.check b/test/files/run/repl-paste-5.check new file mode 100644 index 0000000000..8b97b8888d --- /dev/null +++ b/test/files/run/repl-paste-5.check @@ -0,0 +1,28 @@ + +scala> :paste < EOF +// Entering paste mode (EOF to finish) + +class C { def c = 42 } +EOF + +// Exiting paste mode, now interpreting. + +defined class C + +scala> new C().c +res0: Int = 42 + +scala> :paste <| EOF +// Entering paste mode (EOF to finish) + + |class D { def d = 42 } +EOF + +// Exiting paste mode, now interpreting. + +defined class D + +scala> new D().d +res1: Int = 42 + +scala> :quit diff --git a/test/files/run/repl-paste-5.scala b/test/files/run/repl-paste-5.scala new file mode 100644 index 0000000000..890f47f141 --- /dev/null +++ b/test/files/run/repl-paste-5.scala @@ -0,0 +1,18 @@ + +import scala.tools.partest.ReplTest + +object Test extends ReplTest { + //def code = ":paste < EOF\n" + ( + def code = + """ +:paste < EOF +class C { def c = 42 } +EOF +new C().c +:paste <| EOF + |class D { def d = 42 } +EOF +new D().d + """ + //) +} 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)) + } +} |