summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/App/DependencyAnalyzer.php6
-rw-r--r--lib/private/App/Platform.php7
-rw-r--r--tests/lib/app/dependencyanalyzer.php24
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),
);
}
}