[Test] Move test on modern jdk to separate test runners
This is needed to avoid problems with installation of proper jdk on developer machines. Those tests will be moved back to main box suites after migrating our tests on LTS versions of jdk (11 and 17 instead of 9 and 15)
This commit is contained in:
committed by
teamcityserver
parent
89bd52c7d2
commit
1fa74ef939
@@ -1 +0,0 @@
|
||||
<modernJava>
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public static String box() {
|
||||
MyRec m = new MyRec<String>("O", "K");
|
||||
return m.x() + m.y();
|
||||
}
|
||||
}
|
||||
// FILE: main.kt
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec<R>(val x: String, val y: R)
|
||||
|
||||
fun box(): String {
|
||||
val recordComponents = MyRec::class.java.recordComponents
|
||||
val x = recordComponents[0]
|
||||
val y = recordComponents[1]
|
||||
|
||||
if (x.name != "x") return "fail 1: ${x.name}"
|
||||
if (x.type != String::class.java) return "fail 2: ${x.type}"
|
||||
if (x.genericSignature != null) return "fail 3: ${x.genericSignature}"
|
||||
|
||||
if (y.name != "y") return "fail 4: ${y.name}"
|
||||
if (y.type != Any::class.java) return "fail 5: ${y.type}"
|
||||
if (y.genericSignature != "TR;") return "fail 6: ${y.genericSignature}"
|
||||
|
||||
return JavaClass.box()
|
||||
}
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec(override val size: Int) : Collection<String> {
|
||||
override fun contains(element: String): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<String>): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun isEmpty(): Boolean {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun iterator(): Iterator<String> {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
}
|
||||
|
||||
fun box(m: MyRec, c: Collection<*>): String {
|
||||
val c: Collection<*> = m
|
||||
if (m.size != 56) return "fail 1"
|
||||
if (c.size != 56) return "fail 2"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val m = MyRec(56)
|
||||
return box(m, m)
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec<R>(val x: String, val y: R)
|
||||
|
||||
fun box(): String {
|
||||
val m1 = MyRec("O", "K")
|
||||
val m2 = MyRec("O", "K")
|
||||
|
||||
if (m1 != m2) return "fail 1"
|
||||
if (m1.hashCode() != m2.hashCode()) return "fail 2"
|
||||
if (m1.toString() != "MyRec(x=O, y=K)") return "fail 3: $m1"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
// MODULE: lib
|
||||
// FILE: A.kt
|
||||
@JvmRecord
|
||||
data class MyRecord(val foo: String, val bar: String)
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: B.kt
|
||||
|
||||
fun box(): String {
|
||||
val myRecord = MyRecord("O", "K")
|
||||
return myRecord.foo + myRecord.bar
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public static String box() {
|
||||
MyRec m = new MyRec<String>("O", "K");
|
||||
KI<String> ki = m;
|
||||
return m.x() + m.y() + ki.getX() + ki.getY();
|
||||
}
|
||||
}
|
||||
// FILE: main.kt
|
||||
|
||||
interface KI<T> {
|
||||
val x: String get() = ""
|
||||
val y: T
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec<R>(override val x: String, override val y: R) : KI<R>
|
||||
|
||||
fun box(): String {
|
||||
val res = JavaClass.box()
|
||||
if (res != "OKOK") return "fail 1: $res"
|
||||
return "OK"
|
||||
}
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
// !JVM_DEFAULT_MODE: all-compatibility
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public static String box() {
|
||||
MyRec m = new MyRec<String>("O", "K");
|
||||
KI<String> ki = m;
|
||||
return m.x() + m.y() + ki.getX() + ki.getY();
|
||||
}
|
||||
}
|
||||
// FILE: main.kt
|
||||
|
||||
interface KI<T> {
|
||||
val x: String get() = ""
|
||||
val y: T
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec<R>(override val x: String, override val y: R) : KI<R>
|
||||
|
||||
fun box(): String {
|
||||
val res = JavaClass.box()
|
||||
if (res != "OKOK") return "fail 1: $res"
|
||||
return "OK"
|
||||
}
|
||||
Vendored
-28
@@ -1,28 +0,0 @@
|
||||
// !API_VERSION: 1.5
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
// !JVM_DEFAULT_MODE: enable
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public static String box() {
|
||||
MyRec m = new MyRec<String>("O", "K");
|
||||
KI<String> ki = m;
|
||||
return m.x() + m.y() + ki.getX() + ki.getY();
|
||||
}
|
||||
}
|
||||
// FILE: main.kt
|
||||
|
||||
interface KI<T> {
|
||||
val x: String get() = ""
|
||||
val y: T
|
||||
}
|
||||
|
||||
@JvmRecord
|
||||
data class MyRec<R>(override val x: String, override val y: R) : KI<R>
|
||||
|
||||
fun box(): String {
|
||||
val res = JavaClass.box()
|
||||
if (res != "OKOK") return "fail 1: $res"
|
||||
return "OK"
|
||||
}
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
// ENABLE_JVM_PREVIEW
|
||||
// FILE: MyRec.java
|
||||
public record MyRec(String name) implements KI {
|
||||
public String getName() {
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
interface KI {
|
||||
val name: String
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val r = MyRec("fail")
|
||||
if (r.name() != "fail") return "fail 1"
|
||||
if ((r as KI).name != "OK") return "fail 2"
|
||||
|
||||
return r.name
|
||||
}
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
// ENABLE_JVM_PREVIEW
|
||||
// FILE: MyRec.java
|
||||
public record MyRec(String name) {
|
||||
public String getName() {
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun box(): String {
|
||||
val r = MyRec("fail")
|
||||
if (r.name() != "fail") return "fail 1"
|
||||
if (r.getName() != "OK") return "fail 2"
|
||||
|
||||
return r.name
|
||||
}
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
// !LANGUAGE: +JvmRecordSupport
|
||||
// ENABLE_JVM_PREVIEW
|
||||
// FILE: MyRec.java
|
||||
public record MyRec(String name) {}
|
||||
|
||||
// FILE: recordPropertyAccess.kt
|
||||
fun box(): String {
|
||||
val r = MyRec("OK")
|
||||
if (r.name() != "OK") return "fail 1"
|
||||
|
||||
return r.name
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<modernJava>
|
||||
@@ -1,9 +0,0 @@
|
||||
// STRING_CONCAT: indy-with-constants
|
||||
fun box(): String {
|
||||
val p = 3147483648u
|
||||
val a = "_"
|
||||
val b = "_"
|
||||
val s = a + "1" + "2" + 3 + 4L + b + 5.0 + 6F + '7' + true + false + 3147483647u + p
|
||||
|
||||
return if (s != "_1234_5.06.07truefalse31474836473147483648") "fail $s" else "OK"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
// STRING_CONCAT: indy-with-constants
|
||||
fun box(): String {
|
||||
val z = "0"
|
||||
val result = z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z //200
|
||||
|
||||
return if (result.length != 200)
|
||||
"fail: ${result.length}" else "OK"
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
// STRING_CONCAT: indy-with-constants
|
||||
fun test(z: Long): String {
|
||||
val result = "" + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z //200 z
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val result = test(0L)
|
||||
|
||||
if (result.length != 200)
|
||||
return "fail 1: ${result.length}"
|
||||
|
||||
return if (result != "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
|
||||
"fail 2: ${result}"
|
||||
else "OK"
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
// STRING_CONCAT: indy-with-constants
|
||||
fun box(): String {
|
||||
val z = "0"
|
||||
val result = z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + //200
|
||||
z //201
|
||||
|
||||
return if (result.length != 201)
|
||||
"fail: ${result.length}" else "OK"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
// STRING_CONCAT: indy
|
||||
fun box(): String {
|
||||
val z = "0"
|
||||
val result = z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z //200
|
||||
|
||||
return if (result.length != 200)
|
||||
"fail: ${result.length}" else "OK"
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
// STRING_CONCAT: indy
|
||||
fun test(z: Long): String {
|
||||
val result = "" + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z //200 z
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val result = test(0L)
|
||||
|
||||
if (result.length != 200)
|
||||
return "fail 1: ${result.length}"
|
||||
|
||||
return if (result != "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
|
||||
"fail 2: ${result}"
|
||||
else "OK"
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
// STRING_CONCAT: indy
|
||||
fun box(): String {
|
||||
val z = "0"
|
||||
val result = z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + //200
|
||||
z //201
|
||||
|
||||
return if (result.length != 201)
|
||||
"fail: ${result.length}" else "OK"
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
// STRING_CONCAT: indy-with-constants
|
||||
inline class Str(val s: String)
|
||||
inline class NStr(val s: String?)
|
||||
|
||||
fun testStr(s: Str?) = "1$s$s"
|
||||
fun testNStr(ns: NStr?) = "2$ns$ns"
|
||||
|
||||
fun box(): String {
|
||||
|
||||
val test1 = testStr(Str("0"))
|
||||
if (test1 != "1Str(s=0)Str(s=0)") return "fail 1: $test1"
|
||||
|
||||
val test2 = testStr(null)
|
||||
if (test2 != "1nullnull") return "fail 2: $test2"
|
||||
|
||||
val test3 = testNStr(NStr(null))
|
||||
if (test3 != "2NStr(s=null)NStr(s=null)") return "fail 3: $test3"
|
||||
|
||||
val test4 = testNStr(NStr("0"))
|
||||
if (test4 != "2NStr(s=0)NStr(s=0)") return "fail 4: $test4"
|
||||
|
||||
val test5 = testNStr(null)
|
||||
if (test5 != "2nullnull") return "fail 5: $test5"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
fun test(a: String, b: String?): String {
|
||||
return a + "\u0001" + 2.toChar() + 3.toChar() + 4L + b + 5.0 + 6F + '7' + b + "\u0002" + 1.toChar()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val test = test("O", "K")
|
||||
return if (test != "O\u0001\u0002\u00034K5.06.07K\u0002\u0001") "fail ${test}" else "OK"
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
// STRING_CONCAT: indy-with-constants
|
||||
inline fun test(crossinline s: (String) -> String): String {
|
||||
var result = "1" + s("2") + "3" + 4 + {
|
||||
"5" + s("6") + "7"
|
||||
}()
|
||||
|
||||
result += object {
|
||||
fun run() = "8" + s("9") + "10"
|
||||
}.run()
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val result = test { it }
|
||||
if (result != "12345678910") return "fail 1: $result"
|
||||
|
||||
val result2 = test { it + "_" }
|
||||
return if (result2 != "12_3456_789_10") "fail 2: $result2" else "OK"
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// ^ JVM_IR back-end generates SAM conversion with invokedynamic
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun box(): String {
|
||||
val f = {}
|
||||
val sam = Runnable(f)
|
||||
val samJavaClass = sam::class.java
|
||||
|
||||
if (samJavaClass.simpleName != "")
|
||||
throw Exception("samJavaClass.simpleName='${samJavaClass.simpleName}'")
|
||||
|
||||
if (!samJavaClass.isAnonymousClass())
|
||||
throw Exception("!samJavaClass.isAnonymousClass(): '${samJavaClass.name}'")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
// !LANGUAGE: +PolymorphicSignature
|
||||
// TARGET_BACKEND: JVM
|
||||
// SKIP_JDK6
|
||||
// WITH_RUNTIME
|
||||
|
||||
import java.lang.invoke.MethodHandles
|
||||
import kotlin.concurrent.thread
|
||||
|
||||
fun box(): String {
|
||||
val handle = MethodHandles.arrayElementVarHandle(ByteArray::class.java)
|
||||
val array = ByteArray(10)
|
||||
|
||||
val index = 0
|
||||
|
||||
// Check that we don't consider non-Object return type of a signature-polymorphic method to be polymorphic.
|
||||
handle.weakCompareAndSetPlain(array, index, 0.toByte(), 21.toByte()) as Comparable<*>
|
||||
|
||||
val oldValue = 42.toByte()
|
||||
val newValue = (-74).toByte()
|
||||
|
||||
thread {
|
||||
Thread.sleep(400L)
|
||||
|
||||
handle.setVolatile(array, index, oldValue)
|
||||
}
|
||||
|
||||
while (!handle.compareAndSet(array, index, oldValue, newValue)) {
|
||||
Thread.sleep(10L)
|
||||
}
|
||||
|
||||
return if (handle.getVolatile(array, index) == newValue) "OK" else "Fail"
|
||||
}
|
||||
Reference in New Issue
Block a user