diff options
author | Fabian Mastenbroek <fabianishere@outlook.com> | 2018-08-12 23:02:56 +0200 |
---|---|---|
committer | Evgeny Mandrikov <Godin@users.noreply.github.com> | 2018-08-12 23:02:56 +0200 |
commit | 90af0853aed1cf9290acb81ed0cde1699cc00718 (patch) | |
tree | 76233eac8c3f1d22e4349beecdbc3e8741ff7aae /org.jacoco.core.test.validation.kotlin | |
parent | c1cfe5777ef7acbe361b1172554c855243aa67f2 (diff) | |
download | platform_external_jacoco-90af0853aed1cf9290acb81ed0cde1699cc00718.tar.gz platform_external_jacoco-90af0853aed1cf9290acb81ed0cde1699cc00718.tar.bz2 platform_external_jacoco-90af0853aed1cf9290acb81ed0cde1699cc00718.zip |
Add tests for Kotlin `lateinit` properties and `data class`es (#709)
Diffstat (limited to 'org.jacoco.core.test.validation.kotlin')
4 files changed, 129 insertions, 0 deletions
diff --git a/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinDataClassTest.java b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinDataClassTest.java new file mode 100644 index 00000000..3594f1d4 --- /dev/null +++ b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinDataClassTest.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Fabian Mastenbroek - initial API and implementation + * + *******************************************************************************/ +package org.jacoco.core.test.validation.kotlin; + +import org.jacoco.core.test.validation.ValidationTestBase; +import org.jacoco.core.test.validation.kotlin.targets.KotlinDataClassTarget; + +/** + * Test of <code>data class</code>es. + */ +public class KotlinDataClassTest extends ValidationTestBase { + + public KotlinDataClassTest() { + super(KotlinDataClassTarget.class); + } + +} diff --git a/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinLateinitTest.java b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinLateinitTest.java new file mode 100644 index 00000000..78b31b15 --- /dev/null +++ b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinLateinitTest.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Fabian Mastenbroek - initial API and implementation + * + *******************************************************************************/ +package org.jacoco.core.test.validation.kotlin; + +import org.jacoco.core.test.validation.ValidationTestBase; +import org.jacoco.core.test.validation.kotlin.targets.KotlinLateinitTarget; + +/** + * Test of <code>lateinit</code> properties. + */ +public class KotlinLateinitTest extends ValidationTestBase { + + public KotlinLateinitTest() { + super(KotlinLateinitTarget.class); + } + +} diff --git a/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinDataClassTarget.kt b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinDataClassTarget.kt new file mode 100644 index 00000000..ba66ceeb --- /dev/null +++ b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinDataClassTarget.kt @@ -0,0 +1,50 @@ +/******************************************************************************* + * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Fabian Mastenbroek - initial API and implementation + * + *******************************************************************************/ +package org.jacoco.core.test.validation.kotlin.targets + +import org.jacoco.core.test.validation.targets.Stubs.nop + +/** + * This test target is `data class`. + */ +object KotlinDataClassTarget { + + data class DataClass( // assertFullyCovered() + val valNoRead: Int, // assertNotCovered() + val valRead: Int, // assertFullyCovered() + var varNoReadNoWrite: Int, // assertNotCovered() + var varNoWrite: Int, // assertPartlyCovered() + var varNoRead: Int, // assertPartlyCovered() + var varReadWrite: Int // assertFullyCovered() + ) // assertEmpty() + + data class DataClassOverrideNotCovered(val v: Int) { + override fun toString(): String = "" // assertNotCovered() + } + + data class DataClassOverrideCovered(val v: Int) { + override fun toString(): String = "" // assertFullyCovered() + } + + @JvmStatic + fun main(args: Array<String>) { + val d = DataClass(0, 0, 0, 0, 0, 0) + nop(d.valRead) + nop(d.varNoWrite) + d.varNoRead = 1 + nop(d.varReadWrite) + d.varReadWrite = 1 + + DataClassOverrideNotCovered(0) + DataClassOverrideCovered(0).toString() + } +} diff --git a/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinLateinitTarget.kt b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinLateinitTarget.kt new file mode 100644 index 00000000..78d135c2 --- /dev/null +++ b/org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinLateinitTarget.kt @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Fabian Mastenbroek - initial API and implementation + * + *******************************************************************************/ +package org.jacoco.core.test.validation.kotlin.targets + +import org.jacoco.core.test.validation.targets.Stubs.nop + +/** + * This test target is `lateinit` property. + */ +object KotlinLateinitTarget { + private lateinit var x: String + + @JvmStatic + fun main(args: Array<String>) { + x = "" + nop(x) // assertFullyCovered() + } +} |