Add ir interpreter tests

This commit is contained in:
Ivan Kylchik
2021-05-19 16:27:03 +03:00
committed by TeamCityServer
parent cc2d7340dc
commit e28ab45c51
115 changed files with 5104 additions and 0 deletions
@@ -0,0 +1,88 @@
@CompileTimeCalculation
fun throwExample(a: Int, b: Int): Int {
if (b == 0) throw ArithmeticException("Divide by zero")
return a / b
}
@CompileTimeCalculation
fun throwNullMessage(a: Int, b: Int): Int {
if (b == 0) throw ArithmeticException(null)
return a / b
}
const val a1 = <!EVALUATED: `false`!>try {
throwExample(10, 0)
true
} catch (e: ArithmeticException) {
false
}<!>
const val a2 = <!EVALUATED: `true`!>try {
throwExample(10, 1)
true
} catch (e: ArithmeticException) {
false
}<!>
const val b1 = <!EVALUATED: `false`!>try {
throwExample(10, 0)
true
} catch (e: Exception) {
false
}<!>
const val b2 = <!EVALUATED: `true`!>try {
throwExample(10, 1)
true
} catch (e: Exception) {
false
}<!>
const val b3 = <!EVALUATED: `false`!>try {
throwExample(10, 0)
true
} catch (e: Throwable) {
false
}<!>
const val c1 = <!EVALUATED: `1`!>try {
throwExample(10, 0)
0
} catch (e: ArithmeticException) {
1
} catch (e: Exception) {
2
}<!>
const val c2 = <!EVALUATED: `1`!>try {
throwExample(10, 0)
0
} catch (e: Exception) {
1
} catch (e: ArithmeticException) {
2
}<!>
const val c3 = <!EVALUATED: `2`!>try {
throwExample(10, 0)
0
} catch (e: NullPointerException) {
1
} catch (e: ArithmeticException) {
2
}<!>
const val d1 = <!EVALUATED: `Divide by zero`!>try {
throwExample(10, 0)
"Without exception"
} catch (e: ArithmeticException) {
e.message ?: "Exception without message"
}<!>
const val d2 = <!EVALUATED: `Without exception`!>try {
throwExample(10, 1)
"Without exception"
} catch (e: ArithmeticException) {
e.message ?: "Exception without message"
}<!>
const val nullMessage = <!EVALUATED: `Exception without message`!>try {
throwNullMessage(10, 0)
"Without exception"
} catch (e: ArithmeticException) {
e.message ?: "Exception without message"
}<!>