aboutsummaryrefslogtreecommitdiffstats
path: root/org.jacoco.core.test.validation.kotlin
diff options
context:
space:
mode:
authorFabian Mastenbroek <fabianishere@outlook.com>2018-08-12 23:02:56 +0200
committerEvgeny Mandrikov <Godin@users.noreply.github.com>2018-08-12 23:02:56 +0200
commit90af0853aed1cf9290acb81ed0cde1699cc00718 (patch)
tree76233eac8c3f1d22e4349beecdbc3e8741ff7aae /org.jacoco.core.test.validation.kotlin
parentc1cfe5777ef7acbe361b1172554c855243aa67f2 (diff)
downloadplatform_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')
-rw-r--r--org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinDataClassTest.java26
-rw-r--r--org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/KotlinLateinitTest.java26
-rw-r--r--org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinDataClassTarget.kt50
-rw-r--r--org.jacoco.core.test.validation.kotlin/src/org/jacoco/core/test/validation/kotlin/targets/KotlinLateinitTarget.kt27
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()
+ }
+}