Add support for coverage: xdebug2

This commit is contained in:
Shivam Mathur 2020-12-24 18:20:42 +05:30
parent 849315646a
commit e5b90e33c6
No known key found for this signature in database
GPG Key ID: 3E13E4C8591ACC2A
7 changed files with 69 additions and 80 deletions

View File

@ -30,34 +30,29 @@ describe('Config tests', () => {
expect(win32).toContain('Add-Extension xdebug'); expect(win32).toContain('Add-Extension xdebug');
}); });
it('checking addCoverage with Xdebug3 on windows', async () => {
const win32: string = await coverage.addCoverage('xdebug3', '7.4', 'win32');
expect(win32).toContain('Add-Extension xdebug');
});
it('checking addCoverage with Xdebug2 on windows', async () => {
const win32: string = await coverage.addCoverage('xdebug2', '7.4', 'win32');
expect(win32).toContain('Add-Extension xdebug stable 2.9.8');
});
it('checking addCoverage with Xdebug on linux', async () => { it('checking addCoverage with Xdebug on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux'); const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux');
expect(linux).toContain('add_extension xdebug'); expect(linux).toContain('add_extension xdebug');
}); });
it('checking addCoverage with Xdebug3 on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug3', '7.4', 'linux');
expect(linux).toContain('add_extension_from_source xdebug');
});
it('checking addCoverage with Xdebug3 on linux', async () => { it('checking addCoverage with Xdebug3 on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug3', '8.0', 'linux'); const linux: string = await coverage.addCoverage('xdebug3', '8.0', 'linux');
expect(linux).toContain('add_extension xdebug'); expect(linux).toContain('add_extension xdebug');
}); });
it('checking addCoverage with Xdebug on linux', async () => { it('checking addCoverage with Xdebug2 on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux'); const linux: string = await coverage.addCoverage('xdebug2', '7.4', 'linux');
expect(linux).toContain('add_extension xdebug'); expect(linux).toContain('add_pecl_extension xdebug 2.9.8 zend_extension');
});
it('checking addCoverage with Xdebug3 on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug3', '8.1', 'linux');
expect(linux).toContain('add_extension xdebug');
});
it('checking addCoverage with Xdebug on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug', '8.1', 'linux');
expect(linux).toContain('add_extension xdebug');
}); });
it('checking addCoverage with Xdebug on darwin', async () => { it('checking addCoverage with Xdebug on darwin', async () => {
@ -69,6 +64,24 @@ describe('Config tests', () => {
expect(darwin).toContain('add_brew_extension xdebug'); expect(darwin).toContain('add_brew_extension xdebug');
}); });
it('checking addCoverage with Xdebug3 on darwin', async () => {
const darwin: string = await coverage.addCoverage(
'xdebug3',
'7.4',
'darwin'
);
expect(darwin).toContain('add_brew_extension xdebug');
});
it('checking addCoverage with Xdebug2 on darwin', async () => {
const darwin: string = await coverage.addCoverage(
'xdebug2',
'7.4',
'darwin'
);
expect(darwin).toContain('add_brew_extension xdebug2');
});
it('checking disableCoverage windows', async () => { it('checking disableCoverage windows', async () => {
const win32 = await coverage.addCoverage('none', '7.4', 'win32'); const win32 = await coverage.addCoverage('none', '7.4', 'win32');
expect(win32).toContain('Remove-Extension xdebug'); expect(win32).toContain('Remove-Extension xdebug');

View File

@ -25,7 +25,7 @@ describe('Extension tests', () => {
'Add-Log "$cross" "pcov" "pcov is not supported on PHP 5.6"' 'Add-Log "$cross" "pcov" "pcov is not supported on PHP 5.6"'
); );
win32 = await extensions.addExtension('xdebug', '7.2', 'win32'); win32 = await extensions.addExtension('xdebug2', '7.2', 'win32');
expect(win32).toContain('Add-Extension xdebug stable 2.9.8'); expect(win32).toContain('Add-Extension xdebug stable 2.9.8');
win32 = await extensions.addExtension('mysql', '7.4', 'win32'); win32 = await extensions.addExtension('mysql', '7.4', 'win32');
@ -62,13 +62,11 @@ describe('Extension tests', () => {
it('checking addExtensionOnLinux', async () => { it('checking addExtensionOnLinux', async () => {
let linux: string = await extensions.addExtension( let linux: string = await extensions.addExtension(
'Xdebug, xdebug3, pcov, sqlite, :intl, ast, ast-beta, pdo_mysql, pdo-odbc, xdebug-alpha, grpc-1.2.3', 'Xdebug, pcov, sqlite, :intl, ast, ast-beta, pdo_mysql, pdo-odbc, xdebug-alpha, grpc-1.2.3',
'7.4', '7.4',
'linux' 'linux'
); );
expect(linux).toContain( expect(linux).toContain('add_extension xdebug');
'add_extension_from_source xdebug xdebug/xdebug master --enable-xdebug zend_extension'
);
expect(linux).toContain('add_extension sqlite3'); expect(linux).toContain('add_extension sqlite3');
expect(linux).toContain('remove_extension intl'); expect(linux).toContain('remove_extension intl');
expect(linux).toContain('add_unstable_extension ast beta extension'); expect(linux).toContain('add_unstable_extension ast beta extension');
@ -99,7 +97,7 @@ describe('Extension tests', () => {
linux = await extensions.addExtension('cubrid', '7.4', 'linux'); linux = await extensions.addExtension('cubrid', '7.4', 'linux');
expect(linux).toContain('add_cubrid cubrid'); expect(linux).toContain('add_cubrid cubrid');
linux = await extensions.addExtension('xdebug', '7.2', 'linux'); linux = await extensions.addExtension('xdebug2', '7.2', 'linux');
expect(linux).toContain('add_pecl_extension xdebug 2.9.8 zend_extension'); expect(linux).toContain('add_pecl_extension xdebug 2.9.8 zend_extension');
linux = await extensions.addExtension('xdebug', '7.2', 'openbsd'); linux = await extensions.addExtension('xdebug', '7.2', 'openbsd');
@ -194,6 +192,9 @@ describe('Extension tests', () => {
darwin = await extensions.addExtension('xdebug', '7.2', 'darwin'); darwin = await extensions.addExtension('xdebug', '7.2', 'darwin');
expect(darwin).toContain('add_brew_extension xdebug'); expect(darwin).toContain('add_brew_extension xdebug');
darwin = await extensions.addExtension('xdebug2', '7.2', 'darwin');
expect(darwin).toContain('add_brew_extension xdebug2');
darwin = await extensions.addExtension('redis', '5.6', 'darwin'); darwin = await extensions.addExtension('redis', '5.6', 'darwin');
expect(darwin).toContain('add_extension redis-2.2.8'); expect(darwin).toContain('add_extension redis-2.2.8');

38
dist/index.js vendored
View File

@ -1275,18 +1275,11 @@ exports.CSVArray = CSVArray;
* @param extension * @param extension
*/ */
async function getExtensionPrefix(extension) { async function getExtensionPrefix(extension) {
const zend = [ switch (true) {
'xdebug',
'xdebug3',
'opcache',
'ioncube',
'eaccelerator'
];
switch (zend.indexOf(extension)) {
default: default:
return 'zend_extension';
case -1:
return 'extension'; return 'extension';
case /xdebug([2-3])?$|opcache|ioncube|eaccelerator/.test(extension):
return 'zend_extension';
} }
} }
exports.getExtensionPrefix = getExtensionPrefix; exports.getExtensionPrefix = getExtensionPrefix;
@ -2419,8 +2412,9 @@ async function addCoverage(coverage_driver, version, os_version) {
return script + (await addCoveragePCOV(version, os_version, pipe)); return script + (await addCoveragePCOV(version, os_version, pipe));
case 'xdebug': case 'xdebug':
case 'xdebug3': case 'xdebug3':
return (script + return (script + (await addCoverageXdebug('xdebug', version, os_version, pipe)));
(await addCoverageXdebug(coverage_driver, version, os_version, pipe))); case 'xdebug2':
return (script + (await addCoverageXdebug('xdebug2', version, os_version, pipe)));
case 'none': case 'none':
return script + (await disableCoverage(version, os_version, pipe)); return script + (await disableCoverage(version, os_version, pipe));
default: default:
@ -2968,10 +2962,11 @@ async function addExtensionWindows(extension_csv, version) {
matches = /.*-(\d+\.\d+\.\d)([a-zA-Z+]+)\d*/.exec(version_extension); matches = /.*-(\d+\.\d+\.\d)([a-zA-Z+]+)\d*/.exec(version_extension);
add_script += await utils.joins('\nAdd-Extension', ext_name, matches[2].replace('preview', 'devel'), matches[1]); add_script += await utils.joins('\nAdd-Extension', ext_name, matches[2].replace('preview', 'devel'), matches[1]);
break; break;
// match 5.3pcov to 7.0pcov // match 7.2xdebug2 to 7.4xdebug2
case /7\.2xdebug/.test(version_extension): case /7\.[2-4]xdebug2/.test(version_extension):
add_script += '\nAdd-Extension xdebug stable 2.9.8'; add_script += '\nAdd-Extension xdebug stable 2.9.8';
break; break;
// match 5.3pcov to 7.0pcov
case /(5\.[3-6]|7\.0)pcov/.test(version_extension): case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
add_script += await utils.getUnsupportedLog('pcov', version, 'win32'); add_script += await utils.getUnsupportedLog('pcov', version, 'win32');
break; break;
@ -3048,19 +3043,10 @@ async function addExtensionLinux(extension_csv, version) {
case /(5\.[3-6]|7\.0)pcov/.test(version_extension): case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
add_script += await utils.getUnsupportedLog('pcov', version, 'linux'); add_script += await utils.getUnsupportedLog('pcov', version, 'linux');
return; return;
// match 7.2xdebug3..7.4xdebug3 // match 7.2xdebug2...7.4xdebug2
case /^7\.[2-4]xdebug3$/.test(version_extension): case /^7\.[2-4]xdebug2$/.test(version_extension):
add_script += add_script += await utils.joins('\nadd_pecl_extension', 'xdebug', '2.9.8', ext_prefix);
'\nadd_extension_from_source xdebug xdebug/xdebug master --enable-xdebug zend_extension';
return; return;
// match 7.2xdebug
case /^7\.2xdebug$/.test(version_extension):
add_script += await utils.joins('\nadd_pecl_extension', ext_name, '2.9.8', ext_prefix);
break;
// match 8.0xdebug3...8.9xdebug3
case /^8\.[0-9]xdebug3$/.test(version_extension):
extension = 'xdebug';
break;
// match pdo extensions // match pdo extensions
case /.*pdo[_-].*/.test(version_extension): case /.*pdo[_-].*/.test(version_extension):
extension = extension.replace(/pdo[_-]|3/, ''); extension = extension.replace(/pdo[_-]|3/, '');

View File

@ -140,8 +140,11 @@ export async function addCoverage(
case 'xdebug': case 'xdebug':
case 'xdebug3': case 'xdebug3':
return ( return (
script + script + (await addCoverageXdebug('xdebug', version, os_version, pipe))
(await addCoverageXdebug(coverage_driver, version, os_version, pipe)) );
case 'xdebug2':
return (
script + (await addCoverageXdebug('xdebug2', version, os_version, pipe))
); );
case 'none': case 'none':
return script + (await disableCoverage(version, os_version, pipe)); return script + (await disableCoverage(version, os_version, pipe));

View File

@ -163,10 +163,11 @@ export async function addExtensionWindows(
matches[1] matches[1]
); );
break; break;
// match 5.3pcov to 7.0pcov // match 7.2xdebug2 to 7.4xdebug2
case /7\.2xdebug/.test(version_extension): case /7\.[2-4]xdebug2/.test(version_extension):
add_script += '\nAdd-Extension xdebug stable 2.9.8'; add_script += '\nAdd-Extension xdebug stable 2.9.8';
break; break;
// match 5.3pcov to 7.0pcov
case /(5\.[3-6]|7\.0)pcov/.test(version_extension): case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
add_script += await utils.getUnsupportedLog('pcov', version, 'win32'); add_script += await utils.getUnsupportedLog('pcov', version, 'win32');
break; break;
@ -267,24 +268,15 @@ export async function addExtensionLinux(
case /(5\.[3-6]|7\.0)pcov/.test(version_extension): case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
add_script += await utils.getUnsupportedLog('pcov', version, 'linux'); add_script += await utils.getUnsupportedLog('pcov', version, 'linux');
return; return;
// match 7.2xdebug3..7.4xdebug3 // match 7.2xdebug2...7.4xdebug2
case /^7\.[2-4]xdebug3$/.test(version_extension): case /^7\.[2-4]xdebug2$/.test(version_extension):
add_script +=
'\nadd_extension_from_source xdebug xdebug/xdebug master --enable-xdebug zend_extension';
return;
// match 7.2xdebug
case /^7\.2xdebug$/.test(version_extension):
add_script += await utils.joins( add_script += await utils.joins(
'\nadd_pecl_extension', '\nadd_pecl_extension',
ext_name, 'xdebug',
'2.9.8', '2.9.8',
ext_prefix ext_prefix
); );
break; return;
// match 8.0xdebug3...8.9xdebug3
case /^8\.[0-9]xdebug3$/.test(version_extension):
extension = 'xdebug';
break;
// match pdo extensions // match pdo extensions
case /.*pdo[_-].*/.test(version_extension): case /.*pdo[_-].*/.test(version_extension):
extension = extension.replace(/pdo[_-]|3/, ''); extension = extension.replace(/pdo[_-]|3/, '');

View File

@ -68,8 +68,9 @@ add_brew_tap() {
# Function to install a php extension from shivammathur/extensions tap. # Function to install a php extension from shivammathur/extensions tap.
add_brew_extension() { add_brew_extension() {
extension=$1 formula=$1
prefix=$2 prefix=$2
extension=${formula//[0-9]/}
enable_extension "$extension" "$prefix" enable_extension "$extension" "$prefix"
if check_extension "$extension"; then if check_extension "$extension"; then
add_log "${tick:?}" "$extension" "Enabled" add_log "${tick:?}" "$extension" "Enabled"
@ -77,8 +78,8 @@ add_brew_extension() {
add_brew_tap shivammathur/homebrew-php add_brew_tap shivammathur/homebrew-php
add_brew_tap shivammathur/homebrew-extensions add_brew_tap shivammathur/homebrew-extensions
sudo mv "$tap_dir"/shivammathur/homebrew-extensions/.github/deps/"$extension"/* "$tap_dir/homebrew/homebrew-core/Formula/" 2>/dev/null || true sudo mv "$tap_dir"/shivammathur/homebrew-extensions/.github/deps/"$extension"/* "$tap_dir/homebrew/homebrew-core/Formula/" 2>/dev/null || true
brew install "$extension@$version" >/dev/null 2>&1 brew install "$formula@$version" >/dev/null 2>&1
sudo cp "$brew_prefix/opt/$extension@$version/$extension.so" "$ext_dir" sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
add_extension_log "$extension" "Installed and enabled" add_extension_log "$extension" "Installed and enabled"
fi fi
} }

View File

@ -262,18 +262,11 @@ export async function CSVArray(values_csv: string): Promise<Array<string>> {
* @param extension * @param extension
*/ */
export async function getExtensionPrefix(extension: string): Promise<string> { export async function getExtensionPrefix(extension: string): Promise<string> {
const zend: Array<string> = [ switch (true) {
'xdebug',
'xdebug3',
'opcache',
'ioncube',
'eaccelerator'
];
switch (zend.indexOf(extension)) {
default: default:
return 'zend_extension';
case -1:
return 'extension'; return 'extension';
case /xdebug([2-3])?$|opcache|ioncube|eaccelerator/.test(extension):
return 'zend_extension';
} }
} }