Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/And.kt
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,10 @@ import org.jacodb.ets.model.EtsMethodParameter
import org.jacodb.ets.model.EtsMethodSignature
import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.getLocals
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import org.usvm.util.isTruthy

private fun EtsMethodParameter.toRef(): EtsParameterRef {
Expand All @@ -48,12 +46,7 @@ class And : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

private val classSignature: EtsClassSignature =
scene.projectFiles[0].classes.single { it.name != DEFAULT_ARK_CLASS_NAME }.signature
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Arrays.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath

class Arrays : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun testCreateConstantArrayOfNumbers() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Call.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath

class Call : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun `test simpleCall`() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Equality.kt
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath

class Equality : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun testEqBoolWithBool() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/InstanceFields.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import kotlin.test.Test

class InstanceFields : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun testReturnSingleField() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/InstanceMethods.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import kotlin.test.Test

class InstanceMethods : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun testNoArgsStaticMethod() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/MinValue.kt
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Disabled
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import kotlin.test.Test

class MinValue : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
@Disabled
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Neg.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath

class Neg : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun `test negateNumber`() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Null.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.RepeatedTest
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath

class Null : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@RepeatedTest(20)
fun testIsNull() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Numeric.kt
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath

class Numeric : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun `test numberToNumber`() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Or.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,16 @@ import org.jacodb.ets.model.EtsMethodParameter
import org.jacodb.ets.model.EtsMethodSignature
import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.getLocals
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import org.usvm.util.isTruthy

class Or : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

private val classSignature: EtsClassSignature =
scene.projectFiles[0].classes.single { it.name != DEFAULT_ARK_CLASS_NAME }.signature
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/StaticMethods.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import kotlin.test.Test

class StaticMethods : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun testNoArgsStaticMethod() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Truthy.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import kotlin.test.Test

class Truthy : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun `test arrayTruthy`() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/TypeCoercion.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath
import org.usvm.util.isTruthy

private val TsValue.TsBoolean.number: Double
Expand All @@ -16,12 +14,7 @@ class TypeCoercion : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun testArgWithConst() {
Expand Down
9 changes: 1 addition & 8 deletions usvm-ts/src/test/kotlin/org/usvm/samples/Undefined.kt
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
package org.usvm.samples

import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.Test
import org.usvm.api.TsValue
import org.usvm.util.TsMethodTestRunner
import org.usvm.util.getResourcePath

class Undefined : TsMethodTestRunner() {

private val className = this::class.simpleName!!

override val scene: EtsScene = run {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(path)
EtsScene(listOf(file))
}
override val scene: EtsScene = loadSampleScene(className)

@Test
fun `test isUndefined`() {
Expand Down
14 changes: 14 additions & 0 deletions usvm-ts/src/test/kotlin/org/usvm/util/TsMethodTestRunner.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import org.jacodb.ets.model.EtsClassSignature
import org.jacodb.ets.model.EtsFileSignature
import org.jacodb.ets.model.EtsMethod
import org.jacodb.ets.model.EtsScene
import org.jacodb.ets.utils.loadEtsFileAutoConvert
import org.junit.jupiter.api.TestInstance
import org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS
import org.usvm.PathSelectionStrategy
Expand All @@ -35,6 +36,19 @@ abstract class TsMethodTestRunner : TestRunner<TsTest, EtsMethod, EtsType?, TsMe

protected abstract val scene: EtsScene

protected fun loadSampleScene(
className: String,
useArkAnalyzerTypeInference: Boolean = true,
): EtsScene {
val name = "$className.ts"
val path = getResourcePath("/samples/$name")
val file = loadEtsFileAutoConvert(
path,
useArkAnalyzerTypeInference = if (useArkAnalyzerTypeInference) 1 else null
)
return EtsScene(listOf(file))
}

protected fun getMethod(className: String, methodName: String): EtsMethod {
return scene
.projectAndSdkClasses.single { it.name == className }
Expand Down