Skip to content

Commit b0414d5

Browse files
committed
PHPC-1290: Improve checks for transaction support
1 parent 80d6569 commit b0414d5

16 files changed

+26
-30
lines changed

tests/session/session-commitTransaction-001.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::commitTransaction() applies w:majority when retrying
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto() ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/session/session-endSession-001.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::endSession() Calling methods after session has been ende
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
--FILE--
98
<?php
109
require_once __DIR__ . "/../utils/basic.inc";

tests/session/session-isInTransaction-001.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::isInTransaction()
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto() ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/session/session-startTransaction-001.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() ensure that methods can be called
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto() ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
--FILE--
98
<?php
109
require_once __DIR__ . "/../utils/basic.inc";

tests/session/session-startTransaction_error-001.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() twice
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto() ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
--FILE--
98
<?php
109
require_once __DIR__ . "/../utils/basic.inc";

tests/session/session-startTransaction_error-002.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() with wrong values in options array
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto() ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
--FILE--
98
<?php
109
require_once __DIR__ . "/../utils/basic.inc";

tests/session/session-startTransaction_error-003.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() with wrong argument for options array
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto() ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_php_version('>=', '7.0.0'); ?>
98
--FILE--
109
<?php

tests/session/session-startTransaction_error-005.phpt renamed to tests/session/session-startTransaction_error-004.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() with wrong argument for options array
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto() ?>
6-
<?php skip_if_not_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_php_version('<', '7.0.0'); ?>
98
--FILE--
109
<?php

tests/session/transaction-integration-001.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() Committing a transaction with example
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(DATABASE_NAME, COLLECTION_NAME . '_employees'); ?>
98
<?php skip_if_not_clean(DATABASE_NAME, COLLECTION_NAME . '_events'); ?>
109
--FILE--

tests/session/transaction-integration-002.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() Transient Error Test
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/session/transaction-integration-003.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session::startTransaction() Transient Error Test
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/session/transaction-integration_error-001.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session: Setting per-op readConcern or writeConcern in transactio
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/session/transaction-integration_error-002.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session: Setting per-op readConcern in transaction (executeReadCo
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/session/transaction-integration_error-003.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session: Setting per-op writeConcern in transaction (executeWrite
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/session/transaction-integration_error-004.phpt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ MongoDB\Driver\Session: Setting per-op readConcern or writeConcern in transactio
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongoc_crypto(); ?>
6-
<?php skip_if_not_replica_set_or_mongos_with_replica_set(); ?>
7-
<?php skip_if_server_version('<', '4.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
87
<?php skip_if_not_clean(); ?>
98
--FILE--
109
<?php

tests/utils/skipif.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,17 @@ function skip_if_not_replica_set_or_mongos_with_replica_set()
7777
is_replica_set(URI) or is_mongos_with_replica_set(URI) or exit('skip topology is not a replica set or sharded cluster with replica set');
7878
}
7979

80+
function skip_if_no_transactions()
81+
{
82+
if (is_mongos_with_replica_set(URI)) {
83+
skip_if_server_version('<', '4.2');
84+
} elseif (is_replica_set(URI)) {
85+
skip_if_server_version('<', '4.0');
86+
} else {
87+
exit('skip topology does not support transactions');
88+
}
89+
}
90+
8091
/**
8192
* Skips the test if the topology has no arbiter.
8293
*/

0 commit comments

Comments
 (0)