From c230db6f4bbaac4d943ba870ca0b251ca0604cc6 Mon Sep 17 00:00:00 2001 From: Dmitriy Tverdiakov Date: Tue, 9 Nov 2021 14:39:09 +0000 Subject: [PATCH] Enable Authorization Testkit tests for reactive backend This update also makes sure that `DemandConsumer` completes immediately when there is no unconsumed demand. --- .../testkit/backend/messages/requests/SessionClose.java | 7 ++++++- .../org/testkit/backend/messages/requests/StartTest.java | 5 ++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/SessionClose.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/SessionClose.java index fce604a3e0..e0c0015ba0 100644 --- a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/SessionClose.java +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/SessionClose.java @@ -129,7 +129,12 @@ private DemandConsumer( RxBlockingSubscriber subscriber, AtomicLong unfulfill this.unfulfilledDemandCounter = unfulfilledDemandCounter; subscriber.getCompletionStage().whenComplete( this::onComplete ); - if ( this.unfulfilledDemandCounter.get() > 0 ) + long unfulfilledDemand = this.unfulfilledDemandCounter.get(); + if ( unfulfilledDemand == 0 ) + { + completedStage.complete( CompletionReason.REQUESTED_DEMAND_CONSUMED ); + } + else if ( unfulfilledDemand > 0 ) { setupNextSignalConsumer(); } diff --git a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/StartTest.java b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/StartTest.java index 53284a9f83..1d8eebeafc 100644 --- a/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/StartTest.java +++ b/testkit-backend/src/main/java/neo4j/org/testkit/backend/messages/requests/StartTest.java @@ -51,10 +51,9 @@ public class StartTest implements TestkitRequest REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestSessionRun\\.test_raises_error_on_session_run$", skipMessage ); REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestTxRun\\.test_raises_error_on_tx(_func)?_run", skipMessage ); REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestTxRun\\.test_failed_tx_run_allows(_skipping)?_rollback", skipMessage ); + REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestAuthorizationV\\dx\\d\\.test_should_fail_with_auth_expired_on_run_using_tx_run$", skipMessage ); + REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestAuthorizationV\\dx\\d\\.test_should_fail_with_token_expired_on_run_using_tx_run$", skipMessage ); skipMessage = "Requires investigation"; - REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestAuthorizationV4x1\\..*$", skipMessage ); - REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestAuthorizationV4x3\\..*$", skipMessage ); - REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestNoRoutingAuthorization\\..*$", skipMessage ); REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestDirectConnectionRecvTimeout\\..*$", skipMessage ); REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestRoutingConnectionRecvTimeout\\..*$", skipMessage ); REACTIVE_SKIP_PATTERN_TO_REASON.put( "^.*\\.TestRoutingConnectionRecvTimeout\\.test_timeout$", skipMessage );