Merge pull request #24317 from owncloud/app-require-bits

Allow app developers to specify the minimum int size
This commit is contained in:
Lukas Reschke 2016-04-29 11:40:42 +02:00
commit 5f9700ccda
3 changed files with 29 additions and 8 deletions

View File

@ -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;
}

View File

@ -48,6 +48,13 @@ class Platform {
return phpversion();
}
/**
* @return int
*/
public function getIntSize() {
return PHP_INT_SIZE;
}
/**
* @return string
*/

View File

@ -32,6 +32,9 @@ class DependencyAnalyzer extends TestCase {
$this->platformMock->expects($this->any())
->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'));
@ -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),
);
}
}