diff options
-rw-r--r-- | lib/private/App/DependencyAnalyzer.php | 6 | ||||
-rw-r--r-- | lib/private/App/Platform.php | 7 | ||||
-rw-r--r-- | tests/lib/app/dependencyanalyzer.php | 24 |
3 files changed, 29 insertions, 8 deletions
diff --git a/lib/private/App/DependencyAnalyzer.php b/lib/private/App/DependencyAnalyzer.php index 6519e15bd8b..1e3a81c6351 100644 --- a/lib/private/App/DependencyAnalyzer.php +++ b/lib/private/App/DependencyAnalyzer.php @@ -145,6 +145,12 @@ class DependencyAnalyzer { $missing[] = (string)$this->l->t('PHP with a version lower than %s is required.', $maxVersion); } } + if (isset($dependencies['php']['@attributes']['min-int-size'])) { + $intSize = $dependencies['php']['@attributes']['min-int-size']; + if ($intSize > $this->platform->getIntSize()*8) { + $missing[] = (string)$this->l->t('%sbit or higher PHP required.', $intSize); + } + } return $missing; } diff --git a/lib/private/App/Platform.php b/lib/private/App/Platform.php index 1d4c3767121..b1cb7c5aeb0 100644 --- a/lib/private/App/Platform.php +++ b/lib/private/App/Platform.php @@ -49,6 +49,13 @@ class Platform { } /** + * @return int + */ + public function getIntSize() { + return PHP_INT_SIZE; + } + + /** * @return string */ public function getOcVersion() { diff --git a/tests/lib/app/dependencyanalyzer.php b/tests/lib/app/dependencyanalyzer.php index fecba518856..eee0bc29083 100644 --- a/tests/lib/app/dependencyanalyzer.php +++ b/tests/lib/app/dependencyanalyzer.php @@ -33,6 +33,9 @@ class DependencyAnalyzer extends TestCase { ->method('getPhpVersion') ->will( $this->returnValue('5.4.3')); $this->platformMock->expects($this->any()) + ->method('getIntSize') + ->will( $this->returnValue('4')); + $this->platformMock->expects($this->any()) ->method('getDatabase') ->will( $this->returnValue('mysql')); $this->platformMock->expects($this->any()) @@ -73,8 +76,9 @@ class DependencyAnalyzer extends TestCase { * @param string $expectedMissing * @param string $minVersion * @param string $maxVersion + * @param string $intSize */ - public function testPhpVersion($expectedMissing, $minVersion, $maxVersion) { + public function testPhpVersion($expectedMissing, $minVersion, $maxVersion, $intSize) { $app = array( 'dependencies' => array( 'php' => array() @@ -86,6 +90,9 @@ class DependencyAnalyzer extends TestCase { if (!is_null($maxVersion)) { $app['dependencies']['php']['@attributes']['max-version'] = $maxVersion; } + if (!is_null($intSize)) { + $app['dependencies']['php']['@attributes']['min-int-size'] = $intSize; + } $missing = $this->analyser->analyze($app); $this->assertTrue(is_array($missing)); @@ -278,13 +285,14 @@ class DependencyAnalyzer extends TestCase { */ function providesPhpVersion() { return array( - array(array(), null, null), - array(array(), '5.4', null), - array(array(), null, '5.5'), - array(array(), '5.4', '5.5'), - array(array('PHP 5.4.4 or higher is required.'), '5.4.4', null), - array(array('PHP with a version lower than 5.4.2 is required.'), null, '5.4.2'), - array(array(), '5.4', '5.4'), + array(array(), null, null, null), + array(array(), '5.4', null, null), + array(array(), null, '5.5', null), + array(array(), '5.4', '5.5', null), + array(array('PHP 5.4.4 or higher is required.'), '5.4.4', null, null), + array(array('PHP with a version lower than 5.4.2 is required.'), null, '5.4.2', null), + array(array('64bit or higher PHP required.'), null, null, 64), + array(array(), '5.4', '5.4', null), ); } } |