From ade633f0da77d195585ab440a93eb3e0bd12b9aa Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Mon, 9 Dec 2019 14:54:14 +0530 Subject: [PATCH] Fix coverage log for Xdebug on PHP 8.0 --- .github/workflows/experimental-workflow.yml | 1 + __tests__/coverage.test.ts | 21 +++++++++++- dist/index.js | 15 ++++++--- src/coverage.ts | 36 ++++++++++++++------- 4 files changed, 57 insertions(+), 16 deletions(-) diff --git a/.github/workflows/experimental-workflow.yml b/.github/workflows/experimental-workflow.yml index 4b2f7335..500e5b0e 100644 --- a/.github/workflows/experimental-workflow.yml +++ b/.github/workflows/experimental-workflow.yml @@ -61,6 +61,7 @@ jobs: php-version: ${{ matrix.php-versions }} extensions: mbstring, xdebug, pcov #optional ini-values: post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata #optional + coverage: xdebug - name: Testing PHP version run: | diff --git a/__tests__/coverage.test.ts b/__tests__/coverage.test.ts index 6d74bc9a..150a45c0 100644 --- a/__tests__/coverage.test.ts +++ b/__tests__/coverage.test.ts @@ -34,15 +34,25 @@ describe('Config tests', () => { }); it('checking addCoverage with Xdebug on windows', async () => { - const win32: string = await coverage.addCoverage('xdebug', '7.3', 'win32'); + const win32: string = await coverage.addCoverage('xdebug', '7.4', 'win32'); expect(win32).toContain('addExtension xdebug'); }); + it('checking addCoverage with Xdebug on windows', async () => { + const win32: string = await coverage.addCoverage('xdebug', '8.0', 'win32'); + expect(win32).toContain('Xdebug currently only supports PHP 7.4 or lower'); + }); + it('checking addCoverage with Xdebug on linux', async () => { const linux: string = await coverage.addCoverage('xdebug', '7.4', 'linux'); expect(linux).toContain('addExtension xdebug'); }); + it('checking addCoverage with Xdebug on linux', async () => { + const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux'); + expect(linux).toContain('Xdebug currently only supports PHP 7.4 or lower'); + }); + it('checking addCoverage with Xdebug on darwin', async () => { const darwin: string = await coverage.addCoverage( 'xdebug', @@ -52,6 +62,15 @@ describe('Config tests', () => { expect(darwin).toContain('addExtension xdebug'); }); + it('checking addCoverage with Xdebug on darwin', async () => { + const darwin: string = await coverage.addCoverage( + 'xdebug', + '8.0', + 'darwin' + ); + expect(darwin).toContain('Xdebug currently only supports PHP 7.4 or lower'); + }); + it('checking disableCoverage windows', async () => { const win32 = await coverage.addCoverage('none', '7.4', 'win32'); expect(win32).toContain('Disable-PhpExtension xdebug'); diff --git a/dist/index.js b/dist/index.js index 4efa5ec1..7727aa02 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1216,10 +1216,17 @@ const config = __importStar(__webpack_require__(641)); */ function addCoverageXdebug(version, os_version) { return __awaiter(this, void 0, void 0, function* () { - return ((yield extensions.addExtension('xdebug', version, os_version, true)) + - (yield utils.suppressOutput(os_version)) + - '\n' + - (yield utils.addLog('$tick', 'xdebug', 'Xdebug enabled as coverage driver', os_version))); + switch (version) { + case '8.0': + return ('\n' + + (yield utils.addLog('$cross', 'xdebug', 'Xdebug currently only supports PHP 7.4 or lower', os_version))); + case '7.4': + default: + return ((yield extensions.addExtension('xdebug', version, os_version, true)) + + (yield utils.suppressOutput(os_version)) + + '\n' + + (yield utils.addLog('$tick', 'xdebug', 'Xdebug enabled as coverage driver', os_version))); + } }); } exports.addCoverageXdebug = addCoverageXdebug; diff --git a/src/coverage.ts b/src/coverage.ts index 5087eac2..7528d854 100644 --- a/src/coverage.ts +++ b/src/coverage.ts @@ -12,17 +12,31 @@ export async function addCoverageXdebug( version: string, os_version: string ): Promise { - return ( - (await extensions.addExtension('xdebug', version, os_version, true)) + - (await utils.suppressOutput(os_version)) + - '\n' + - (await utils.addLog( - '$tick', - 'xdebug', - 'Xdebug enabled as coverage driver', - os_version - )) - ); + switch (version) { + case '8.0': + return ( + '\n' + + (await utils.addLog( + '$cross', + 'xdebug', + 'Xdebug currently only supports PHP 7.4 or lower', + os_version + )) + ); + case '7.4': + default: + return ( + (await extensions.addExtension('xdebug', version, os_version, true)) + + (await utils.suppressOutput(os_version)) + + '\n' + + (await utils.addLog( + '$tick', + 'xdebug', + 'Xdebug enabled as coverage driver', + os_version + )) + ); + } } /**