Add 'mute' concept: move tests with unexpected behaviour to the corresponding folder

This commit is contained in:
victor.petukhov
2018-09-25 12:16:29 +03:00
parent 84dc28374c
commit ecb3f10e47
48 changed files with 1505 additions and 913 deletions
@@ -0,0 +1,58 @@
// !LANGUAGE: +AllowContractsForCustomFunctions +UseCallsInPlaceEffect
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// !WITH_CONTRACT_FUNCTIONS
/*
KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (POSITIVE)
SECTION: contracts
CATEGORIES: analysis, controlFlow, initialization
NUMBER: 6
DESCRIPTION: Check the lack of CallsInPlace effect on the lambda in the parentheses.
UNEXPECTED BEHAVIOUR
ISSUES: KT-26229
*/
// FILE: contracts.kt
package contracts
import kotlin.contracts.*
inline fun case_3(block1: () -> Unit, block2: () -> Unit, block3: () -> Unit) {
contract {
callsInPlace(block1, InvocationKind.EXACTLY_ONCE)
callsInPlace(block2, InvocationKind.AT_LEAST_ONCE)
callsInPlace(block3, InvocationKind.EXACTLY_ONCE)
}
block1()
block2()
block2()
block3()
}
// FILE: usages.kt
import contracts.*
fun case_1() {
val value_1: Int
funWithExactlyOnceCallsInPlace({ <!CAPTURED_VAL_INITIALIZATION!>value_1<!> = 11 })
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
}
fun case_2() {
var value_1: Int
funWithAtLeastOnceCallsInPlace({ value_1 = 11 })
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
}
fun case_3() {
val value_1: Int
var value_2: Int
val value_3: Int
contracts.case_3({ <!CAPTURED_VAL_INITIALIZATION!>value_1<!> = 1 }, { value_2 = 2 }, { <!CAPTURED_VAL_INITIALIZATION!>value_3<!> = 3 })
<!UNINITIALIZED_VARIABLE!>value_1<!>.inc()
<!UNINITIALIZED_VARIABLE!>value_2<!>.inc()
<!UNINITIALIZED_VARIABLE!>value_3<!>.inc()
}
@@ -0,0 +1,120 @@
package
public fun case_1(): kotlin.Unit
public fun case_2(): kotlin.Unit
public fun case_3(): kotlin.Unit
public inline fun </*0*/ T> funWithAtLeastOnceCallsInPlace(/*0*/ block: () -> T): T
CallsInPlace(block, AT_LEAST_ONCE)
public inline fun funWithAtLeastOnceCallsInPlace(/*0*/ block: () -> kotlin.Unit): kotlin.Unit
CallsInPlace(block, AT_LEAST_ONCE)
public inline fun funWithAtMostOnceCallsInPlace(/*0*/ block: () -> kotlin.Unit): kotlin.Unit
CallsInPlace(block, AT_MOST_ONCE)
public inline fun </*0*/ T> funWithExactlyOnceCallsInPlace(/*0*/ block: () -> T): T
CallsInPlace(block, EXACTLY_ONCE)
public inline fun funWithExactlyOnceCallsInPlace(/*0*/ block: () -> kotlin.Unit): kotlin.Unit
CallsInPlace(block, EXACTLY_ONCE)
public fun funWithReturns(/*0*/ cond: kotlin.Boolean): kotlin.Unit
Returns(WILDCARD) -> cond
public fun funWithReturnsAndInvertCondition(/*0*/ cond: kotlin.Boolean): kotlin.Unit
Returns(WILDCARD) -> !cond
public fun funWithReturnsAndInvertTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Unit
Returns(WILDCARD) -> value_1 !is String
public fun funWithReturnsAndNotNullCheck(/*0*/ value_1: kotlin.Any?): kotlin.Unit
Returns(WILDCARD) -> value_1 != null
public fun funWithReturnsAndNullCheck(/*0*/ value_1: kotlin.Any?): kotlin.Unit
Returns(WILDCARD) -> value_1 == null
public fun funWithReturnsAndTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Unit
Returns(WILDCARD) -> value_1 is String
public fun funWithReturnsFalse(/*0*/ cond: kotlin.Boolean): kotlin.Boolean
Returns(FALSE) -> cond
public fun funWithReturnsFalseAndInvertCondition(/*0*/ cond: kotlin.Boolean): kotlin.Boolean
Returns(FALSE) -> !cond
public fun funWithReturnsFalseAndInvertTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean
Returns(FALSE) -> value_1 !is String
public fun funWithReturnsFalseAndNotNullCheck(/*0*/ value_1: kotlin.Number?): kotlin.Boolean
Returns(FALSE) -> value_1 != null
public fun funWithReturnsFalseAndNullCheck(/*0*/ value_1: kotlin.Number?): kotlin.Boolean
Returns(FALSE) -> value_1 == null
public fun funWithReturnsFalseAndTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean
Returns(FALSE) -> value_1 is String
public fun funWithReturnsNotNull(/*0*/ cond: kotlin.Boolean): kotlin.Boolean?
Returns(NOT_NULL) -> cond
public fun funWithReturnsNotNullAndInvertCondition(/*0*/ cond: kotlin.Boolean): kotlin.Boolean?
Returns(NOT_NULL) -> !cond
public fun funWithReturnsNotNullAndInvertTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean?
Returns(NOT_NULL) -> value_1 !is String
public fun funWithReturnsNotNullAndNotNullCheck(/*0*/ value_1: kotlin.Number?): kotlin.Boolean?
Returns(NOT_NULL) -> value_1 != null
public fun funWithReturnsNotNullAndNullCheck(/*0*/ value_1: kotlin.Number?): kotlin.Boolean?
Returns(NOT_NULL) -> value_1 == null
public fun funWithReturnsNotNullAndTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean?
Returns(NOT_NULL) -> value_1 is String
public fun funWithReturnsNull(/*0*/ cond: kotlin.Boolean): kotlin.Boolean?
Returns(NULL) -> cond
public fun funWithReturnsNullAndInvertCondition(/*0*/ cond: kotlin.Boolean): kotlin.Boolean?
Returns(NULL) -> !cond
public fun funWithReturnsNullAndInvertTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean?
Returns(NULL) -> value_1 !is String
public fun funWithReturnsNullAndNotNullCheck(/*0*/ value_1: kotlin.Number?): kotlin.Boolean?
Returns(NULL) -> value_1 != null
public fun funWithReturnsNullAndNullCheck(/*0*/ value_1: kotlin.Number?): kotlin.Boolean?
Returns(NULL) -> value_1 == null
public fun funWithReturnsNullAndTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean?
Returns(NULL) -> value_1 is String
public fun funWithReturnsTrue(/*0*/ cond: kotlin.Boolean): kotlin.Boolean
Returns(TRUE) -> cond
public fun funWithReturnsTrueAndInvertCondition(/*0*/ cond: kotlin.Boolean): kotlin.Boolean
Returns(TRUE) -> !cond
public fun funWithReturnsTrueAndInvertTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean
Returns(TRUE) -> value_1 !is String
public fun funWithReturnsTrueAndNotNullCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean
Returns(TRUE) -> value_1 != null
public fun funWithReturnsTrueAndNullCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean
Returns(TRUE) -> value_1 == null
public fun funWithReturnsTrueAndTypeCheck(/*0*/ value_1: kotlin.Any?): kotlin.Boolean
Returns(TRUE) -> value_1 is String
public inline fun funWithUnknownCallsInPlace(/*0*/ block: () -> kotlin.Unit): kotlin.Unit
CallsInPlace(block, UNKNOWN)
package contracts {
public inline fun case_3(/*0*/ block1: () -> kotlin.Unit, /*1*/ block2: () -> kotlin.Unit, /*2*/ block3: () -> kotlin.Unit): kotlin.Unit
CallsInPlace(block1, EXACTLY_ONCE)
CallsInPlace(block2, AT_LEAST_ONCE)
CallsInPlace(block3, EXACTLY_ONCE)
}