Add PECL support on linux

This commit is contained in:
Shivam Mathur
2019-11-07 11:11:35 +05:30
parent 24ecbee4ea
commit e14155415a
9 changed files with 73 additions and 28 deletions

View File

@ -40,11 +40,13 @@ describe('Extension tests', () => {
'linux'
);
expect(linux).toContain(
'sudo DEBIAN_FRONTEND=noninteractive apt install -y php7.2-xdebug'
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php7.2-xdebug'
);
expect(linux).toContain('pecl install xdebug');
expect(linux).toContain(
'sudo DEBIAN_FRONTEND=noninteractive apt install -y php7.2-pcov'
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php7.2-pcov'
);
expect(linux).toContain('pecl install pcov');
linux = await extensions.addExtension('xdebug, pcov', '7.4', 'linux');
expect(linux).toContain('xdebug.sh');

View File

@ -35,10 +35,14 @@ jest.mock('../src/install', () => ({
let script: string = '';
switch (os_version) {
case 'darwin':
case 'linux':
script = await install.build(os_version + '.sh', version, os_version);
script += 'sh script.sh ' + version + ' ' + __dirname;
break;
case 'linux':
let pecl: string = process.env['pecl'] || '';
script = await install.build(os_version + '.sh', version, os_version);
script += 'sh script.sh ' + version + ' ' + pecl + ' ' + __dirname;
break;
case 'win32':
script = await install.build(os_version + '.sh', version, os_version);
script +=
@ -67,24 +71,26 @@ function setEnv(
os: string,
extension_csv: string,
ini_values_csv: string,
coverage_driver: string
coverage_driver: string,
pecl: any
): void {
process.env['php-version'] = version;
process.env['RUNNER_OS'] = os;
process.env['extension-csv'] = extension_csv;
process.env['ini-values-csv'] = ini_values_csv;
process.env['coverage'] = coverage_driver;
process.env['pecl'] = pecl;
}
describe('Install', () => {
it('Test install on windows', async () => {
setEnv('7.3', 'win32', '', '', '');
setEnv('7.3', 'win32', '', '', '', '');
// @ts-ignore
let script: string = await install.run();
expect(script).toContain('initial script');
expect(script).toContain('pwsh script.ps1 -version 7.3 -dir ' + __dirname);
setEnv('7.3', 'win32', 'a, b', 'a=b', 'x');
setEnv('7.3', 'win32', 'a, b', 'a=b', 'x', '');
// @ts-ignore
script = await install.run();
expect(script).toContain('initial script');
@ -95,30 +101,39 @@ describe('Install', () => {
});
it('Test install on linux', async () => {
setEnv('7.3', 'linux', '', '', '');
setEnv('7.3', 'linux', '', '', '', '');
// @ts-ignore
let script: string = await install.run();
expect(script).toContain('initial script');
expect(script).toContain('sh script.sh 7.3 ' + __dirname);
expect(script).toContain('sh script.sh 7.3 ');
setEnv('7.3', 'linux', 'a, b', 'a=b', 'x');
setEnv('7.3', 'linux', 'a, b', 'a=b', 'x', 'true');
// @ts-ignore
script = await install.run();
expect(script).toContain('initial script');
expect(script).toContain('install extensions');
expect(script).toContain('edit php.ini');
expect(script).toContain('set coverage driver');
expect(script).toContain('sh script.sh 7.3 ' + __dirname);
expect(script).toContain('sh script.sh 7.3 true');
setEnv('7.3', 'linux', 'a, b', 'a=b', 'x', true);
// @ts-ignore
script = await install.run();
expect(script).toContain('initial script');
expect(script).toContain('install extensions');
expect(script).toContain('edit php.ini');
expect(script).toContain('set coverage driver');
expect(script).toContain('sh script.sh 7.3 true');
});
it('Test install on darwin', async () => {
setEnv('7.3', 'darwin', '', '', '');
setEnv('7.3', 'darwin', '', '', '', '');
// @ts-ignore
let script: string = await install.run();
expect(script).toContain('initial script');
expect(script).toContain('sh script.sh 7.3 ' + __dirname);
setEnv('7.3', 'darwin', 'a, b', 'a=b', 'x');
setEnv('7.3', 'darwin', 'a, b', 'a=b', 'x', '');
// @ts-ignore
script = await install.run();
expect(script).toContain('initial script');