Port over ENT changes (#4706)

Port of commit 9b55ad2680
This commit is contained in:
Shams Asari 2019-02-01 18:10:10 +00:00 committed by GitHub
parent c39c61ecab
commit c667df9bec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 6 deletions

View File

@ -22,6 +22,7 @@ import net.corda.testing.node.internal.enclosedCordapp
import org.assertj.core.api.Assertions.assertThat
import org.junit.Test
import java.nio.file.Path
import kotlin.streams.toList
import kotlin.test.assertFailsWith
// TraderDemoTest already has a test which checks the node can resume a flow from a checkpoint
@ -48,9 +49,6 @@ class FlowCheckpointVersionNodeStartupCheckTest {
CheckpointIncompatibleException.CordappNotInstalledException(ReceiverFlow::class.java.name).message
)
// Clean-up
stdOutLogFile(BOB_NAME).let { it.renameTo("${it.fileName}-no-cordapp") }
// Now test the scenerio where the CorDapp's hash is different but the flow exists within the jar
val modifiedCordapp = defaultCordapp.copy(name = "${defaultCordapp.name}-modified")
assertThat(defaultCordapp.jarFile.hash).isNotEqualTo(modifiedCordapp.jarFile.hash) // Just double-check the hashes are different
@ -90,7 +88,10 @@ class FlowCheckpointVersionNodeStartupCheckTest {
}
private fun DriverDSL.stdOutLogFile(name: CordaX500Name): Path {
return baseDirectory(name).list { it.filter { it.toString().endsWith("stdout.log") }.findAny().get() }
return baseDirectory(name)
.list { it.filter { it.toString().endsWith("stdout.log") }.toList() }
.sortedBy { it.attributes().creationTime() }
.last()
}
@InitiatingFlow

View File

@ -3,6 +3,8 @@ package net.corda.testing.node.internal
import net.corda.core.internal.div
import java.io.File
import java.nio.file.Path
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
object ProcessUtilities {
inline fun <reified C : Any> startJavaProcess(
@ -38,8 +40,11 @@ object ProcessUtilities {
inheritIO()
environment()["CLASSPATH"] = classPath.joinToString(File.pathSeparator)
if (workingDirectory != null) {
redirectError((workingDirectory / "$className.stderr.log").toFile())
redirectOutput((workingDirectory / "$className.stdout.log").toFile())
// Timestamp may be handy if the same process started, killed and then re-started. Without timestamp
// StdOut and StdErr will be overwritten.
val timestamp = ZonedDateTime.now().format(DateTimeFormatter.ofPattern("HHmmss.SSS"))
redirectError((workingDirectory / "$className.$timestamp.stderr.log").toFile())
redirectOutput((workingDirectory / "$className.$timestamp.stdout.log").toFile())
directory(workingDirectory.toFile())
}
}.start()