Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f15d862

Browse files
authored
PHPC-2601: Add crypt_shared version to a manager's debug output (#1847)
* PHPC-2156: Unskip previously failing test * PHPC-2601: Add crypt_shared version to manager debug output * Skip crypt_shared tests on 32-bit platforms
1 parent b58783c commit f15d862

File tree

7 files changed

+78
-3
lines changed

7 files changed

+78
-3
lines changed

‎src/MongoDB/Manager.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ static HashTable* php_phongo_manager_get_debug_info(zend_object* object, int* is
828828
*is_temp = 1;
829829
intern = Z_OBJ_MANAGER(object);
830830

831-
array_init_size(&retval, 2);
831+
array_init_size(&retval, 3);
832832

833833
ADD_ASSOC_STRING(&retval, "uri", mongoc_uri_get_string(mongoc_client_get_uri(intern->client)));
834834

@@ -851,6 +851,16 @@ static HashTable* php_phongo_manager_get_debug_info(zend_object* object, int* is
851851

852852
ADD_ASSOC_ZVAL_EX(&retval, "cluster", &cluster);
853853

854+
{
855+
const char* crypt_shared_version = mongoc_client_get_crypt_shared_version(intern->client);
856+
857+
if (crypt_shared_version) {
858+
ADD_ASSOC_STRING(&retval, "cryptSharedVersion", crypt_shared_version);
859+
} else {
860+
ADD_ASSOC_NULL_EX(&retval, "cryptSharedVersion");
861+
}
862+
}
863+
854864
done:
855865
mongoc_server_descriptions_destroy_all(sds, n);
856866

‎tests/manager/bug0940-001.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@ object(MongoDB\Driver\Manager)#%d (%d) {
2020
["cluster"]=>
2121
array(0) {
2222
}
23+
["cryptSharedVersion"]=>
24+
NULL
2325
}
2426
===DONE===

‎tests/manager/manager-ctor-auto_encryption-002.phpt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ MongoDB\Driver\Manager::__construct(): crypt_shared is required
44
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
55
<?php skip_if_not_libmongocrypt(); ?>
66
<?php skip_if_no_crypt_shared(); ?>
7-
--XFAIL--
8-
crypt_shared log output breaks build (PHPC-2156)
97
--FILE--
108
<?php
119

‎tests/manager/manager-ctor-ssl-001.phpt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ object(MongoDB\Driver\Manager)#%d (%d) {
2121
["cluster"]=>
2222
array(0) {
2323
}
24+
["cryptSharedVersion"]=>
25+
NULL
2426
}
2527
object(MongoDB\Driver\Manager)#%d (%d) {
2628
["uri"]=>
2729
string(20) "mongodb://127.0.0.1/"
2830
["cluster"]=>
2931
array(0) {
3032
}
33+
["cryptSharedVersion"]=>
34+
NULL
3135
}
3236
===DONE===

‎tests/manager/manager-debug-004.phpt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
--TEST--
2+
MongoDB\Driver\Manager debug output with crypt_shared
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php skip_if_not_libmongocrypt(); ?>
6+
<?php skip_if_no_crypt_shared(); ?>
7+
--FILE--
8+
<?php
9+
10+
require_once __DIR__ . '/../utils/basic.inc';
11+
12+
// First, create a test manager without auto-encryption
13+
$manager = create_test_manager();
14+
15+
var_dump($manager);
16+
var_dump(get_module_info('crypt_shared library version'));
17+
18+
$autoEncryptionOptions = [
19+
'keyVaultNamespace' => CSFLE_KEY_VAULT_NS,
20+
'kmsProviders' => ['local' => ['key' => new MongoDB\BSON\Binary(CSFLE_LOCAL_KEY, 0)]],
21+
'extraOptions' => ['cryptSharedLibRequired' => true],
22+
];
23+
24+
$manager = create_test_manager(null, [], ['autoEncryption' => $autoEncryptionOptions]);
25+
26+
var_dump($manager);
27+
var_dump(get_module_info('crypt_shared library version'));
28+
29+
?>
30+
===DONE===
31+
<?php exit(0); ?>
32+
--EXPECTF--
33+
object(MongoDB\Driver\Manager)#%d (%d) {
34+
["uri"]=>
35+
string(%d) "%s"
36+
["cluster"]=>
37+
array(0) {
38+
}
39+
["cryptSharedVersion"]=>
40+
NULL
41+
}
42+
string(7) "unknown"
43+
object(MongoDB\Driver\Manager)#%d (%d) {
44+
["uri"]=>
45+
string(%d) "%s"
46+
["cluster"]=>
47+
array(0) {
48+
}
49+
["cryptSharedVersion"]=>
50+
string(%d) "mongo_crypt%a"
51+
}
52+
string(7) "unknown"
53+
===DONE===

‎tests/manager/manager-var-dump-001.phpt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ object(MongoDB\Driver\Manager)#%d (%d) {
2828
["cluster"]=>
2929
array(0) {
3030
}
31+
["cryptSharedVersion"]=>
32+
NULL
3133
}
3234
object(MongoDB\Driver\Manager)#%d (%d) {
3335
["uri"]=>
@@ -60,5 +62,7 @@ object(MongoDB\Driver\Manager)#%d (%d) {
6062
int(%d)
6163
}
6264
}
65+
["cryptSharedVersion"]=>
66+
NULL
6367
}
6468
===DONE===

‎tests/utils/skipif.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,10 @@ function skip_if_crypt_shared()
459459

460460
function skip_if_no_crypt_shared()
461461
{
462+
if (PHP_INT_SIZE !== 8) {
463+
exit('skip crypt_shared is only available on 64-bit systems');
464+
}
465+
462466
// Intentionally consider empty values for CRYPT_SHARED_LIB_PATH
463467
if ( ! getenv('CRYPT_SHARED_LIB_PATH')) {
464468
exit('skip crypt_shared is not available');

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /