In addition to this failing regularly on windows, this failed on my mac pro just now, as follows.
[partest] java.util.concurrent.TimeoutException: Futures timed out after [0] milliseconds
[partest]
[partest] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:132)
[partest] at scala.concurrent.impl.Promise$DefaultPromise.await(Promise.scala:135)
[partest] at scala.concurrent.impl.ExecutionContextImpl.blocking(ExecutionContextImpl.scala:58)
[partest] at scala.concurrent.ConcurrentPackageObject.blocking(ConcurrentPackageObject.scala:85)
[partest] at FutureProjections$$anonfun$testFailedSuccessAwait$1.apply(scala-concurrent-tck.scala:324)
[partest] at FutureProjections$$anonfun$testFailedSuccessAwait$1.apply(scala-concurrent-tck.scala:321)
[partest] at TestBase$class.once(scala-concurrent-tck.scala:23)
[partest] at Test$.once(scala-concurrent-tck.scala:402)
[partest] at FutureProjections$class.testFailedSuccessAwait(scala-concurrent-tck.scala:320)
[partest] at Test$.testFailedSuccessAwait(scala-concurrent-tck.scala:402)
[partest] at FutureProjections$class.$init$(scala-concurrent-tck.scala:336)
[partest] at Test$.<init>(scala-concurrent-tck.scala:403)
[partest] at Test$.<clinit>(scala-concurrent-tck.scala)
[partest] at Test.main(scala-concurrent-tck.scala)
[partest] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[partest] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[partest] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[partest] at java.lang.reflect.Method.invoke(Method.java:597)
[partest] at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:90)
[partest] at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:38)
[partest] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:159)
[partest] at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:90)
[partest] at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:159)
[partest] at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:28)
[partest] at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:45)
[partest] at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:35)
[partest] at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:45)
[partest] at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:70)
[partest] at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:92)
[partest] at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:101)
[partest] at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
[partest] testing: [...]/files/jvm/scala-concurrent-tck.scala [FAILED]
Re: scala-concurrent-tck test failures
Alex
On 2/19/12 9:37 AM, Paul Phillips wrote:
Re: scala-concurrent-tck test failures
I just fixed it. There was a race condition in the following test:
def testFailedSuccessAwait(): Unit = once { done => val f = future { 0 } try { blocking(f.failed, Duration(0, "ms")) // <- race condition because of 0 timeout assert(false) } catch { case nsee: NoSuchElementException => done() } }
Because of the 0 timeout, `blocking` throws a TimeoutException if the future isn't resolved, yet (which can happen sometimes).
I just submitted a pull request (209) which simply uses a greater timeout value (it won't increase the running time of the test, though).
Cheers, Philipp
On Feb 19, 2012, at 2:21 PM, Aleksandar Prokopec wrote:
Re: scala-concurrent-tck test failures