Fix script tests with output capture

This commit is contained in:
Ilya Chernikov
2016-09-22 22:33:08 +02:00
parent 439622187f
commit 759f6f3ded
3 changed files with 20 additions and 16 deletions
@@ -55,7 +55,7 @@ class ScriptTemplateTest {
val out = captureOut {
aClass!!.getConstructor(Integer.TYPE).newInstance(4)
}
Assert.assertEquals(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
assertEqualsTrimmed(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
}
@Test
@@ -65,7 +65,7 @@ class ScriptTemplateTest {
val out = captureOut {
aClass!!.getConstructor(TestParamClass::class.java).newInstance(TestParamClass(4))
}
Assert.assertEquals(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
assertEqualsTrimmed(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
}
@Test
@@ -75,7 +75,7 @@ class ScriptTemplateTest {
val out = captureOut {
aClass!!.getConstructor(Integer.TYPE, Integer.TYPE).newInstance(4, 1)
}
Assert.assertEquals(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
assertEqualsTrimmed(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
}
@Test
@@ -87,7 +87,7 @@ class ScriptTemplateTest {
val out = captureOut {
aClass!!.getConstructor(Integer.TYPE).newInstance(4)
}
Assert.assertEquals(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
assertEqualsTrimmed(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
}
@Test
@@ -99,7 +99,7 @@ class ScriptTemplateTest {
val out = captureOut {
aClass!!.getConstructor(Integer.TYPE).newInstance(4)
}
Assert.assertEquals(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
assertEqualsTrimmed(NUM_4_LINE + FIB_SCRIPT_OUTPUT_TAIL, out)
}
@Test
@@ -109,7 +109,7 @@ class ScriptTemplateTest {
val out = captureOut {
aClass!!.getConstructor(Integer.TYPE).newInstance(4)
}
Assert.assertEquals("10\n", out)
assertEqualsTrimmed("10", out)
}
@Test
@@ -119,7 +119,7 @@ class ScriptTemplateTest {
val out = captureOut {
aClass!!.getConstructor(Integer.TYPE).newInstance(4)
}
Assert.assertEquals("14\n", out)
assertEqualsTrimmed("14", out)
}
@Test
@@ -129,7 +129,7 @@ class ScriptTemplateTest {
captureOut {
aClass!!.getConstructor(Array<String>::class.java).newInstance(arrayOf("one", "two"))
}.let {
Assert.assertEquals("one and two\n", it)
assertEqualsTrimmed("one and two", it)
}
}
@@ -140,7 +140,7 @@ class ScriptTemplateTest {
captureOut {
aClass!!.getConstructor(Int::class.javaObjectType).newInstance(null)
}.let {
Assert.assertEquals("Param is null\n", it)
assertEqualsTrimmed("Param is null", it)
}
}
@@ -151,7 +151,7 @@ class ScriptTemplateTest {
captureOut {
aClass!!.getConstructor(Array<in Number>::class.java, Array<out Number>::class.java).newInstance(arrayOf("one"), arrayOf(1, 2))
}.let {
Assert.assertEquals("one and 1\n", it)
assertEqualsTrimmed("one and 1", it)
}
}
@@ -162,7 +162,7 @@ class ScriptTemplateTest {
captureOut {
aClass!!.getConstructor(Array<String>::class.java).newInstance(arrayOf<String?>(null))
}.let {
Assert.assertEquals("nullable\n", it)
assertEqualsTrimmed("nullable", it)
}
}
@@ -173,7 +173,7 @@ class ScriptTemplateTest {
captureOut {
aClass!!.getConstructor(Array<Array<in String>>::class.java).newInstance(arrayOf(arrayOf("one"), arrayOf("two")))
}.let {
Assert.assertEquals("first: one, size: 1\n", it)
assertEqualsTrimmed("first: one, size: 1", it)
}
}
@@ -47,7 +47,7 @@ class ScriptTest : KtUsefulTestCase() {
val anObj = tryConstructScriptClass(aClass!!, listOf("4", "comment"))
Assert.assertNotNull(anObj)
}
Assert.assertEquals(NUM_4_LINE + " (comment)" + FIB_SCRIPT_OUTPUT_TAIL, out)
assertEqualsTrimmed(NUM_4_LINE + " (comment)" + FIB_SCRIPT_OUTPUT_TAIL, out)
}
@Test
@@ -58,7 +58,7 @@ class ScriptTest : KtUsefulTestCase() {
val anObj = tryConstructScriptClass(aClass!!, emptyList())
Assert.assertNotNull(anObj)
}
Assert.assertEquals(NUM_4_LINE + " (none)" + FIB_SCRIPT_OUTPUT_TAIL, out)
assertEqualsTrimmed(NUM_4_LINE + " (none)" + FIB_SCRIPT_OUTPUT_TAIL, out)
}
@Test
@@ -71,7 +71,7 @@ class ScriptTest : KtUsefulTestCase() {
val anObj = tryConstructScriptClass(aClass!!, emptyList())
Assert.assertNotNull(anObj)
}
Assert.assertEquals(NUM_4_LINE + " (none)" + FIB_SCRIPT_OUTPUT_TAIL, out1)
assertEqualsTrimmed(NUM_4_LINE + " (none)" + FIB_SCRIPT_OUTPUT_TAIL, out1)
val savedClassLoader = URLClassLoader(arrayOf(tmpdir.toURI().toURL()), aClass!!.classLoader)
val aClassSaved = savedClassLoader.loadClass(aClass.name)
Assert.assertNotNull(aClassSaved)
@@ -79,7 +79,7 @@ class ScriptTest : KtUsefulTestCase() {
val anObjSaved = tryConstructScriptClass(aClassSaved!!, emptyList())
Assert.assertNotNull(anObjSaved)
}
Assert.assertEquals(NUM_4_LINE + " (none)" + FIB_SCRIPT_OUTPUT_TAIL, out2)
assertEqualsTrimmed(NUM_4_LINE + " (none)" + FIB_SCRIPT_OUTPUT_TAIL, out2)
}
private fun compileScript(
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.scripts
import org.junit.Assert
import java.io.ByteArrayOutputStream
import java.io.PrintStream
@@ -43,3 +44,6 @@ internal fun captureOut(body: () -> Unit): String {
System.setOut(prevOut)
return outStream.toString()
}
internal fun assertEqualsTrimmed(expected: String, actual: String) =
Assert.assertEquals(expected.trim(), actual.trim())