mirror of
https://github.com/corda/corda.git
synced 2024-12-20 05:28:21 +00:00
parent
c39c61ecab
commit
c667df9bec
@ -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
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user