Skip to content

Commit

Permalink
[JVM] Port line number tests to stepping framework.
Browse files Browse the repository at this point in the history
Allow specifying JVM and JVM_IR as well as shared expectations.

Add the method name to the step.

Discard steps in synthetic methods.
  • Loading branch information
madsager authored and max-kammerer committed May 27, 2020
1 parent 4dbd4a5 commit 9fa1614
Show file tree
Hide file tree
Showing 59 changed files with 896 additions and 540 deletions.
12 changes: 6 additions & 6 deletions compiler/testData/debug/stepping/IfTrueThenFalse.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//FILE: test.kt
// FILE: test.kt
fun cond() = false

fun box() {
Expand All @@ -9,8 +9,8 @@ fun box() {
}

// LINENUMBERS
// test.kt:5
// test.kt:2
// test.kt:5
// test.kt:8
// test.kt:9
// test.kt:5 box
// test.kt:2 cond
// test.kt:5 box
// test.kt:8 box
// test.kt:9 box
13 changes: 13 additions & 0 deletions compiler/testData/debug/stepping/anonymousFunction.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// FILE: test.kt

fun box() {
{
"OK"
}()
}

// LINENUMBERS
// test.kt:4 box
// test.kt:5 invoke
// test.kt:4 box
// test.kt:7 box
28 changes: 14 additions & 14 deletions compiler/testData/debug/stepping/assertion.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@ fun box(): String {
}

// LINENUMBERS
// test.kt:24
// test.kt:15
// test.kt:16
// test.kt:3
// test.kt:16
// test.kt:17
// test.kt:21
// test.kt:25
// test.kt:6
// test.kt:3
// test.kt:6
// test.kt:7
// test.kt:12
// test.kt:29
// test.kt:24 box
// test.kt:15 box
// test.kt:16 box
// test.kt:3 getMASSERTIONS_ENABLED
// test.kt:16 box
// test.kt:17 box
// test.kt:21 box
// test.kt:25 box
// test.kt:6 box
// test.kt:3 getMASSERTIONS_ENABLED
// test.kt:6 box
// test.kt:7 box
// test.kt:12 box
// test.kt:29 box
18 changes: 8 additions & 10 deletions compiler/testData/debug/stepping/callableReference.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@ fun f(block: () -> Unit) {
}

// LINENUMBERS
// test.kt:3
// test.kt:4
// test.kt:10
// test.kt:5
// test.kt:6
// test.kt:-1
// test.kt:-1
// test.kt:10
// test.kt:11
// test.kt:7
// test.kt:3 box
// test.kt:4 box
// test.kt:10 f
// test.kt:5 invoke
// test.kt:6 invoke
// test.kt:10 f
// test.kt:11 f
// test.kt:7 box
35 changes: 35 additions & 0 deletions compiler/testData/debug/stepping/class.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// FILE: test.kt

class A {
val prop = 1

fun foo() {
prop
}
}

fun box() {
val a = A()
a.prop
a.foo()
}

// TODO: The JVM_IR backend has an extra line number on the return. This causes line
// three to be hit both on entry to the constructor and on exit after storing the
// value of prop.

// LINENUMBERS
// test.kt:12 box
// test.kt:3 <init>
// test.kt:4 <init>
// LINENUMBERS JVM_IR
// test.kt:3 <init>
// LINENUMBERS
// test.kt:12 box
// test.kt:13 box
// test.kt:4 getProp
// test.kt:13 box
// test.kt:14 box
// test.kt:7 foo
// test.kt:8 foo
// test.kt:15 box
50 changes: 50 additions & 0 deletions compiler/testData/debug/stepping/classObject.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// FILE: test.kt

class A {
companion object {
val prop0 = 1
val prop1 = 2
fun foo(): Int {
return prop0 + prop1
}
}
}

fun box() {
A.prop0
A.prop1
A.foo()
}

// The JVM version hits get getProp line numbers twice. That appears
// to be because the synthetic accessibility bridges (access$getProp0$cp)
// have line numbers (of the start of the surrounding class) in the JVM
// version and they do not have line numbers in the JVM_IR version.

// LINENUMBERS
// test.kt:14 box
// test.kt:5 getProp0
// LINENUMBERS JVM
// test.kt:5 getProp0
// LINENUMBERS
// test.kt:14 box
// test.kt:15 box
// test.kt:6 getProp1
// LINENUMBERS JVM
// test.kt:6 getProp1
// LINENUMBERS
// test.kt:15 box
// test.kt:16 box
// test.kt:8 foo
// test.kt:5 getProp0
// LINENUMBERS JVM
// test.kt:5 getProp0
// LINENUMBERS
// test.kt:8 foo
// test.kt:6 getProp1
// LINENUMBERS JVM
// test.kt:6 getProp1
// LINENUMBERS
// test.kt:8 foo
// test.kt:16 box
// test.kt:17 box
26 changes: 13 additions & 13 deletions compiler/testData/debug/stepping/conjunction.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//FILE: test.kt
// FILE: test.kt
fun box() {
val k = if (getA()
&& getB()
Expand All @@ -19,15 +19,15 @@ fun getC() = false
fun getD() = true

// LINENUMBERS
// test.kt:3
// test.kt:13
// test.kt:3
// test.kt:4
// test.kt:15
// test.kt:4
// test.kt:5
// test.kt:17
// test.kt:5
// test.kt:9
// test.kt:3
// test.kt:11
// test.kt:3 box
// test.kt:13 getA
// test.kt:3 box
// test.kt:4 box
// test.kt:15 getB
// test.kt:4 box
// test.kt:5 box
// test.kt:17 getC
// test.kt:5 box
// test.kt:9 box
// test.kt:3 box
// test.kt:11 box
24 changes: 24 additions & 0 deletions compiler/testData/debug/stepping/defaultParameter.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// FILE: test.kt

class A {
fun computeParam() = 32

fun foo(param: Int = computeParam()) {
}
}

fun box() {
A().foo()
}

// FORCE_STEP_INTO
// LINENUMBERS
// test.kt:11 box
// test.kt:3 <init>
// test.kt:11 box
// test.kt:6 foo$default (synthetic)
// test.kt:4 computeParam
// test.kt:6 foo$default (synthetic)
// test.kt:7 foo
// test.kt:6 foo$default (synthetic)
// test.kt:12 box
22 changes: 22 additions & 0 deletions compiler/testData/debug/stepping/enum.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// FILE: test.kt

enum class E {
E1;

fun foo() = {
prop
}

val prop = 22
}

fun box() {
E.E1.foo()
}

// LINENUMBERS
// test.kt:14 box
// test.kt:6 foo
// test.kt:8 foo
// test.kt:14 box
// test.kt:15 box
24 changes: 12 additions & 12 deletions compiler/testData/debug/stepping/for.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//FILE: test.kt
// FILE: test.kt
fun box() {
for (i in 1..3) {
foo(i)
Expand All @@ -8,14 +8,14 @@ fun box() {
inline fun foo(n: Int) {}

// LINENUMBERS
// test.kt:3
// test.kt:4
// test.kt:8
// test.kt:3
// test.kt:4
// test.kt:8
// test.kt:3
// test.kt:4
// test.kt:8
// test.kt:3
// test.kt:6
// test.kt:3 box
// test.kt:4 box
// test.kt:8 box
// test.kt:3 box
// test.kt:4 box
// test.kt:8 box
// test.kt:3 box
// test.kt:4 box
// test.kt:8 box
// test.kt:3 box
// test.kt:6 box
26 changes: 13 additions & 13 deletions compiler/testData/debug/stepping/functionInAnotherFile.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//FILE: foo.kt
// FILE: foo.kt
import bar
fun foo(x: Int): Int {
if (x >= 0) { // 4
Expand All @@ -21,15 +21,15 @@ fun bar(x: Int) =
}

// LINENUMBERS
// test.kt:4
// foo.kt:4
// foo.kt:7
// test.kt:8
// test.kt:9
// foo.kt:4
// foo.kt:5
// test.kt:9
// test.kt:12
// foo.kt:7
// test.kt:4
// test.kt:5
// test.kt:4 box
// foo.kt:4 foo
// foo.kt:7 foo
// test.kt:8 bar
// test.kt:9 bar
// foo.kt:4 foo
// foo.kt:5 foo
// test.kt:9 bar
// test.kt:12 bar
// foo.kt:7 foo
// test.kt:4 box
// test.kt:5 box
18 changes: 9 additions & 9 deletions compiler/testData/debug/stepping/if.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//FILE: test.kt
// FILE: test.kt
fun box(): Int {
if (
getB() ==
Expand All @@ -14,11 +14,11 @@ inline fun getB(): Int {
}

// LINENUMBERS
// test.kt:4
// test.kt:13
// test.kt:5
// test.kt:10
// test.kt:5
// test.kt:7
// test.kt:13
// test.kt:7
// test.kt:4 box
// test.kt:13 box
// test.kt:5 box
// test.kt:10 getA
// test.kt:5 box
// test.kt:7 box
// test.kt:13 box
// test.kt:7 box
39 changes: 39 additions & 0 deletions compiler/testData/debug/stepping/if2.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// FILE: test.kt

fun foo(x: Int) {
if (x > 0) {
"OK"
}

if (x > 0) else {
"OK"
}

if (x > 0) {
"OK"
} else {
"ALSO OK"
}
}

fun box() {
foo(1)
foo(0)
}

// LINENUMBERS
// test.kt:20 box
// test.kt:4 foo
// test.kt:5 foo
// test.kt:8 foo
// test.kt:12 foo
// test.kt:13 foo
// test.kt:17 foo
// test.kt:21 box
// test.kt:4 foo
// test.kt:8 foo
// test.kt:9 foo
// test.kt:12 foo
// test.kt:15 foo
// test.kt:17 foo
// test.kt:22 box
Loading

0 comments on commit 9fa1614

Please sign in to comment.