Protobuf: added test-project for testing proto compiler
This commit is contained in:
+248
@@ -0,0 +1,248 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.BaseMessage
|
||||||
|
import java_msg.ExtendedMessage
|
||||||
|
import main.kotlin.Base
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.Extended
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by user on 8/11/16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
object BaseExtendedTest {
|
||||||
|
fun generateKtBaseMessage(): Base {
|
||||||
|
val arrSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val arr = LongArray(arrSize)
|
||||||
|
for (i in 0..(arrSize - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
val flag = if (RandomGen.rnd.nextInt() % 2 == 0) false else true
|
||||||
|
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
|
||||||
|
return Base.BuilderBase(arr, flag, int).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateKtExtendedMessage(): Extended {
|
||||||
|
val arrSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val arr = LongArray(arrSize)
|
||||||
|
for (i in 0..(arrSize - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
val flag = if (RandomGen.rnd.nextInt() % 2 == 0) false else true
|
||||||
|
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
|
||||||
|
val long = RandomGen.rnd.nextLong()
|
||||||
|
|
||||||
|
val longsSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val longs = LongArray(longsSize)
|
||||||
|
for (i in 0..(longsSize - 1)) {
|
||||||
|
longs[i] = RandomGen.rnd.nextLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
return Extended.BuilderExtended(arr, longs, flag, long, int).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvBaseMessage(): BaseMessage.Base {
|
||||||
|
val arrSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val arr = LongArray(arrSize)
|
||||||
|
for (i in 0..(arrSize - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
val flag = if (RandomGen.rnd.nextInt() % 2 == 0) false else true
|
||||||
|
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
|
||||||
|
return BaseMessage.Base.newBuilder()
|
||||||
|
.addAllArr(arr.asIterable())
|
||||||
|
.setFlag(flag)
|
||||||
|
.setInt(int)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvExtendedMessage(): ExtendedMessage.Extended {
|
||||||
|
val arrSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val arr = LongArray(arrSize)
|
||||||
|
for (i in 0..(arrSize - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
val flag = if (RandomGen.rnd.nextInt() % 2 == 0) false else true
|
||||||
|
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
|
||||||
|
val long = RandomGen.rnd.nextLong()
|
||||||
|
|
||||||
|
val longsSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val longs = LongArray(longsSize)
|
||||||
|
for (i in 0..(longsSize - 1)) {
|
||||||
|
longs[i] = RandomGen.rnd.nextLong()
|
||||||
|
}
|
||||||
|
|
||||||
|
return ExtendedMessage.Extended.newBuilder()
|
||||||
|
.addAllArr(arr.asIterable())
|
||||||
|
.addAllArrLongs(longs.asIterable())
|
||||||
|
.setFlag(flag)
|
||||||
|
.setInt(int)
|
||||||
|
.setLong(long)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareBases(kt: main.kotlin.Base, jv: BaseMessage.Base): Boolean {
|
||||||
|
return kt.flag == jv.flag &&
|
||||||
|
kt.int == jv.int &&
|
||||||
|
Util.compareArrays(kt.arr.asIterable(), jv.arrList)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareExtended(kt: main.kotlin.Extended, jv: ExtendedMessage.Extended): Boolean {
|
||||||
|
return kt.flag == jv.flag &&
|
||||||
|
kt.int == jv.int &&
|
||||||
|
Util.compareArrays(kt.arr.asIterable(), jv.arrList) &&
|
||||||
|
Util.compareArrays(kt.arr_longs.asIterable(), jv.arrLongsList) &&
|
||||||
|
kt.long == jv.long
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareBaseKtToJavaExtended(kt: main.kotlin.Base, jv: ExtendedMessage.Extended): Boolean {
|
||||||
|
return kt.flag == jv.flag &&
|
||||||
|
kt.int == jv.int &&
|
||||||
|
Util.compareArrays(kt.arr.asIterable(), jv.arrList)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareExtendedKtToJavaBase(kt: main.kotlin.Extended, jv: BaseMessage.Base): Boolean {
|
||||||
|
return kt.flag == jv.flag &&
|
||||||
|
kt.int == jv.int &&
|
||||||
|
Util.compareArrays(kt.arr.asIterable(), jv.arrList)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun baseKtToBaseJavaOnce() {
|
||||||
|
val kt = generateKtBaseMessage()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = BaseMessage.Base.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareBases(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun baseJavaToBaseKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvBaseMessage()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = Base.BuilderBase(LongArray(0), false, 0).build()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareBases(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun baseKtToExtendedJavaOnce() {
|
||||||
|
val kt = generateKtBaseMessage()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = ExtendedMessage.Extended.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareBaseKtToJavaExtended(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun extendedJavaToBaseKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvExtendedMessage()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
|
||||||
|
val kt = Base.BuilderBase(LongArray(0), false, 0).build()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareBaseKtToJavaExtended(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun extendedKtToBaseJavaOnce() {
|
||||||
|
val kt = generateKtExtendedMessage()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = BaseMessage.Base.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareExtendedKtToJavaBase(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun baseJavaToExtendedKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvBaseMessage()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
|
||||||
|
val kt = Extended.BuilderExtended(LongArray(0), LongArray(0), false, 0L, 0).build()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareExtendedKtToJavaBase(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun extendedKtToExtendedJavaOnce() {
|
||||||
|
val kt = generateKtExtendedMessage()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = ExtendedMessage.Extended.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareExtended(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun extendedJavaToExtendedKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvExtendedMessage()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = Extended.BuilderExtended(LongArray(0), LongArray(0), false, 0L, 0).build()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareExtended(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
// base - base
|
||||||
|
baseJavaToBaseKtOnce()
|
||||||
|
baseKtToBaseJavaOnce()
|
||||||
|
|
||||||
|
// base - extended
|
||||||
|
baseKtToExtendedJavaOnce()
|
||||||
|
// extendedJavaToBaseKtOnce() - currently failing, proper parsing of unknown fields is needed.
|
||||||
|
|
||||||
|
// extended - base
|
||||||
|
baseJavaToExtendedKtOnce()
|
||||||
|
extendedKtToBaseJavaOnce()
|
||||||
|
|
||||||
|
// extended - extended
|
||||||
|
extendedJavaToExtendedKtOnce()
|
||||||
|
extendedKtToExtendedJavaOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+88
@@ -0,0 +1,88 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.Connect
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
object ConnectTest {
|
||||||
|
fun generateKotlinConnectionRequestMessage(): main.kotlin.ConnectionRequest {
|
||||||
|
val arrSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val arr = IntArray(arrSize)
|
||||||
|
for (i in 0..(arrSize - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
val port = RandomGen.rnd.nextInt()
|
||||||
|
|
||||||
|
val msg = main.kotlin.ConnectionRequest.BuilderConnectionRequest(arr, port).build()
|
||||||
|
|
||||||
|
return msg
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun generateJavaConnectionRequest(): Connect.ConnectionRequest {
|
||||||
|
val arrSize = RandomGen.rnd.nextInt(1000)
|
||||||
|
val arr = IntArray(arrSize)
|
||||||
|
for (i in 0..(arrSize - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
val port = RandomGen.rnd.nextInt()
|
||||||
|
|
||||||
|
val msg = Connect.ConnectionRequest.newBuilder().addAllIp(arr.asIterable()).setPort(port).build()
|
||||||
|
|
||||||
|
return msg
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fun compareConnectionRequests(kt: main.kotlin.ConnectionRequest, jv: Connect.ConnectionRequest): Boolean {
|
||||||
|
return Util.compareArrays(kt.ip.asIterable(), jv.ipList.asIterable())
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun ktToJavaOnce() {
|
||||||
|
val ktConnectionRequest = generateKotlinConnectionRequestMessage()
|
||||||
|
val outs = Util.getKtOutputStream(ktConnectionRequest.getSizeNoTag())
|
||||||
|
ktConnectionRequest.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jvConnectionRequest = Connect.ConnectionRequest.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(ktConnectionRequest.errorCode == 0)
|
||||||
|
Util.assert(Util.compareArrays(ktConnectionRequest.ip.asIterable(), jvConnectionRequest.ipList))
|
||||||
|
Util.assert(ktConnectionRequest.port == jvConnectionRequest.port)
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 10
|
||||||
|
|
||||||
|
fun KtToJava() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
ktToJavaOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jvConnectionRequest = generateJavaConnectionRequest()
|
||||||
|
jvConnectionRequest.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val ktConnectionRequest = main.kotlin.ConnectionRequest.BuilderConnectionRequest(IntArray(0), 0).parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(ktConnectionRequest.errorCode == 0)
|
||||||
|
Util.assert(Util.compareArrays(ktConnectionRequest.ip.asIterable(), jvConnectionRequest.ipList))
|
||||||
|
Util.assert(ktConnectionRequest.port == jvConnectionRequest.port)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKt() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
JavaToKtOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
KtToJava()
|
||||||
|
JavaToKt()
|
||||||
|
}
|
||||||
|
}
|
||||||
+130
@@ -0,0 +1,130 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.CrossBranchOuterClass
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.CrossBranch
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by user on 8/11/16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
object CrossBranchTest {
|
||||||
|
fun generateKtGrandFather(): main.kotlin.CrossBranch.Grandfather {
|
||||||
|
fun generateKtRightFather(): main.kotlin.CrossBranch.Grandfather.RightFather {
|
||||||
|
fun generateKtRightLeftSon(): main.kotlin.CrossBranch.Grandfather.RightFather.RightLeftSon {
|
||||||
|
fun generateKtLeftLeftSon(): main.kotlin.CrossBranch.Grandfather.LeftFather.LeftLeftSon {
|
||||||
|
return CrossBranch.Grandfather.LeftFather.LeftLeftSon.BuilderLeftLeftSon(RandomGen.rnd.nextInt()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
val msg = CrossBranch.Grandfather.RightFather.RightLeftSon.BuilderRightLeftSon(
|
||||||
|
generateKtLeftLeftSon()
|
||||||
|
).build()
|
||||||
|
return msg
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateKtRightRightSon(): CrossBranch.Grandfather.RightFather.RightRightSon {
|
||||||
|
fun generateKtLeftRightSon(): main.kotlin.CrossBranch.Grandfather.LeftFather.LeftRightSon {
|
||||||
|
return CrossBranch.Grandfather.LeftFather.LeftRightSon.BuilderLeftRightSon(RandomGen.rnd.nextInt()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
return CrossBranch.Grandfather.RightFather.RightRightSon.BuilderRightRightSon(
|
||||||
|
generateKtLeftRightSon()
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
val msg = main.kotlin.CrossBranch.Grandfather.RightFather.BuilderRightFather(
|
||||||
|
generateKtRightLeftSon(),
|
||||||
|
generateKtRightRightSon()
|
||||||
|
).build()
|
||||||
|
|
||||||
|
return msg
|
||||||
|
}
|
||||||
|
|
||||||
|
return CrossBranch.Grandfather.BuilderGrandfather(generateKtRightFather()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvGrandFather(): CrossBranchOuterClass.CrossBranch.Grandfather {
|
||||||
|
fun generateJvRightFather(): CrossBranchOuterClass.CrossBranch.Grandfather.RightFather {
|
||||||
|
fun generateJvRightLeftSon(): CrossBranchOuterClass.CrossBranch.Grandfather.RightFather.RightLeftSon {
|
||||||
|
fun generateJvLeftLeftSon(): CrossBranchOuterClass.CrossBranch.Grandfather.LeftFather.LeftLeftSon {
|
||||||
|
return CrossBranchOuterClass.CrossBranch.Grandfather.LeftFather.LeftLeftSon.newBuilder()
|
||||||
|
.setSonField(RandomGen.rnd.nextInt()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
return CrossBranchOuterClass.CrossBranch.Grandfather.RightFather.RightLeftSon.newBuilder()
|
||||||
|
.setSonField(generateJvLeftLeftSon()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvRightRightSon(): CrossBranchOuterClass.CrossBranch.Grandfather.RightFather.RightRightSon {
|
||||||
|
fun generateJvLeftRightSon(): CrossBranchOuterClass.CrossBranch.Grandfather.LeftFather.LeftRightSon {
|
||||||
|
return CrossBranchOuterClass.CrossBranch.Grandfather.LeftFather.LeftRightSon.newBuilder()
|
||||||
|
.setSonField(RandomGen.rnd.nextInt()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
return CrossBranchOuterClass.CrossBranch.Grandfather.RightFather.RightRightSon.newBuilder()
|
||||||
|
.setSonField(generateJvLeftRightSon()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
return CrossBranchOuterClass.CrossBranch.Grandfather.RightFather.newBuilder()
|
||||||
|
.setRls(
|
||||||
|
generateJvRightLeftSon()
|
||||||
|
)
|
||||||
|
.setRrs(
|
||||||
|
generateJvRightRightSon()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
return CrossBranchOuterClass.CrossBranch.Grandfather.newBuilder().setRf(generateJvRightFather()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareGrandFathers(kt: CrossBranch.Grandfather, jv: CrossBranchOuterClass.CrossBranch.Grandfather): Boolean {
|
||||||
|
return kt.rf.rls.son_field.son_field == jv.rf.rls.sonField.sonField &&
|
||||||
|
kt.rf.rrs.son_field.son_field == jv.rf.rrs.sonField.sonField
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 10
|
||||||
|
|
||||||
|
fun KtToJavaOnce() {
|
||||||
|
val kt = generateKtGrandFather()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = CrossBranchOuterClass.CrossBranch.Grandfather.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareGrandFathers(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun KtToJava() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
KtToJavaOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvGrandFather()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = generateKtGrandFather()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareGrandFathers(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKT() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
JavaToKtOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
KtToJava()
|
||||||
|
JavaToKT()
|
||||||
|
}
|
||||||
|
}
|
||||||
+68
@@ -0,0 +1,68 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.Direction
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.DirectionRequest
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
object DirectionTest {
|
||||||
|
fun generateKtDirectionRequest(): DirectionRequest {
|
||||||
|
return DirectionRequest.BuilderDirectionRequest(
|
||||||
|
DirectionRequest.Command.fromIntToCommand(RandomGen.rnd.nextInt(4))
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvDirectionRequest(): Direction.DirectionRequest {
|
||||||
|
return Direction.DirectionRequest.newBuilder()
|
||||||
|
.setCommandValue(RandomGen.rnd.nextInt(4)
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareDirectionRequests(kt: DirectionRequest, jv: Direction.DirectionRequest): Boolean {
|
||||||
|
return kt.command.id == jv.command.number
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
|
||||||
|
fun KtToJavaOnce() {
|
||||||
|
val kt = generateKtDirectionRequest()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = Direction.DirectionRequest.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareDirectionRequests(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun KtToJava() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
KtToJavaOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvDirectionRequest()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = generateKtDirectionRequest()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareDirectionRequests(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKT() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
JavaToKtOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
KtToJava()
|
||||||
|
JavaToKT()
|
||||||
|
}
|
||||||
|
}
|
||||||
+85
@@ -0,0 +1,85 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.Location
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.LocationResponse
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by user on 8/11/16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
object Location {
|
||||||
|
fun generateKtLocationResponse(): LocationResponse {
|
||||||
|
fun generateKtLocationData(): LocationResponse.LocationData {
|
||||||
|
return LocationResponse.LocationData.BuilderLocationData(
|
||||||
|
RandomGen.rnd.nextInt(),
|
||||||
|
RandomGen.rnd.nextInt(),
|
||||||
|
RandomGen.rnd.nextInt()
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
return LocationResponse.BuilderLocationResponse(
|
||||||
|
generateKtLocationData(),
|
||||||
|
RandomGen.rnd.nextInt(),
|
||||||
|
RandomGen.rnd.nextInt()
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvLocationResponse(): Location.LocationResponse {
|
||||||
|
fun generateJvLocationData(): Location.LocationResponse.LocationData {
|
||||||
|
return java_msg.Location.LocationResponse.LocationData.newBuilder()
|
||||||
|
.setX(RandomGen.rnd.nextInt())
|
||||||
|
.setY(RandomGen.rnd.nextInt())
|
||||||
|
.setAngle(RandomGen.rnd.nextInt())
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
return java_msg.Location.LocationResponse.newBuilder()
|
||||||
|
.setLocationResponseData(generateJvLocationData())
|
||||||
|
.setCode(RandomGen.rnd.nextInt())
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareLocationResponses(kt: LocationResponse, jv: Location.LocationResponse): Boolean {
|
||||||
|
fun compareLocationDatas(kt: LocationResponse.LocationData, jv: Location.LocationResponse.LocationData): Boolean {
|
||||||
|
return kt.x == jv.x && kt.y == jv.y && kt.angle == jv.angle
|
||||||
|
}
|
||||||
|
|
||||||
|
return kt.code == jv.code && compareLocationDatas(kt.locationResponseData, jv.locationResponseData)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnce() {
|
||||||
|
val kt = generateKtLocationResponse()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = java_msg.Location.LocationResponse.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareLocationResponses(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvLocationResponse()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = LocationResponse.BuilderLocationResponse(LocationResponse.LocationData.BuilderLocationData(0, 0, 0).build(), 0, 0).build()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareLocationResponses(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
ktToJavaOnce()
|
||||||
|
JavaToKtOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+76
@@ -0,0 +1,76 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.MultipleMessages
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.FirstMessage
|
||||||
|
import main.kotlin.SecondMessage
|
||||||
|
import main.kotlin.ThirdMessage
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by user on 8/11/16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
object MultipleMessagesTest {
|
||||||
|
fun generateKtFirstMessage(): FirstMessage {
|
||||||
|
return FirstMessage.BuilderFirstMessage(RandomGen.rnd.nextInt()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateKtSecondMessage(): SecondMessage {
|
||||||
|
return SecondMessage.BuilderSecondMessage(generateKtFirstMessage()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateKtThirdMessage(): ThirdMessage {
|
||||||
|
return ThirdMessage.BuilderThirdMessage(generateKtSecondMessage()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvFirstMessage(): MultipleMessages.FirstMessage {
|
||||||
|
return MultipleMessages.FirstMessage.newBuilder().setIntField(RandomGen.rnd.nextInt()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvSecondMessage(): MultipleMessages.SecondMessage {
|
||||||
|
return MultipleMessages.SecondMessage.newBuilder().setFirstMsg(generateJvFirstMessage()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvThirdMessage(): MultipleMessages.ThirdMessage {
|
||||||
|
return MultipleMessages.ThirdMessage.newBuilder().setSecondMsg(generateJvSecondMessage()).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareThirdMessages(kt: ThirdMessage, jv: MultipleMessages.ThirdMessage): Boolean {
|
||||||
|
return kt.second_msg.first_msg.int_field == jv.secondMsg.firstMsg.intField
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnce() {
|
||||||
|
val kt = generateKtThirdMessage()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = MultipleMessages.ThirdMessage.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareThirdMessages(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvThirdMessage()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = ThirdMessage.BuilderThirdMessage(SecondMessage.BuilderSecondMessage(FirstMessage.BuilderFirstMessage(0).build()).build()).build()
|
||||||
|
kt.mergeFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareThirdMessages(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
ktToJavaOnce()
|
||||||
|
JavaToKtOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
object RandomGen {
|
||||||
|
val rnd = Random(42);
|
||||||
|
}
|
||||||
+92
@@ -0,0 +1,92 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.RepeatedVarints
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.MessageRepeatedVarints
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by user on 8/12/16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
object RepeatedVarintsTest {
|
||||||
|
fun generateKtRepeatedVarints(): MessageRepeatedVarints {
|
||||||
|
val int = Util.generateIntArray()
|
||||||
|
val long = Util.generateLongArray()
|
||||||
|
val sint = Util.generateIntArray()
|
||||||
|
val slong = Util.generateLongArray()
|
||||||
|
val bool = Util.generateBoolArray()
|
||||||
|
val uint = Util.generateIntArray()
|
||||||
|
val ulong = Util.generateLongArray()
|
||||||
|
|
||||||
|
return MessageRepeatedVarints.BuilderMessageRepeatedVarints(
|
||||||
|
int, long, sint, slong, bool, uint, ulong
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvRepeatedVarints(): RepeatedVarints.MessageRepeatedVarints {
|
||||||
|
val int = Util.generateIntArray()
|
||||||
|
val long = Util.generateLongArray()
|
||||||
|
val sint = Util.generateIntArray()
|
||||||
|
val slong = Util.generateLongArray()
|
||||||
|
val bool = Util.generateBoolArray()
|
||||||
|
val uint = Util.generateIntArray()
|
||||||
|
val ulong = Util.generateLongArray()
|
||||||
|
|
||||||
|
return RepeatedVarints.MessageRepeatedVarints.newBuilder()
|
||||||
|
.addAllInt(int.asIterable())
|
||||||
|
.addAllLong(long.asIterable())
|
||||||
|
.addAllSint(sint.asIterable())
|
||||||
|
.addAllSlong(slong.asIterable())
|
||||||
|
.addAllBl(bool.asIterable())
|
||||||
|
.addAllUint(uint.asIterable())
|
||||||
|
.addAllUlong(ulong.asIterable())
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareRepeatedVarints(kt: MessageRepeatedVarints, jv: RepeatedVarints.MessageRepeatedVarints): Boolean {
|
||||||
|
return Util.compareArrays(kt.int.asIterable(), jv.intList) &&
|
||||||
|
Util.compareArrays(kt.long.asIterable(), jv.longList) &&
|
||||||
|
Util.compareArrays(kt.sint.asIterable(), jv.sintList) &&
|
||||||
|
Util.compareArrays(kt.slong.asIterable(), jv.slongList) &&
|
||||||
|
Util.compareArrays(kt.bl.asIterable(), jv.blList) &&
|
||||||
|
Util.compareArrays(kt.uint.asIterable(), jv.uintList) &&
|
||||||
|
Util.compareArrays(kt.ulong.asIterable(), jv.ulongList)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnce() {
|
||||||
|
val kt = generateKtRepeatedVarints()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = RepeatedVarints.MessageRepeatedVarints.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareRepeatedVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateJvRepeatedVarints()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageRepeatedVarints.BuilderMessageRepeatedVarints(
|
||||||
|
IntArray(0), LongArray(0), IntArray(0), LongArray(0), BooleanArray(0), IntArray(0), LongArray(0)
|
||||||
|
).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareRepeatedVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
ktToJavaOnce()
|
||||||
|
jvToKtOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+66
@@ -0,0 +1,66 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.RepeatedZigzag
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.MessageRepeatedZigZag
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by user on 8/12/16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
object RepeatedZigZag {
|
||||||
|
fun generateKtRepeatedZigZag(): MessageRepeatedZigZag {
|
||||||
|
val int = Util.generateIntArray()
|
||||||
|
val long = Util.generateLongArray()
|
||||||
|
return MessageRepeatedZigZag.BuilderMessageRepeatedZigZag(int, long).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvRepatedZigZag(): RepeatedZigzag.MessageRepeatedZigZag {
|
||||||
|
val int = Util.generateIntArray()
|
||||||
|
val long = Util.generateLongArray()
|
||||||
|
return RepeatedZigzag.MessageRepeatedZigZag.newBuilder()
|
||||||
|
.addAllInt(int.asIterable())
|
||||||
|
.addAllLong(long.asIterable())
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareRepeatedZigZags(kt: MessageRepeatedZigZag, jv: RepeatedZigzag.MessageRepeatedZigZag): Boolean {
|
||||||
|
return Util.compareArrays(kt.int.asIterable(), jv.intList) &&
|
||||||
|
Util.compareArrays(kt.long.asIterable(), jv.longList);
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnce() {
|
||||||
|
val kt = generateKtRepeatedZigZag()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = RepeatedZigzag.MessageRepeatedZigZag.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareRepeatedZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateJvRepatedZigZag()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageRepeatedZigZag.BuilderMessageRepeatedZigZag(IntArray(0), LongArray(0)).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareRepeatedZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
ktToJavaOnce()
|
||||||
|
jvToKtOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+138
@@ -0,0 +1,138 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.RepeatedZigzag
|
||||||
|
import java_msg.TagOrderOuterClass
|
||||||
|
import java_msg.TagOrderShuffledOuterClass
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.TagOrder
|
||||||
|
import main.kotlin.TagOrderShuffled
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
object TagOrderTests {
|
||||||
|
fun generateKtTag(): TagOrder {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val slong_array = Util.generateLongArray()
|
||||||
|
val sint = RandomGen.rnd.nextInt()
|
||||||
|
val enum = TagOrder.Enum.fromIntToEnum(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return TagOrder.BuilderTagOrder(int, sint, slong_array, enum).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateKtTagShuffled(): TagOrderShuffled {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val slong_array = Util.generateLongArray()
|
||||||
|
val sint = RandomGen.rnd.nextInt()
|
||||||
|
val enum = TagOrderShuffled.Enum.fromIntToEnum(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return TagOrderShuffled.BuilderTagOrderShuffled(int, sint, slong_array, enum).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvTag(): TagOrderOuterClass.TagOrder {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val slong_array = Util.generateLongArray()
|
||||||
|
val sint = RandomGen.rnd.nextInt()
|
||||||
|
val enum = TagOrderOuterClass.TagOrder.Enum.forNumber(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return TagOrderOuterClass.TagOrder.newBuilder()
|
||||||
|
.setInt(int)
|
||||||
|
.addAllSlongArray(slong_array.asIterable())
|
||||||
|
.setSint(int)
|
||||||
|
.setEnumField(enum)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvTagShuffled(): TagOrderShuffledOuterClass.TagOrderShuffled {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val slong_array = Util.generateLongArray()
|
||||||
|
val sint = RandomGen.rnd.nextInt()
|
||||||
|
val enum = TagOrderShuffledOuterClass.TagOrderShuffled.Enum.forNumber(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return TagOrderShuffledOuterClass.TagOrderShuffled.newBuilder()
|
||||||
|
.setInt(int)
|
||||||
|
.addAllSlongArray(slong_array.asIterable())
|
||||||
|
.setSint(int)
|
||||||
|
.setEnumField(enum)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareTagAndShuffledTag(kt: TagOrder, jv: TagOrderShuffledOuterClass.TagOrderShuffled): Boolean {
|
||||||
|
return kt.enum_field.id == jv.enumField.number &&
|
||||||
|
kt.int == jv.int &&
|
||||||
|
kt.sint == jv.sint &&
|
||||||
|
Util.compareArrays(kt.slong_array.asIterable(), jv.slongArrayList)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareShuffledAndTag(kt: TagOrderShuffled, jv: TagOrderOuterClass.TagOrder): Boolean {
|
||||||
|
return kt.enum_field.id == jv.enumField.number &&
|
||||||
|
kt.int == jv.int &&
|
||||||
|
kt.sint == jv.sint &&
|
||||||
|
Util.compareArrays(kt.slong_array.asIterable(), jv.slongArrayList)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvTagToKtShuffledOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvTag()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = TagOrderShuffled.BuilderTagOrderShuffled(
|
||||||
|
0, 0, LongArray(0), TagOrderShuffled.Enum.first_val
|
||||||
|
).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareShuffledAndTag(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvShuffledToKtTagOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(100000)
|
||||||
|
|
||||||
|
val jv = generateJvTagShuffled()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = TagOrder.BuilderTagOrder(
|
||||||
|
0, 0, LongArray(0), TagOrder.Enum.first_val
|
||||||
|
).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareTagAndShuffledTag(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktTagToJvShuffled() {
|
||||||
|
val kt = generateKtTag()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = TagOrderShuffledOuterClass.TagOrderShuffled.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareTagAndShuffledTag(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktShuffledToJvTag() {
|
||||||
|
val kt = generateKtTagShuffled()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = TagOrderOuterClass.TagOrder.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareShuffledAndTag(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
// kt -> java
|
||||||
|
ktShuffledToJvTag()
|
||||||
|
ktTagToJvShuffled()
|
||||||
|
|
||||||
|
// java -> kt
|
||||||
|
jvShuffledToKtTagOnce()
|
||||||
|
jvTagToKtShuffledOnce()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
import java.io.InputStream
|
||||||
|
import java.io.OutputStream
|
||||||
|
import java.util.concurrent.locks.Condition
|
||||||
|
import kotlin.system.exitProcess
|
||||||
|
|
||||||
|
object Util {
|
||||||
|
var ARRAY_MAX_SIZE = 1000
|
||||||
|
|
||||||
|
fun assert(condition: Boolean) {
|
||||||
|
if (!condition) {
|
||||||
|
println("Assertion failed")
|
||||||
|
exitProcess(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T> compareArrays (lhs: Iterable<T>, rhs: Iterable<T>): Boolean {
|
||||||
|
return lhs.count() == rhs.count() && lhs.filter { !rhs.contains(it) }.isEmpty()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getKtInputStream(): main.kotlin.CodedInputStream {
|
||||||
|
val ba = ByteArray(100000)
|
||||||
|
val ins = main.kotlin.CodedInputStream(ba)
|
||||||
|
return ins
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getKtOutputStream(size: Int): main.kotlin.CodedOutputStream {
|
||||||
|
val ba = ByteArray(size)
|
||||||
|
val outs = main.kotlin.CodedOutputStream(ba)
|
||||||
|
return outs
|
||||||
|
}
|
||||||
|
|
||||||
|
fun KtOutputStreamToInputStream(kt: main.kotlin.CodedOutputStream): InputStream {
|
||||||
|
return kt.buffer.inputStream()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun KtInputStreamToOutputStream(kt: main.kotlin.CodedInputStream): OutputStream {
|
||||||
|
val baos = ByteArrayOutputStream(kt.buffer.size)
|
||||||
|
return baos
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateIntArray(): IntArray {
|
||||||
|
val size = RandomGen.rnd.nextInt(ARRAY_MAX_SIZE)
|
||||||
|
val arr = IntArray(size)
|
||||||
|
for (i in 0..(size - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextInt()
|
||||||
|
}
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateLongArray(): LongArray {
|
||||||
|
val size = RandomGen.rnd.nextInt(ARRAY_MAX_SIZE)
|
||||||
|
val arr = LongArray(size)
|
||||||
|
for (i in 0..(size - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextLong()
|
||||||
|
}
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateBoolArray(): BooleanArray {
|
||||||
|
val size = RandomGen.rnd.nextInt(ARRAY_MAX_SIZE)
|
||||||
|
val arr = BooleanArray(size)
|
||||||
|
for (i in 0..(size - 1)) {
|
||||||
|
arr[i] = RandomGen.rnd.nextBoolean()
|
||||||
|
}
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
}
|
||||||
+224
@@ -0,0 +1,224 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.Varints
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.MessageVarints
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
object VarintsTest {
|
||||||
|
fun generateKtVarint(): MessageVarints {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val long = RandomGen.rnd.nextLong()
|
||||||
|
val sint = RandomGen.rnd.nextInt()
|
||||||
|
val slong = RandomGen.rnd.nextLong()
|
||||||
|
val bl = RandomGen.rnd.nextBoolean()
|
||||||
|
val uint = RandomGen.rnd.nextInt()
|
||||||
|
val ulong = RandomGen.rnd.nextLong()
|
||||||
|
val enum = MessageVarints.TestEnum.fromIntToTestEnum(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return MessageVarints.BuilderMessageVarints(
|
||||||
|
int, long, sint, slong, bl, enum, uint, ulong
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMaxKtVarint(): MessageVarints {
|
||||||
|
val int = Int.MAX_VALUE
|
||||||
|
val long = Long.MAX_VALUE
|
||||||
|
val sint = Int.MAX_VALUE
|
||||||
|
val slong = Long.MAX_VALUE
|
||||||
|
val bl = false
|
||||||
|
val uint = Int.MAX_VALUE
|
||||||
|
val ulong = Long.MAX_VALUE
|
||||||
|
val enum = MessageVarints.TestEnum.fromIntToTestEnum(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return MessageVarints.BuilderMessageVarints(
|
||||||
|
int, long, sint, slong, bl, enum, uint, ulong
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMinKtVarint(): MessageVarints {
|
||||||
|
val int = Int.MIN_VALUE
|
||||||
|
val long = Long.MIN_VALUE
|
||||||
|
val sint = Int.MIN_VALUE
|
||||||
|
val slong = Long.MIN_VALUE
|
||||||
|
val uint = Int.MIN_VALUE
|
||||||
|
val ulong = Long.MIN_VALUE
|
||||||
|
val bl = false
|
||||||
|
val enum = MessageVarints.TestEnum.fromIntToTestEnum(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return MessageVarints.BuilderMessageVarints(
|
||||||
|
int, long, sint, slong, bl, enum, uint, ulong
|
||||||
|
).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvVarint(): Varints.MessageVarints {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val long = RandomGen.rnd.nextLong()
|
||||||
|
val sint = RandomGen.rnd.nextInt()
|
||||||
|
val slong = RandomGen.rnd.nextLong()
|
||||||
|
val bl = RandomGen.rnd.nextBoolean()
|
||||||
|
val uint = RandomGen.rnd.nextInt()
|
||||||
|
val ulong = RandomGen.rnd.nextLong()
|
||||||
|
val enum = Varints.MessageVarints.TestEnum.forNumber(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return Varints.MessageVarints.newBuilder()
|
||||||
|
.setInt(int)
|
||||||
|
.setLong(long)
|
||||||
|
.setSint(sint)
|
||||||
|
.setSlong(slong)
|
||||||
|
.setBl(bl)
|
||||||
|
.setUint(uint)
|
||||||
|
.setUlong(ulong)
|
||||||
|
.setEnumField(enum)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMaxJvVarint(): Varints.MessageVarints {
|
||||||
|
val int = Int.MAX_VALUE
|
||||||
|
val long = Long.MAX_VALUE
|
||||||
|
val sint = Int.MAX_VALUE
|
||||||
|
val slong = Long.MAX_VALUE
|
||||||
|
val bl = false
|
||||||
|
val uint = Int.MAX_VALUE
|
||||||
|
val ulong = Long.MAX_VALUE
|
||||||
|
val enum = Varints.MessageVarints.TestEnum.forNumber(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return Varints.MessageVarints.newBuilder()
|
||||||
|
.setInt(int)
|
||||||
|
.setLong(long)
|
||||||
|
.setSint(sint)
|
||||||
|
.setSlong(slong)
|
||||||
|
.setBl(bl)
|
||||||
|
.setUint(uint)
|
||||||
|
.setUlong(ulong)
|
||||||
|
.setEnumField(enum)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMinJvVarint(): Varints.MessageVarints {
|
||||||
|
val int = Int.MIN_VALUE
|
||||||
|
val long = Long.MIN_VALUE
|
||||||
|
val sint = Int.MIN_VALUE
|
||||||
|
val slong = Long.MIN_VALUE
|
||||||
|
val uint = Int.MIN_VALUE
|
||||||
|
val ulong = Long.MIN_VALUE
|
||||||
|
val bl = false
|
||||||
|
val enum = Varints.MessageVarints.TestEnum.forNumber(RandomGen.rnd.nextInt(2))
|
||||||
|
|
||||||
|
return Varints.MessageVarints.newBuilder()
|
||||||
|
.setInt(int)
|
||||||
|
.setLong(long)
|
||||||
|
.setSint(sint)
|
||||||
|
.setSlong(slong)
|
||||||
|
.setBl(bl)
|
||||||
|
.setUint(uint)
|
||||||
|
.setUlong(ulong)
|
||||||
|
.setEnumField(enum)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareVarints(kt: MessageVarints, jv: Varints.MessageVarints): Boolean {
|
||||||
|
return kt.int == jv.int &&
|
||||||
|
kt.long == jv.long &&
|
||||||
|
kt.sint == jv.sint &&
|
||||||
|
kt.slong == jv.slong &&
|
||||||
|
kt.bl == jv.bl &&
|
||||||
|
kt.uint == jv.uint &&
|
||||||
|
kt.ulong == jv.ulong &&
|
||||||
|
kt.enumField.id == jv.enumField.number
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnce() {
|
||||||
|
val kt = generateKtVarint()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = Varints.MessageVarints.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateJvVarint()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageVarints.BuilderMessageVarints(
|
||||||
|
0, 0, 0, 0, false, MessageVarints.TestEnum.firstVal, 0, 0
|
||||||
|
).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnceMaxValues() {
|
||||||
|
val kt = generateMaxKtVarint()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = Varints.MessageVarints.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnceMinValues() {
|
||||||
|
val kt = generateMinKtVarint()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = Varints.MessageVarints.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnceMaxValues() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateMaxJvVarint()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageVarints.BuilderMessageVarints(
|
||||||
|
0, 0, 0, 0, false, MessageVarints.TestEnum.firstVal, 0, 0
|
||||||
|
).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnceMinValues() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateMinJvVarint()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageVarints.BuilderMessageVarints(
|
||||||
|
0, 0, 0, 0, false, MessageVarints.TestEnum.firstVal, 0, 0
|
||||||
|
).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareVarints(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
ktToJavaOnce()
|
||||||
|
jvToKtOnce()
|
||||||
|
|
||||||
|
ktToJavaOnceMaxValues()
|
||||||
|
jvToKtOnceMaxValues()
|
||||||
|
|
||||||
|
ktToJavaOnceMinValues()
|
||||||
|
jvToKtOnceMinValues()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+144
@@ -0,0 +1,144 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.Zigzag
|
||||||
|
import main.kotlin.CodedInputStream
|
||||||
|
import main.kotlin.MessageZigZag
|
||||||
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
object ZigZagTests {
|
||||||
|
fun generateKtZigZag(): MessageZigZag {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val long = RandomGen.rnd.nextLong()
|
||||||
|
|
||||||
|
return MessageZigZag.BuilderMessageZigZag(int, long).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMaxKtZigZag(): MessageZigZag {
|
||||||
|
val int = Int.MAX_VALUE
|
||||||
|
val long = Long.MAX_VALUE
|
||||||
|
|
||||||
|
return MessageZigZag.BuilderMessageZigZag(int, long).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMinKtZigZag(): MessageZigZag {
|
||||||
|
val int = Int.MIN_VALUE
|
||||||
|
val long = Long.MIN_VALUE
|
||||||
|
|
||||||
|
return MessageZigZag.BuilderMessageZigZag(int, long).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateJvZigZag(): Zigzag.MessageZigZag {
|
||||||
|
val int = RandomGen.rnd.nextInt()
|
||||||
|
val long = RandomGen.rnd.nextLong()
|
||||||
|
|
||||||
|
return Zigzag.MessageZigZag.newBuilder().setInt(int).setLong(long).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMaxJvZigZag(): Zigzag.MessageZigZag {
|
||||||
|
val int = Int.MAX_VALUE
|
||||||
|
val long = Long.MAX_VALUE
|
||||||
|
|
||||||
|
return Zigzag.MessageZigZag.newBuilder().setInt(int).setLong(long).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateMinJvZigZag(): Zigzag.MessageZigZag {
|
||||||
|
val int = Int.MIN_VALUE
|
||||||
|
val long = Long.MIN_VALUE
|
||||||
|
|
||||||
|
return Zigzag.MessageZigZag.newBuilder().setInt(int).setLong(long).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun compareZigZags(kt: MessageZigZag, jv: Zigzag.MessageZigZag): Boolean {
|
||||||
|
return kt.int == jv.int && kt.long == jv.long;
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnce() {
|
||||||
|
val kt = generateKtZigZag()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = Zigzag.MessageZigZag.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnceMaxValues() {
|
||||||
|
val kt = generateMaxKtZigZag()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = Zigzag.MessageZigZag.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ktToJavaOnceMinValues() {
|
||||||
|
val kt = generateMinKtZigZag()
|
||||||
|
val outs = Util.getKtOutputStream(kt.getSizeNoTag())
|
||||||
|
kt.writeTo(outs)
|
||||||
|
|
||||||
|
val ins = Util.KtOutputStreamToInputStream(outs)
|
||||||
|
val jv = Zigzag.MessageZigZag.parseFrom(ins)
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnce() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateJvZigZag()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageZigZag.BuilderMessageZigZag(0, 0L).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnceMaxValues() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateMaxJvZigZag()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageZigZag.BuilderMessageZigZag(0, 0L).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun jvToKtOnceMinValues() {
|
||||||
|
val outs = ByteArrayOutputStream(10000000)
|
||||||
|
|
||||||
|
val jv = generateMaxJvZigZag()
|
||||||
|
jv.writeTo(outs)
|
||||||
|
val ins = CodedInputStream(outs.toByteArray())
|
||||||
|
val kt = MessageZigZag.BuilderMessageZigZag(0, 0L).parseFrom(ins).build()
|
||||||
|
|
||||||
|
Util.assert(kt.errorCode == 0)
|
||||||
|
Util.assert(compareZigZags(kt, jv))
|
||||||
|
}
|
||||||
|
|
||||||
|
val testRuns = 1000
|
||||||
|
|
||||||
|
fun runTests() {
|
||||||
|
for (i in 0..testRuns) {
|
||||||
|
// random values
|
||||||
|
jvToKtOnce()
|
||||||
|
ktToJavaOnce()
|
||||||
|
|
||||||
|
// max values
|
||||||
|
jvToKtOnceMaxValues()
|
||||||
|
ktToJavaOnceMaxValues()
|
||||||
|
|
||||||
|
// min values
|
||||||
|
jvToKtOnceMinValues()
|
||||||
|
ktToJavaOnceMinValues()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
package tests
|
||||||
|
|
||||||
|
import java_msg.Varints
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by user on 8/11/16.
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
print("Base-Extended tests...")
|
||||||
|
BaseExtendedTest.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Connect Tests...")
|
||||||
|
ConnectTest.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Cross-branch access tests...")
|
||||||
|
CrossBranchTest.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Direction Tests...")
|
||||||
|
DirectionTest.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Location Tests...")
|
||||||
|
Location.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Multiple Messages Tests...")
|
||||||
|
MultipleMessagesTest.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Repeated VarInts Tests...")
|
||||||
|
RepeatedVarintsTest.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Repeated ZigZag Tests...")
|
||||||
|
RepeatedZigZag.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Tag order Tests...")
|
||||||
|
TagOrderTests.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("Varints Tests...")
|
||||||
|
VarintsTest.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
|
||||||
|
print("ZigZag Tests...")
|
||||||
|
ZigZagTests.runTests()
|
||||||
|
println(" OK!")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user