diff --git a/.idea/libraries/kotlin_test.xml b/.idea/libraries/kotlin_test.xml
new file mode 100644
index 00000000000..2462725960c
--- /dev/null
+++ b/.idea/libraries/kotlin_test.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.xml b/build.xml
index fdf60fb012b..0398f1ce792 100644
--- a/build.xml
+++ b/build.xml
@@ -12,6 +12,7 @@
+
@@ -56,6 +57,7 @@
+
@@ -178,16 +180,23 @@
+
+
+
+
+
+
+
@@ -792,6 +801,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -936,15 +959,23 @@
+
+
+
+
+
+
+
+
org.jetbrains.kotlin
- kotlin.test.jvm
+ kotlin.test.junit
${project.version}
test
diff --git a/libraries/examples/browser-example/pom.xml b/libraries/examples/browser-example/pom.xml
index 0e307f4a03c..853e6982bbb 100644
--- a/libraries/examples/browser-example/pom.xml
+++ b/libraries/examples/browser-example/pom.xml
@@ -22,7 +22,7 @@
org.jetbrains.kotlin
- kotlin.test.jvm
+ kotlin.test.junit
${project.version}
test
diff --git a/libraries/kotlin.test/jvm/pom.xml b/libraries/kotlin.test/junit/pom.xml
similarity index 97%
rename from libraries/kotlin.test/jvm/pom.xml
rename to libraries/kotlin.test/junit/pom.xml
index 193b8736020..1c28cdff83f 100644
--- a/libraries/kotlin.test/jvm/pom.xml
+++ b/libraries/kotlin.test/junit/pom.xml
@@ -7,13 +7,14 @@
4.0.0
- kotlin.test.jvm
+ kotlin.test.junit
junit
junit
(4,5)
+ true
org.jetbrains.kotlin
diff --git a/libraries/kotlin.test/jvm/src/assembly/sources.xml b/libraries/kotlin.test/junit/src/assembly/sources.xml
similarity index 100%
rename from libraries/kotlin.test/jvm/src/assembly/sources.xml
rename to libraries/kotlin.test/junit/src/assembly/sources.xml
diff --git a/libraries/kotlin.test/jvm/src/main/kotlin/JUnitSupport.kt b/libraries/kotlin.test/junit/src/main/kotlin/JUnitSupport.kt
similarity index 100%
rename from libraries/kotlin.test/jvm/src/main/kotlin/JUnitSupport.kt
rename to libraries/kotlin.test/junit/src/main/kotlin/JUnitSupport.kt
diff --git a/libraries/kotlin.test/jvm/src/main/resources/META-INF/services/kotlin.test.AsserterContributor b/libraries/kotlin.test/junit/src/main/resources/META-INF/services/kotlin.test.AsserterContributor
similarity index 100%
rename from libraries/kotlin.test/jvm/src/main/resources/META-INF/services/kotlin.test.AsserterContributor
rename to libraries/kotlin.test/junit/src/main/resources/META-INF/services/kotlin.test.AsserterContributor
diff --git a/libraries/kotlin.test/jvm/src/test/kotlin/JUnitContributorTest.kt b/libraries/kotlin.test/junit/src/test/kotlin/JUnitContributorTest.kt
similarity index 100%
rename from libraries/kotlin.test/jvm/src/test/kotlin/JUnitContributorTest.kt
rename to libraries/kotlin.test/junit/src/test/kotlin/JUnitContributorTest.kt
diff --git a/libraries/kotlin.test/pom.xml b/libraries/kotlin.test/pom.xml
index ca4e10db239..233713ba748 100644
--- a/libraries/kotlin.test/pom.xml
+++ b/libraries/kotlin.test/pom.xml
@@ -13,7 +13,7 @@
shared
- jvm
+ junit
diff --git a/libraries/kotlin.test/shared/pom.xml b/libraries/kotlin.test/shared/pom.xml
index 72f58fc2d1b..0b896b1aa89 100644
--- a/libraries/kotlin.test/shared/pom.xml
+++ b/libraries/kotlin.test/shared/pom.xml
@@ -102,6 +102,7 @@
junit
junit
+ test
diff --git a/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt b/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt
index babc601baa7..d4dedfdec96 100644
--- a/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt
+++ b/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt
@@ -6,10 +6,12 @@ import kotlin.jvm.internal.*
import kotlin.reflect.*
@Deprecated("Use assertFailsWith instead.", ReplaceWith("assertFailsWith(exceptionClass, block)"), kotlin.DeprecationLevel.ERROR)
-fun failsWith(exceptionClass: Class, block: () -> Any): T = assertFailsWith(exceptionClass, { block() })
+fun failsWith(exceptionClass: Class, block: () -> Any): T = assertFailsWith(exceptionClass) { block() }
/** Asserts that a [block] fails with a specific exception being thrown. */
-fun assertFailsWith(exceptionClass: Class, block: () -> Unit): T = assertFailsWith(exceptionClass, null, block)
+fun assertFailsWith(exceptionClass: Class, block: () -> Unit): T {
+ return assertFailsWith(exceptionClass, null, block)
+}
/** Asserts that a [block] fails with a specific exception being thrown. */
fun assertFailsWith(exceptionClass: Class, message: String?, block: () -> Unit): T {
@@ -28,9 +30,12 @@ fun assertFailsWith(exceptionClass: Class, message: String?,
throw IllegalStateException(msg + "Should have failed.")
}
+/** Asserts that a [block] fails with a specific exception of type [exceptionClass] being thrown. */
+fun assertFailsWith(exceptionClass: KClass, block: () -> Unit): T = assertFailsWith(exceptionClass, null, block)
+
/** Asserts that a [block] fails with a specific exception of type [exceptionClass] being thrown. */
@Suppress("DEPRECATION")
-fun assertFailsWith(exceptionClass: KClass, message: String? = null, block: () -> Unit): T = assertFailsWith(exceptionClass.javaClass, message, block)
+fun assertFailsWith(exceptionClass: KClass, message: String?, block: () -> Unit): T = assertFailsWith(exceptionClass.javaClass, message, block)
/** Asserts that a [block] fails with a specific exception of type [T] being thrown.
* Since inline method doesn't allow to trace where it was invoked, it is required to pass a [message] to distinguish this method call from others.
diff --git a/libraries/kotlin.test/shared/src/main/kotlin/kotlin/test/TestAssertions.kt b/libraries/kotlin.test/shared/src/main/kotlin/kotlin/test/TestAssertions.kt
index 7983d130e9b..ec80b4240f6 100644
--- a/libraries/kotlin.test/shared/src/main/kotlin/kotlin/test/TestAssertions.kt
+++ b/libraries/kotlin.test/shared/src/main/kotlin/kotlin/test/TestAssertions.kt
@@ -175,13 +175,3 @@ interface AsserterContributor {
fun contribute(): Asserter?
}
-internal fun T.let(block: (T) -> R): R = block(this)
-
-internal fun Iterable.firstOrNull(predicate: (T) -> Boolean): T? {
- for (e in this) {
- if (predicate(e)) {
- return e
- }
- }
- return null
-}
diff --git a/libraries/kotlin.test/shared/src/main/kotlin/kotlin/test/Utils.kt b/libraries/kotlin.test/shared/src/main/kotlin/kotlin/test/Utils.kt
new file mode 100644
index 00000000000..fa69c62357d
--- /dev/null
+++ b/libraries/kotlin.test/shared/src/main/kotlin/kotlin/test/Utils.kt
@@ -0,0 +1,4 @@
+package kotlin.test
+
+internal fun T.let(block: (T) -> R): R = block(this)
+
diff --git a/libraries/kotlin.test/shared/src/test/kotlin.jvm/BasicAssertionsJVMTest.kt b/libraries/kotlin.test/shared/src/test/kotlin.jvm/BasicAssertionsJVMTest.kt
index e5206fbb19c..6b5f633cf35 100644
--- a/libraries/kotlin.test/shared/src/test/kotlin.jvm/BasicAssertionsJVMTest.kt
+++ b/libraries/kotlin.test/shared/src/test/kotlin.jvm/BasicAssertionsJVMTest.kt
@@ -24,6 +24,13 @@ class BasicAssertionsJVMTest {
throw IllegalArgumentException()
}
}
+ @Test
+ fun testFailsWithClassMessage() {
+ @Suppress("UNCHECKED_CAST")
+ assertFailsWith(Class.forName("java.lang.IllegalArgumentException") as Class) {
+ throw IllegalArgumentException()
+ }
+ }
@Test
fun testToDo() {
diff --git a/libraries/stdlib/pom.xml b/libraries/stdlib/pom.xml
index 9335016ad6f..65420ec13b0 100644
--- a/libraries/stdlib/pom.xml
+++ b/libraries/stdlib/pom.xml
@@ -21,7 +21,7 @@
org.jetbrains.kotlin
- kotlin.test.jvm
+ kotlin.test.junit
${project.version}
test
diff --git a/libraries/tools/kotlin-js-tests-junit/pom.xml b/libraries/tools/kotlin-js-tests-junit/pom.xml
index b15be51fb73..2eed85ecc8a 100644
--- a/libraries/tools/kotlin-js-tests-junit/pom.xml
+++ b/libraries/tools/kotlin-js-tests-junit/pom.xml
@@ -23,7 +23,7 @@
org.jetbrains.kotlin
- kotlin.test.jvm
+ kotlin.test.junit
${project.version}