diff options
author | Som Snytt <som.snytt@gmail.com> | 2013-08-01 02:09:09 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2013-08-01 02:09:09 -0700 |
commit | 8f5a892512ba848a52a4ddd5d79e9c79d12ccfc1 (patch) | |
tree | 60fcf213b77b7a8b7887b3f3ff09fd276f09cd3b | |
parent | 46616ea2e94fa6ac7100b1cde66295f68338e18e (diff) | |
download | scala-8f5a892512ba848a52a4ddd5d79e9c79d12ccfc1.tar.gz scala-8f5a892512ba848a52a4ddd5d79e9c79d12ccfc1.tar.bz2 scala-8f5a892512ba848a52a4ddd5d79e9c79d12ccfc1.zip |
SI-7265 javaSpecVersion, adjust isJava... tests
Make this and related properties public, because they
are useful.
This change ought to have been committed at 2.11 and then
backported with restrictions, rather than vice-versa.
Note that they are defined in the order, version, vendor
and name, which is the order from the underlying javadoc.
It would be a neat feature of the PR validator, as previously
imagined, to run a "pending" test and then, on success and
merge, to move it automatically to the canonical suite.
-rw-r--r-- | src/library/scala/util/Properties.scala | 7 | ||||
-rw-r--r-- | test/files/run/t7265.scala | 27 | ||||
-rw-r--r-- | test/junit/scala/util/t7265.scala (renamed from test/pending/junit/scala/util/t7265.scala) | 13 |
3 files changed, 16 insertions, 31 deletions
diff --git a/src/library/scala/util/Properties.scala b/src/library/scala/util/Properties.scala index 02c461f3c6..8b63a73638 100644 --- a/src/library/scala/util/Properties.scala +++ b/src/library/scala/util/Properties.scala @@ -131,10 +131,9 @@ private[scala] trait PropertiesTrait { def javaVmName = propOrEmpty("java.vm.name") def javaVmVendor = propOrEmpty("java.vm.vendor") def javaVmVersion = propOrEmpty("java.vm.version") - // this property must remain less-well-known until 2.11 - private def javaSpecVersion = propOrEmpty("java.specification.version") - //private def javaSpecVendor = propOrEmpty("java.specification.vendor") - //private def javaSpecName = propOrEmpty("java.specification.name") + def javaSpecVersion = propOrEmpty("java.specification.version") + def javaSpecVendor = propOrEmpty("java.specification.vendor") + def javaSpecName = propOrEmpty("java.specification.name") def osName = propOrEmpty("os.name") def scalaHome = propOrEmpty("scala.home") def tmpDir = propOrEmpty("java.io.tmpdir") diff --git a/test/files/run/t7265.scala b/test/files/run/t7265.scala deleted file mode 100644 index c556930303..0000000000 --- a/test/files/run/t7265.scala +++ /dev/null @@ -1,27 +0,0 @@ - -import scala.util.Properties._ - -object Test extends App { - - setProp("java.specification.version", "1.7") - - assert( isJavaAtLeast("1.5")) - assert( isJavaAtLeast("1.6")) - assert( isJavaAtLeast("1.7")) - assert(!isJavaAtLeast("1.8")) - assert(!isJavaAtLeast("1.71")) - - failing(isJavaAtLeast("1.a")) - failing(isJavaAtLeast("1")) - failing(isJavaAtLeast("")) - failing(isJavaAtLeast(".")) - failing(isJavaAtLeast(".5")) - failing(isJavaAtLeast("1.7.1")) - - def failing(u: =>Unit) = try { - u - assert(false, "Expected Exception") - } catch { - case _: NumberFormatException => - } -} diff --git a/test/pending/junit/scala/util/t7265.scala b/test/junit/scala/util/t7265.scala index 3b8fa80dbe..71f085d21d 100644 --- a/test/pending/junit/scala/util/t7265.scala +++ b/test/junit/scala/util/t7265.scala @@ -30,6 +30,7 @@ class SpecVersionTest { assert(sut isJavaAtLeast "1.6") assert(sut isJavaAtLeast "1.7") assert(!(sut isJavaAtLeast "1.8")) + assert(!(sut isJavaAtLeast "1.71")) } @Test(expected = classOf[NumberFormatException]) def badVersion(): Unit = { @@ -40,6 +41,18 @@ class SpecVersionTest { sut isJavaAtLeast "1" } @Test(expected = classOf[NumberFormatException]) + def noVersion(): Unit = { + sut isJavaAtLeast "" + } + @Test(expected = classOf[NumberFormatException]) + def dotOnly(): Unit = { + sut isJavaAtLeast "." + } + @Test(expected = classOf[NumberFormatException]) + def leadingDot(): Unit = { + sut isJavaAtLeast ".5" + } + @Test(expected = classOf[NumberFormatException]) def notASpec(): Unit = { sut isJavaAtLeast "1.7.1" } |