fix: no longer swallow stderr logs on linux (#28380)

This commit is contained in:
Emily Rohrbough
2023-12-05 09:12:14 -06:00
committed by GitHub
parent 257861bd6e
commit f53ca92f5c
4 changed files with 4 additions and 49 deletions

View File

@@ -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:**

View File

@@ -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
}
},
})
}

View File

@@ -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,
})

View File

@@ -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({