1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
From c4e4248dbe3352274304e766d6020a4c319fdef6 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Fri, 8 Jun 2018 10:46:04 +0200
Subject: [PATCH] use PHP_BINARY instead of php and allow override honours
TEST_PHP_EXECUTABLE and TEST_PHP_ARGS (as standard php tests)
---
tests/RedisTest.php | 27 +++++++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
diff --git a/tests/RedisTest.php b/tests/RedisTest.php
index ff0b7537..cdfa5fd3 100644
--- a/tests/RedisTest.php
+++ b/tests/RedisTest.php
@@ -5560,9 +5560,8 @@ private function startSessionProcess($sessionId, $sleepTime, $background, $maxEx
}
$commandParameters = array_map('escapeshellarg', $commandParameters);
- $command = 'php ' . __DIR__ . '/startSession.php ' . implode(' ', $commandParameters);
+ $command = self::getPhpCommand('startSession.php') . implode(' ', $commandParameters);
$command .= $background ? ' 2>/dev/null > /dev/null &' : ' 2>&1';
-
exec($command, $output);
return ($background || (count($output) == 1 && $output[0] == 'SUCCESS')) ? true : false;
}
@@ -5576,7 +5575,7 @@ private function startSessionProcess($sessionId, $sleepTime, $background, $maxEx
*/
private function getSessionData($sessionId, $sessionLifetime = 1440)
{
- $command = 'php ' . __DIR__ . '/getSessionData.php ' . escapeshellarg($this->getFullHostPath()) . ' ' . $this->sessionSaveHandler . ' ' . escapeshellarg($sessionId) . ' ' . escapeshellarg($sessionLifetime);
+ $command = self::getPhpCommand('getSessionData.php') . escapeshellarg($this->getFullHostPath()) . ' ' . $this->sessionSaveHandler . ' ' . escapeshellarg($sessionId) . ' ' . escapeshellarg($sessionLifetime);
exec($command, $output);
return $output[0];
@@ -5594,11 +5593,31 @@ private function regenerateSessionId($sessionId, $locking = false, $destroyPrevi
{
$args = array_map('escapeshellarg', array($sessionId, $locking, $destroyPrevious, $sessionProxy));
- $command = 'php --no-php-ini --define extension=igbinary.so --define extension=' . __DIR__ . '/../modules/redis.so ' . __DIR__ . '/regenerateSessionId.php ' . escapeshellarg($this->getFullHostPath()) . ' ' . $this->sessionSaveHandler . ' ' . implode(' ', $args);
+ $command = self::getPhpCommand('regenerateSessionId.php') . escapeshellarg($this->getFullHostPath()) . ' ' . $this->sessionSaveHandler . ' ' . implode(' ', $args);
exec($command, $output);
return $output[0];
}
+
+ /**
+ * Return command to launch PHP with built extension enabled
+ * taking care of environment (TEST_PHP_EXECUTABLE and TEST_PHP_ARGS)
+ *
+ * @param string $script
+ *
+ * @return string
+ */
+ private function getPhpCommand($script)
+ {
+ static $cmd = NULL;
+
+ if (!$cmd) {
+ $cmd = (getenv('TEST_PHP_EXECUTABLE') ?: (defined('PHP_BINARY') ? PHP_BINARY : 'php')); // PHP_BINARY is 5.4+
+ $cmd .= ' ';
+ $cmd .= (getenv('TEST_PHP_ARGS') ?: '--no-php-ini --define extension=igbinary.so --define extension=' . dirname(__DIR__) . '/modules/redis.so');
+ }
+ return $cmd . ' ' . __DIR__ . '/' . $script . ' ';
+ }
}
?>
|