Skip to content

Commit 5eedf50

Browse files
committed
Merge pull request #1016
2 parents 502247d + cbca068 commit 5eedf50

21 files changed

+65
-33
lines changed

tests/manager/manager-executeBulkWrite_error-009.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
MongoDB\Driver\Manager::executeBulkWrite() with invalid options
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php skip_if_not_live(); ?>
56
--FILE--
67
<?php
78
require_once __DIR__ . "/../utils/basic.inc";

tests/manager/manager-executeQuery_error-002.phpt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
--TEST--
22
MongoDB\Driver\Manager::executeQuery() with invalid options
3-
--SKIPIF--
4-
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
53
--FILE--
64
<?php
75
require_once __DIR__ . "/../utils/basic.inc";

tests/server/server-executeBulkWrite_error-002.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
MongoDB\Driver\Server::executeBulkWrite() with invalid options
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php skip_if_not_live(); ?>
56
--FILE--
67
<?php
78
require_once __DIR__ . "/../utils/basic.inc";

tests/server/server-executeQuery_error-001.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
MongoDB\Driver\Server::executeQuery() with invalid options
33
--SKIPIF--
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php skip_if_not_live(); ?>
56
--FILE--
67
<?php
78
require_once __DIR__ . "/../utils/basic.inc";

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
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
--TEST--
2+
MongoDB\Driver\Session::startTransaction() with wrong argument for options array on PHP 7.0
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php skip_if_not_libmongoc_crypto() ?>
6+
<?php skip_if_no_transactions(); ?>
7+
<?php skip_if_php_version('<', '7.0.0'); ?>
8+
<?php skip_if_php_version('>=', '7.1.0'); ?>
9+
--FILE--
10+
<?php
11+
require_once __DIR__ . "/../utils/basic.inc";
12+
13+
$manager = new MongoDB\Driver\Manager(URI);
14+
$session = $manager->startSession();
15+
16+
$options = [
17+
2,
18+
new stdClass,
19+
];
20+
21+
foreach ($options as $txnOptions) {
22+
echo throws(function () use ($session, $txnOptions) {
23+
$session->startTransaction($txnOptions);
24+
}, TypeError::class), "\n";
25+
}
26+
27+
?>
28+
===DONE===
29+
<?php exit(0); ?>
30+
--EXPECTF--
31+
OK: Got TypeError
32+
Argument 1 passed to MongoDB\Driver\Session::startTransaction() must be of the type array, int%S given
33+
OK: Got TypeError
34+
Argument 1 passed to MongoDB\Driver\Session::startTransaction() must be of the type array, object given
35+
===DONE===

tests/session/session-startTransaction_error-005.phpt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ 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'); ?>
8-
<?php skip_if_php_version('<', '7.0.0'); ?>
6+
<?php skip_if_no_transactions(); ?>
7+
<?php skip_if_php_version('<', '7.1.0'); ?>
98
--FILE--
109
<?php
1110
require_once __DIR__ . "/../utils/basic.inc";

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)