mirror of
https://github.com/irmen/prog8.git
synced 2024-09-07 19:54:26 +00:00
moved unittests of compilerInterfaces into compiler module itself
This commit is contained in:
parent
3da9404c2d
commit
6737f28d1e
@ -5,6 +5,7 @@ import org.junit.jupiter.api.Test
|
|||||||
import org.junit.jupiter.api.TestFactory
|
import org.junit.jupiter.api.TestFactory
|
||||||
import org.junit.jupiter.api.TestInstance
|
import org.junit.jupiter.api.TestInstance
|
||||||
import prog8.ast.base.DataType
|
import prog8.ast.base.DataType
|
||||||
|
import prog8.ast.base.Position
|
||||||
import prog8.ast.expressions.*
|
import prog8.ast.expressions.*
|
||||||
import prog8.ast.statements.ForLoop
|
import prog8.ast.statements.ForLoop
|
||||||
import prog8.ast.statements.Subroutine
|
import prog8.ast.statements.Subroutine
|
||||||
@ -265,5 +266,15 @@ class TestCompilerOnRanges {
|
|||||||
assertEquals(DataType.STR, iterable.inferType(program).getOr(DataType.UNDEFINED))
|
assertEquals(DataType.STR, iterable.inferType(program).getOr(DataType.UNDEFINED))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testRangeExprNumericSize() {
|
||||||
|
val expr = RangeExpr(
|
||||||
|
NumericLiteralValue.optimalInteger(10, Position.DUMMY),
|
||||||
|
NumericLiteralValue.optimalInteger(20, Position.DUMMY),
|
||||||
|
NumericLiteralValue.optimalInteger(2, Position.DUMMY),
|
||||||
|
Position.DUMMY)
|
||||||
|
assertEquals(6, expr.size())
|
||||||
|
expr.toConstantIntegerRange()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,6 +15,61 @@ import kotlin.test.assertFalse
|
|||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
|
|
||||||
|
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||||
|
class TestAbstractZeropage {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testAbstractZeropage() {
|
||||||
|
val compTarget = DummyCompilationTarget()
|
||||||
|
val zp = DummyZeropage(
|
||||||
|
CompilationOptions(
|
||||||
|
OutputType.RAW,
|
||||||
|
LauncherType.NONE,
|
||||||
|
ZeropageType.FULL,
|
||||||
|
listOf((0x50..0x5f)),
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
compTarget
|
||||||
|
)
|
||||||
|
)
|
||||||
|
assertEquals(256-6-16, zp.free.size)
|
||||||
|
}
|
||||||
|
|
||||||
|
class DummyCompilationTarget: ICompilationTarget {
|
||||||
|
override val name: String = "dummy"
|
||||||
|
override val machine: IMachineDefinition
|
||||||
|
get() = throw NotImplementedError("dummy")
|
||||||
|
|
||||||
|
override fun encodeString(str: String, altEncoding: Boolean): List<Short> {
|
||||||
|
throw NotImplementedError("dummy")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun decodeString(bytes: List<Short>, altEncoding: Boolean): String {
|
||||||
|
throw NotImplementedError("dummy")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun memorySize(dt: DataType): Int {
|
||||||
|
throw NotImplementedError("dummy")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class DummyZeropage(options: CompilationOptions) : Zeropage(options) {
|
||||||
|
override val SCRATCH_B1: Int = 0x10
|
||||||
|
override val SCRATCH_REG: Int = 0x11
|
||||||
|
override val SCRATCH_W1: Int= 0x20
|
||||||
|
override val SCRATCH_W2: Int = 0x30
|
||||||
|
|
||||||
|
init {
|
||||||
|
free.addAll(0..255)
|
||||||
|
|
||||||
|
removeReservedFromFreePool()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||||
class TestC64Zeropage {
|
class TestC64Zeropage {
|
||||||
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
package prog8tests.interfaces
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test
|
|
||||||
import org.junit.jupiter.api.TestInstance
|
|
||||||
import prog8.ast.base.Position
|
|
||||||
import prog8.ast.expressions.NumericLiteralValue
|
|
||||||
import prog8.ast.expressions.RangeExpr
|
|
||||||
import prog8.compilerinterface.size
|
|
||||||
import kotlin.test.assertEquals
|
|
||||||
|
|
||||||
|
|
||||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
|
||||||
class TestAstExtensions {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testRangeExprNumericSize() {
|
|
||||||
val expr = RangeExpr(
|
|
||||||
NumericLiteralValue.optimalInteger(10, Position.DUMMY),
|
|
||||||
NumericLiteralValue.optimalInteger(20, Position.DUMMY),
|
|
||||||
NumericLiteralValue.optimalInteger(2, Position.DUMMY),
|
|
||||||
Position.DUMMY)
|
|
||||||
assertEquals(6, expr.size())
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
package prog8tests.interfaces
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test
|
|
||||||
import org.junit.jupiter.api.TestInstance
|
|
||||||
import prog8.ast.base.DataType
|
|
||||||
import prog8.compilerinterface.*
|
|
||||||
import kotlin.test.assertEquals
|
|
||||||
|
|
||||||
|
|
||||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
|
||||||
class TestZeropage {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testAbstractZeropage() {
|
|
||||||
val compTarget = DummyCompilationTarget()
|
|
||||||
val zp = DummyZeropage(
|
|
||||||
CompilationOptions(
|
|
||||||
OutputType.RAW,
|
|
||||||
LauncherType.NONE,
|
|
||||||
ZeropageType.FULL,
|
|
||||||
listOf((0x50..0x5f)),
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
compTarget
|
|
||||||
)
|
|
||||||
)
|
|
||||||
assertEquals(256-6-16, zp.free.size)
|
|
||||||
}
|
|
||||||
|
|
||||||
class DummyCompilationTarget: ICompilationTarget {
|
|
||||||
override val name: String = "dummy"
|
|
||||||
override val machine: IMachineDefinition
|
|
||||||
get() = throw NotImplementedError("dummy")
|
|
||||||
|
|
||||||
override fun encodeString(str: String, altEncoding: Boolean): List<Short> {
|
|
||||||
throw NotImplementedError("dummy")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun decodeString(bytes: List<Short>, altEncoding: Boolean): String {
|
|
||||||
throw NotImplementedError("dummy")
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun memorySize(dt: DataType): Int {
|
|
||||||
throw NotImplementedError("dummy")
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class DummyZeropage(options: CompilationOptions) : Zeropage(options) {
|
|
||||||
override val SCRATCH_B1: Int = 0x10
|
|
||||||
override val SCRATCH_REG: Int = 0x11
|
|
||||||
override val SCRATCH_W1: Int= 0x20
|
|
||||||
override val SCRATCH_W2: Int = 0x30
|
|
||||||
|
|
||||||
init {
|
|
||||||
free.addAll(0..255)
|
|
||||||
|
|
||||||
removeReservedFromFreePool()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
2
compilerInterfaces/test/readme.txt
Normal file
2
compilerInterfaces/test/readme.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Unittests for things in this module are located in the Compiler module instead,
|
||||||
|
for convenience sake.
|
Loading…
Reference in New Issue
Block a user