Merge pull request #24317 from owncloud/app-require-bits
Allow app developers to specify the minimum int size
This commit is contained in:
commit
5f9700ccda
3 changed files with 29 additions and 8 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,6 +48,13 @@ class Platform {
|
|||
return phpversion();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getIntSize() {
|
||||
return PHP_INT_SIZE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
|
|
|
@ -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),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue