diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index 45a27f6fc002..9cea75d7dc8f 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -9,6 +9,7 @@ _Released 12/5/2023 (PENDING)_ - Fixed an issue where request logging would default the `message` to the `args` of the currently running command even though those `args` would not apply to the request log and are not displayed. If the `args` are sufficiently large (e.g. when running the `cy.task` from the [code-coverage](/~https://github.com/cypress-io/code-coverage/) plugin) there could be performance/memory implications. Addressed in [#28411](/~https://github.com/cypress-io/cypress/pull/28411). - Fixed an issue where commands would fail with the error `must only be invoked from the spec file or support file` if the project's `baseUrl` included basic auth credentials. Fixes [#28336](/~https://github.com/cypress-io/cypress/issues/28336). - Fixed an issue where some URLs would timeout in pre-request correlation. Addressed in [#28427](/~https://github.com/cypress-io/cypress/pull/28427). +- Cypress will now correctly log errors and debug logs on Linux machines. Fixes [#5051](/~https://github.com/cypress-io/cypress/issues/5051) and [#24713](/~https://github.com/cypress-io/cypress/issues/24713). **Misc:** diff --git a/cli/lib/exec/spawn.js b/cli/lib/exec/spawn.js index d158aa8eb7a9..dabf8f6a3233 100644 --- a/cli/lib/exec/spawn.js +++ b/cli/lib/exec/spawn.js @@ -4,7 +4,6 @@ const cp = require('child_process') const path = require('path') const Promise = require('bluebird') const debug = require('debug')('cypress:cli') -const debugElectron = require('debug')('cypress:electron') const util = require('../util') const state = require('../tasks/state') @@ -122,10 +121,9 @@ module.exports = { return new Promise((resolve, reject) => { _.defaults(overrides, { onStderrData: false, - electronLogging: false, }) - const { onStderrData, electronLogging } = overrides + const { onStderrData } = overrides const envOverrides = util.getEnvOverrides(options) const electronArgs = [] const node11WindowsFix = isPlatform('win32') @@ -160,10 +158,6 @@ module.exports = { stdioOptions = _.extend({}, stdioOptions, { windowsHide: false }) } - if (electronLogging) { - stdioOptions.env.ELECTRON_ENABLE_LOGGING = true - } - if (util.isPossibleLinuxWithIncorrectDisplay()) { // make sure we use the latest DISPLAY variable if any debug('passing DISPLAY', process.env.DISPLAY) @@ -241,7 +235,7 @@ module.exports = { // if we have a callback and this explicitly returns // false then bail - if (onStderrData && onStderrData(str) === false) { + if (onStderrData && onStderrData(str)) { return } @@ -294,13 +288,6 @@ module.exports = { if (util.isBrokenGtkDisplay(str)) { brokenGtkDisplay = true } - - // we should attempt to always slurp up - // the stderr logs unless we've explicitly - // enabled the electron debug logging - if (!debugElectron.enabled) { - return false - } }, }) } diff --git a/cli/lib/tasks/verify.js b/cli/lib/tasks/verify.js index 826c35e1654f..2d946b301e37 100644 --- a/cli/lib/tasks/verify.js +++ b/cli/lib/tasks/verify.js @@ -101,12 +101,8 @@ const runSmokeTest = (binaryDir, options) => { debug('smoke test command:', smokeTestCommand) debug('smoke test timeout %d ms', options.smokeTestTimeout) - const env = _.extend({}, process.env, { - ELECTRON_ENABLE_LOGGING: true, - }) - const stdioOptions = _.extend({}, { - env, + env: process.env, timeout: options.smokeTestTimeout, }) diff --git a/cli/test/lib/tasks/verify_spec.js b/cli/test/lib/tasks/verify_spec.js index b81ff36a55b5..ab4fd5146be0 100644 --- a/cli/test/lib/tasks/verify_spec.js +++ b/cli/test/lib/tasks/verify_spec.js @@ -278,35 +278,6 @@ context('lib/tasks/verify', () => { }) }) - it('sets ELECTRON_ENABLE_LOGGING without mutating process.env', () => { - createfs({ - alreadyVerified: false, - executable: mockfs.file({ mode: 0o777 }), - packageVersion, - }) - - expect(process.env.ELECTRON_ENABLE_LOGGING).to.be.undefined - - util.exec.resolves() - sinon.stub(util, 'stdoutLineMatches').returns(true) - - return verify - .start() - .then(() => { - expect(process.env.ELECTRON_ENABLE_LOGGING).to.be.undefined - - const stdioOptions = util.exec.firstCall.args[2] - - expect(stdioOptions).to.include({ - timeout: verify.VERIFY_TEST_RUNNER_TIMEOUT_MS, - }) - - expect(stdioOptions.env).to.include({ - ELECTRON_ENABLE_LOGGING: true, - }) - }) - }) - describe('with force: true', () => { beforeEach(() => { createfs({