Skip to content

Commit

Permalink
Update KotlinLateinitFilter (#1568)
Browse files Browse the repository at this point in the history
  • Loading branch information
Godin committed Jan 25, 2024
1 parent f8a0a9e commit 50fa941
Show file tree
Hide file tree
Showing 5 changed files with 386 additions and 46 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import org.jacoco.core.test.validation.kotlin.targets.KotlinLateinitTarget;

/**
* Test of <code>lateinit</code> properties.
* Test of code coverage in {@link KotlinLateinitTarget}.
*/
public class KotlinLateinitTest extends ValidationTestBase {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,35 @@ import org.jacoco.core.test.validation.targets.Stubs.nop
* This test target is `lateinit` property.
*/
object KotlinLateinitTarget {
private lateinit var x: String

class Example<T : Any> {
lateinit var publicMember: String // assertFullyCovered()
lateinit var publicGenericMember: T // assertFullyCovered()
private lateinit var privateMember: String // assertEmpty()
private lateinit var privateGenericMember: T // assertEmpty()

fun init(value: T) {
publicMember = ""
publicGenericMember = value
privateMember = ""
privateGenericMember = value
}

fun read() {
nop(publicMember) // assertFullyCovered()
nop(publicGenericMember) // assertFullyCovered()
nop(privateMember) // assertFullyCovered()
nop(privateGenericMember) // assertFullyCovered()
}
}

@JvmStatic
fun main(args: Array<String>) {
x = ""
nop(x) // assertFullyCovered()
val e = Example<String>()
e.init("")
e.read()
e.publicMember // assertFullyCovered()
e.publicGenericMember // assertFullyCovered()
}

}

0 comments on commit 50fa941

Please sign in to comment.