diff --git a/tests/SpecTests/TransactionsSpecTest.php b/tests/SpecTests/TransactionsSpecTest.php index dc7680eea..c70d673d0 100644 --- a/tests/SpecTests/TransactionsSpecTest.php +++ b/tests/SpecTests/TransactionsSpecTest.php @@ -36,6 +36,34 @@ class TransactionsSpecTest extends FunctionalTestCase 'transactions/pin-mongos: unpin after transient error within a transaction and commit' => 'isMaster failpoints cannot be disabled', ]; + private static array $incompleteLoadBalancerTests = [ + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on insertOne' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on insertOne insert' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on insertMany insert' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on updateOne update' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on replaceOne update' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on updateMany update' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on deleteOne delete' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on deleteMany delete' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on findOneAndDelete findAndModify' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on findOneAndUpdate findAndModify' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on findOneAndReplace findAndModify' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on bulkWrite insert' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on bulkWrite update' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on bulkWrite delete' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on find find' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on countDocuments aggregate' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on aggregate aggregate' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on distinct distinct' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: remain pinned after non-transient Interrupted error on runCommand insert' => 'libmongoc does not pin for load-balanced topology', + 'transactions/pin-mongos: multiple commits' => 'libmongoc does not pin for load-balanced topology', + 'transactions/mongos-pin-auto: unpin after transient error within a transaction' => 'libmongoc omits recoveryToken for load-balanced topology (CDRIVER-4718)', + 'transactions/mongos-recovery-token: commitTransaction explicit retries include recoveryToken' => 'libmongoc omits recoveryToken for load-balanced topology (CDRIVER-4718)', + 'transactions/mongos-recovery-token: commitTransaction retry succeeds on new mongos' => 'libmongoc omits recoveryToken for load-balanced topology (CDRIVER-4718)', + 'transactions/mongos-recovery-token: abortTransaction sends recoveryToken' => 'libmongoc omits recoveryToken for load-balanced topology (CDRIVER-4718)', + 'transactions/pin-mongos: unpin after transient error within a transaction' => 'libmongoc omits recoveryToken for load-balanced topology (CDRIVER-4718)', + ]; + public function setUp(): void { parent::setUp(); @@ -143,6 +171,10 @@ private function runTransactionTest(stdClass $test, ?array $runOn, array $data, $this->markTestIncomplete(self::$incompleteTests[$this->dataDescription()]); } + if ($this->isLoadBalanced() && isset(self::$incompleteLoadBalancerTests[$this->dataDescription()])) { + $this->markTestIncomplete(self::$incompleteLoadBalancerTests[$this->dataDescription()]); + } + if (isset($runOn)) { $this->checkServerRequirements($runOn); }