diff --git a/tests/causal-consistency/causal-consistency-001.phpt b/tests/causal-consistency/causal-consistency-001.phpt index 7dbd51800..4bdd706f1 100644 --- a/tests/causal-consistency/causal-consistency-001.phpt +++ b/tests/causal-consistency/causal-consistency-001.phpt @@ -2,6 +2,7 @@ Causal consistency: new session has no operation time --SKIPIF-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- + --FILE-- enabled')); + + if (preg_match($pattern, $info) !== 1) { + exit('skip Crypto is not supported'); + } + + if (empty($libs)) { + return; + } + + $pattern = sprintf('/^%s([\w ]+)$/m', preg_quote('libmongoc crypto library => ')); + + if (preg_match($pattern, $info, $matches) !== 1) { + exit('skip Could not determine crypto library'); + } + + if (!in_array($matches[1], $libs)) { + exit('skip Needs crypto library ' . implode(', ', $libs) . ', but found ' . $matches[1]); + } +} + +/* Checks that libmongoc supports SSL. If one or more libaries are provided, + * additionally check the value of "libmongoc SSL library" as reported by + * phpinfo(). Possible values are "OpenSSL", "LibreSSL", "Secure Transport", and + * "Secure Channel". */ +function NEEDS_SSL(array $libs = []) +{ + ob_start(); + phpinfo(INFO_MODULES); + $info = ob_get_clean(); + + $pattern = sprintf('/^%s$/m', preg_quote('libmongoc SSL => enabled')); + + if (preg_match($pattern, $info) !== 1) { + exit('skip SSL is not supported'); + } + + if (empty($libs)) { + return; + } + $pattern = sprintf('/^%s([\w ]+)$/m', preg_quote('libmongoc SSL library => ')); if (preg_match($pattern, $info, $matches) !== 1) {