Merge boxWithJava testData into box, delete BoxWithJava test

This commit is contained in:
Alexander Udalov
2016-03-07 16:54:45 +03:00
committed by Alexander Udalov
parent 16a0ddd2fb
commit f8dfaf4599
117 changed files with 723 additions and 815 deletions
@@ -0,0 +1,21 @@
// FILE: Test.java
public class Test extends java.util.ArrayList<String> {
public final int size() {
return 56;
}
}
// FILE: test.kt
class OurTest : Test()
fun box(): String {
val t = OurTest()
val x: MutableCollection<String> = t
if (t.size != 56) return "fail 1: ${t.size}"
if (x.size != 56) return "fail 1: ${x.size}"
return "OK"
}
@@ -0,0 +1,109 @@
// FILE: J.java
public class J extends A {
public boolean okField = false;
public int getValProp() {
return 123;
}
public int getVarProp() {
return 456;
}
public void setVarProp(int x) {
okField = true;
}
public int isProp() {
return 789;
}
public void setProp(int x) {
okField = true;
}
}
// FILE: test.kt
open class A {
open val valProp: Int = -1
open var varProp: Int = -1
open var isProp: Int = -1
}
class B : J() {
override val valProp: Int = super.valProp + 1
override var varProp: Int
set(value) {
super.varProp = value
}
get() = super.varProp + 1
override var isProp: Int
set(value) {
super.isProp = value
}
get() = super.isProp + 1
}
fun box(): String {
val j = J()
var a: A = j
if (j.valProp != 123) return "fail 1"
if (a.valProp != 123) return "fail 2"
j.varProp = -1
if (!j.okField) return "fail 3"
j.okField = false
a.varProp = -1
if (!j.okField) return "fail 4"
j.okField = false
if (j.varProp != 456) return "fail 5"
if (a.varProp != 456) return "fail 6"
j.isProp = -1
if (!j.okField) return "fail 7"
j.okField = false
a.isProp = -1
if (!j.okField) return "fail 8"
j.okField = false
if (j.isProp != 789) return "fail 9"
if (a.isProp != 789) return "fail 10"
val b = B()
a = b
if (b.valProp != 124) return "fail 11"
if (a.valProp != 124) return "fail 12"
b.varProp = -1
if (!b.okField) return "fail 13"
b.okField = false
a.varProp = -1
if (!b.okField) return "fail 14"
b.okField = false
if (b.varProp != 457) return "fail 15"
if (a.varProp != 457) return "fail 16"
b.isProp = -1
if (!b.okField) return "fail 17"
b.okField = false
a.isProp = -1
if (!b.okField) return "fail 18"
b.okField = false
if (b.isProp != 790) return "fail 19"
if (a.isProp != 790) return "fail 20"
return "OK"
}
@@ -0,0 +1,27 @@
// FILE: J.java
public class J {
public static int f() {
return A.Companion.getI1() + A.Companion.getI2() + B.Named.getI1() + B.Named.getI2();
}
}
// FILE: test.kt
class A {
companion object {
val i1 = 1
val i2 = 2
}
}
class B {
companion object Named {
val i1 = 3
val i2 = 4
}
}
fun box(): String {
return if (J.f() == A.i1 + A.i2 + B.i1 + B.i2) "OK" else "Fail: ${J.f()}"
}
@@ -0,0 +1,50 @@
// WITH_RUNTIME
// FILE: Test.java
class Test {
String test() {
String s;
s = Klass.NAME;
if (!s.equals("Klass")) throw new AssertionError("Fail class: " + s);
s = Klass.JVM_NAME;
if (!s.equals("JvmKlass")) throw new AssertionError("Fail jvm class: " + s);
s = Trait.NAME;
if (!s.equals("Trait")) throw new AssertionError("Fail interface: " + s);
s = Enoom.NAME;
if (!s.equals("Enum")) throw new AssertionError("Fail enum: " + s);
s = Enoom.JVM_NAME;
if (!s.equals("JvmEnum")) throw new AssertionError("Fail jvm enum: " + s);
return "OK";
}
}
// FILE: test.kt
class Klass {
companion object {
const val NAME = "Klass"
@JvmField val JVM_NAME = "JvmKlass"
}
}
interface Trait {
companion object {
const val NAME = "Trait"
}
}
enum class Enoom {
;
companion object {
const val NAME = "Enum"
@JvmField val JVM_NAME = "JvmEnum"
}
}
fun box() = Test().test()
@@ -0,0 +1,30 @@
// FILE: JavaClass.java
public class JavaClass {
private Boolean value;
public Boolean isValue() {
return value;
}
public void setValue(boolean value) {
this.value = value;
}
}
// FILE: kotlin.kt
fun box(): String {
val javaClass = JavaClass()
if (javaClass.isValue != null) return "fail 1"
javaClass.isValue = false
if (javaClass.isValue != false) return "fail 2"
javaClass.isValue = true
if (javaClass.isValue != true) return "fail 3"
return "OK"
}
@@ -0,0 +1,28 @@
// FILE: JavaClass.java
public class JavaClass {
private boolean value;
public boolean isValue() {
return value;
}
public void setValue(Boolean value) {
this.value = value;
}
}
// FILE: kotlin.kt
fun box(): String {
val javaClass = JavaClass()
if (javaClass.isValue != false) return "fail 1"
javaClass.isValue = true
if (javaClass.isValue != true) return "fail 2"
return "OK"
}
@@ -0,0 +1,19 @@
// FILE: JavaClass.java
public class JavaClass {
protected String FIELD = "OK";
}
// FILE: Kotlin.kt
package test
import JavaClass
class B : JavaClass() {
inline fun bar() = FIELD
}
fun box() = B().bar()
@@ -0,0 +1,37 @@
// WITH_RUNTIME
// FILE: JavaBaseClass.java
public class JavaBaseClass {
private String field = "fail";
protected String getFoo() {
return field;
}
protected void setFoo(String foo) {
field = foo;
}
}
// FILE: kotlin.kt
package z
import JavaBaseClass
object KotlinExtender : JavaBaseClass() {
@JvmStatic fun test(): String {
return runSlowly {
foo = "OK"
foo
}
}
}
fun runSlowly(f: () -> String): String {
return f()
}
fun box(): String {
return KotlinExtender.test()
}
@@ -0,0 +1,45 @@
// WITH_RUNTIME
// FILE: JavaBaseClass.java
public class JavaBaseClass {
private String field = "fail";
protected String getFoo() {
return field;
}
protected void setFoo(String foo) {
field = foo;
}
}
// FILE: kotlin.kt
package z
import JavaBaseClass
class A {
@JvmField var foo = "fail"
companion object : JavaBaseClass() {
@JvmStatic fun test(): String {
return runSlowly {
foo = "OK"
foo
}
}
}
}
fun runSlowly(f: () -> String): String {
return f()
}
fun box(): String {
val a = A()
a.foo = "Kotlin"
if (a.foo != "Kotlin") return "fail"
return A.test()
}
@@ -0,0 +1,15 @@
// FILE: Test.java
public abstract class Test<F> {
protected final F value = null;
}
// FILE: test.kt
class A : Test<String>() {
fun foo(): String? = value
}
fun box(): String {
return if (A().foo() == null) "OK" else "Fail"
}