diff --git a/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt b/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt deleted file mode 100644 index 3834f9efaf..0000000000 --- a/node/src/integration-test/kotlin/net/corda/node/NodePerformanceTests.kt +++ /dev/null @@ -1,117 +0,0 @@ -package net.corda.node - -import co.paralleluniverse.fibers.Suspendable -import com.google.common.base.Stopwatch -import net.corda.client.rpc.CordaRPCClient -import net.corda.core.flows.FlowLogic -import net.corda.core.flows.StartableByRPC -import net.corda.core.internal.concurrent.transpose -import net.corda.core.messaging.startFlow -import net.corda.core.utilities.OpaqueBytes -import net.corda.core.utilities.getOrThrow -import net.corda.core.utilities.minutes -import net.corda.finance.DOLLARS -import net.corda.finance.flows.CashIssueFlow -import net.corda.finance.flows.CashPaymentFlow -import net.corda.node.services.Permissions.Companion.startFlow -import net.corda.testing.core.DUMMY_NOTARY_NAME -import net.corda.testing.driver.DriverParameters -import net.corda.testing.driver.InProcess -import net.corda.testing.driver.driver -import net.corda.testing.driver.internal.internalServices -import net.corda.testing.internal.performance.div -import net.corda.testing.node.NotarySpec -import net.corda.testing.node.User -import net.corda.testing.node.internal.DriverDSLImpl.Companion.cordappsInCurrentAndAdditionalPackages -import net.corda.testing.node.internal.internalDriver -import net.corda.testing.node.internal.performance.startPublishingFixedRateInjector -import net.corda.testing.node.internal.performance.startReporter -import net.corda.testing.node.internal.performance.startTightLoopInjector -import org.junit.Ignore -import org.junit.Test -import java.util.* -import java.util.concurrent.TimeUnit -import kotlin.streams.toList - -@Ignore("Run these locally") -class NodePerformanceTests { - @StartableByRPC - class EmptyFlow : FlowLogic() { - @Suspendable - override fun call() { - } - } - - private data class FlowMeasurementResult( - val flowPerSecond: Double, - val averageMs: Double - ) - - @Test - fun `empty flow per second`() { - driver(DriverParameters(startNodesInProcess = true)) { - val a = startNode(rpcUsers = listOf(User("A", "A", setOf(startFlow())))).get() - - CordaRPCClient(a.rpcAddress).use("A", "A") { connection -> - val timings = Collections.synchronizedList(ArrayList()) - val N = 10000 - val overallTiming = Stopwatch.createStarted().apply { - startTightLoopInjector( - parallelism = 8, - numberOfInjections = N, - queueBound = 50 - ) { - val timing = Stopwatch.createStarted().apply { - connection.proxy.startFlow(::EmptyFlow).returnValue.get() - }.stop().elapsed(TimeUnit.MICROSECONDS) - timings.add(timing) - } - }.stop().elapsed(TimeUnit.MICROSECONDS) - println( - FlowMeasurementResult( - flowPerSecond = N / (overallTiming * 0.000001), - averageMs = timings.average() * 0.001 - ) - ) - } - } - } - - @Test - fun `empty flow rate`() { - internalDriver(startNodesInProcess = true) { - val a = startNode(rpcUsers = listOf(User("A", "A", setOf(startFlow())))).get() - a as InProcess - val metricRegistry = startReporter(this.shutdownManager, a.internalServices.monitoringService.metrics) - CordaRPCClient(a.rpcAddress).use("A", "A") { connection -> - startPublishingFixedRateInjector(metricRegistry, 8, 5.minutes, 2000L / TimeUnit.SECONDS) { - connection.proxy.startFlow(::EmptyFlow).returnValue.get() - } - } - } - } - - @Test - fun `self pay rate`() { - val user = User("A", "A", setOf(startFlow(), startFlow())) - internalDriver( - notarySpecs = listOf(NotarySpec(DUMMY_NOTARY_NAME, rpcUsers = listOf(user))), - startNodesInProcess = true, - cordappsForAllNodes = cordappsInCurrentAndAdditionalPackages("net.corda.finance") - ) { - val notary = defaultNotaryNode.getOrThrow() as InProcess - val metricRegistry = startReporter(this.shutdownManager, notary.internalServices.monitoringService.metrics) - CordaRPCClient(notary.rpcAddress).use("A", "A") { connection -> - println("ISSUING") - val doneFutures = (1..100).toList().parallelStream().map { - connection.proxy.startFlow(::CashIssueFlow, 1.DOLLARS, OpaqueBytes.of(0), defaultNotaryIdentity).returnValue - }.toList() - doneFutures.transpose().get() - println("STARTING PAYMENT") - startPublishingFixedRateInjector(metricRegistry, 8, 5.minutes, 100L / TimeUnit.SECONDS) { - connection.proxy.startFlow(::CashPaymentFlow, 1.DOLLARS, defaultNotaryIdentity).returnValue.get() - } - } - } - } -} \ No newline at end of file diff --git a/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt index bc0665638a..cd8ba1b84c 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/AttachmentLoadingTests.kt @@ -13,20 +13,12 @@ package net.corda.node.services import com.nhaarman.mockito_kotlin.doReturn import com.nhaarman.mockito_kotlin.whenever import net.corda.core.CordaRuntimeException -import net.corda.core.contracts.Contract -import net.corda.core.contracts.ContractState -import net.corda.core.contracts.PartyAndReference -import net.corda.core.contracts.StateAndRef -import net.corda.core.contracts.StateRef -import net.corda.core.contracts.TransactionState +import net.corda.core.contracts.* import net.corda.core.cordapp.CordappProvider import net.corda.core.flows.FlowLogic import net.corda.core.identity.CordaX500Name import net.corda.core.identity.Party import net.corda.core.internal.concurrent.transpose -import net.corda.core.internal.copyTo -import net.corda.core.internal.createDirectories -import net.corda.core.internal.div import net.corda.core.internal.toLedgerTransaction import net.corda.core.node.NetworkParameters import net.corda.core.node.ServicesForResolution @@ -36,8 +28,8 @@ import net.corda.core.serialization.SerializationFactory import net.corda.core.transactions.TransactionBuilder import net.corda.core.utilities.contextLogger import net.corda.core.utilities.getOrThrow -import net.corda.node.internal.cordapp.CordappLoader import net.corda.node.internal.cordapp.CordappProviderImpl +import net.corda.node.internal.cordapp.JarScanningCordappLoader import net.corda.testing.common.internal.testNetworkParameters import net.corda.testing.core.* import net.corda.testing.driver.DriverDSL @@ -45,6 +37,7 @@ import net.corda.testing.driver.DriverParameters import net.corda.testing.driver.NodeHandle import net.corda.testing.driver.driver import net.corda.testing.internal.* +import net.corda.testing.node.internal.cordappsForPackages import net.corda.testing.services.MockAttachmentStorage import org.junit.Assert.assertEquals import org.junit.ClassRule diff --git a/node/src/integration-test/kotlin/net/corda/node/services/MySQLNotaryServiceTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/MySQLNotaryServiceTests.kt index 48113eed2a..b43a170e41 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/MySQLNotaryServiceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/MySQLNotaryServiceTests.kt @@ -75,7 +75,7 @@ class MySQLNotaryServiceTests : IntegrationTest() { @Before fun before() { - mockNet = InternalMockNetwork(cordappPackages = listOf("net.corda.testing.contracts"), threadPerNode = true) + mockNet = InternalMockNetwork(cordappsForAllNodes = cordappsForPackages("net.corda.testing.contracts"), threadPerNode = true) notaryParty = DevIdentityGenerator.generateDistributedNotarySingularIdentity(listOf(mockNet.baseDirectory(mockNet.nextNodeId)), notaryName) val networkParameters = NetworkParametersCopier(testNetworkParameters(listOf(NotaryInfo(notaryParty, false)))) val notaryNodeUnstarted = createNotaryNode() diff --git a/settings.gradle b/settings.gradle index d99e6d56f0..a9f9dda235 100644 --- a/settings.gradle +++ b/settings.gradle @@ -85,16 +85,4 @@ include 'serialization-deterministic' include 'cordform-common' include 'hsm-tool' include 'launcher' -include 'node:dist' - -buildCache { - local { - enabled = false - } - remote(HttpBuildCache) { -// url = 'http://localhost:5071/cache/' - // CI server: gradle-build-cache - url = 'http://40.114.193.246:80/cache/' - push = true - } -} +include 'node:dist' \ No newline at end of file