Browse Source

chore: cleanup tests creating crashpad handler in the test runner process (#41049)

chore: cleanup tests creating crashpad handler in the test runner process (#40668)

* chore: cleanup tests creating crashpad handler in the test runner process

* ci: logging

* ci: enable logging

* ci: more logging

* ci: run all tests

* ci: more logging

* ci: increase timeout

* Revert "ci: increase timeout"

This reverts commit 870f74455da12fdcfb4b9b299944e6d549dc76f7.

* Revert "ci: more logging"

This reverts commit 46837f8b3ae4076e6628be3085ca895eba41af52.

* Revert "ci: run all tests"

This reverts commit 6a7889ce67eb3b4fa18c2c26ae86e19c7c9c44fa.

* Revert "ci: more logging"

This reverts commit 351473ab438b835f1a5761712aedd9dc9e4a393d.

* Revert "ci: enable logging"

This reverts commit 194109ed5a87392d835edfe5fd56b7237e91e209.

* Revert "ci: logging"

This reverts commit 9a3396fc7ab9a0d438822fe3b72f165b1e542286.

* chore: disable flaky ia32 tests

(cherry picked from commit 83f15bd957b19f753a12a806f6a4225aea371469)

Co-authored-by: Robo <[email protected]>
John Kleinschmidt 1 year ago
parent
commit
0b94b5b86f
2 changed files with 15 additions and 11 deletions
  1. 10 7
      spec/api-crash-reporter-spec.ts
  2. 5 4
      spec/api-utility-process-spec.ts

+ 10 - 7
spec/api-crash-reporter-spec.ts

@@ -5,7 +5,6 @@ import * as Busboy from 'busboy';
 import * as path from 'path';
 import { ifdescribe, ifit, defer, startRemoteControlApp, repeatedly, listen } from './lib/spec-helpers';
 import { app } from 'electron/main';
-import { crashReporter } from 'electron/common';
 import { EventEmitter } from 'events';
 import * as fs from 'fs';
 import * as uuid from 'uuid';
@@ -583,16 +582,20 @@ ifdescribe(!isLinuxOnArm && !process.mas && !process.env.DISABLE_CRASH_REPORTER_
   });
 
   describe('start() option validation', () => {
-    it('requires that the submitURL option be specified', () => {
-      expect(() => {
+    it('requires that the submitURL option be specified', async () => {
+      const { remotely } = await startRemoteControlApp();
+      await expect(remotely(() => {
+        const { crashReporter } = require('electron');
         crashReporter.start({} as any);
-      }).to.throw('submitURL must be specified when uploadToServer is true');
+      })).to.be.rejectedWith('submitURL must be specified when uploadToServer is true');
     });
 
-    it('allows the submitURL option to be omitted when uploadToServer is false', () => {
-      expect(() => {
+    it('allows the submitURL option to be omitted when uploadToServer is false', async () => {
+      const { remotely } = await startRemoteControlApp();
+      await expect(remotely(() => {
+        const { crashReporter } = require('electron');
         crashReporter.start({ uploadToServer: false } as any);
-      }).not.to.throw();
+      })).to.be.fulfilled();
     });
 
     it('can be called twice', async () => {

+ 5 - 4
spec/api-utility-process-spec.ts

@@ -9,6 +9,7 @@ import { setImmediate } from 'timers/promises';
 
 const fixturesPath = path.resolve(__dirname, 'fixtures', 'api', 'utility-process');
 const isWindowsOnArm = process.platform === 'win32' && process.arch === 'arm64';
+const isWindows32Bit = process.platform === 'win32' && process.arch === 'ia32';
 
 describe('utilityProcess module', () => {
   describe('UtilityProcess constructor', () => {
@@ -57,14 +58,14 @@ describe('utilityProcess module', () => {
       expect(code).to.equal(0);
     });
 
-    it('emits \'exit\' when child process crashes', async () => {
+    ifit(!isWindows32Bit)('emits \'exit\' when child process crashes', async () => {
       const child = utilityProcess.fork(path.join(fixturesPath, 'crash.js'));
       // Do not check for exit code in this case,
       // SIGSEGV code can be 139 or 11 across our different CI pipeline.
       await once(child, 'exit');
     });
 
-    it('emits \'exit\' corresponding to the child process', async () => {
+    ifit(!isWindows32Bit)('emits \'exit\' corresponding to the child process', async () => {
       const child1 = utilityProcess.fork(path.join(fixturesPath, 'endless.js'));
       await once(child1, 'spawn');
       const child2 = utilityProcess.fork(path.join(fixturesPath, 'crash.js'));
@@ -88,7 +89,7 @@ describe('utilityProcess module', () => {
   });
 
   describe('app \'child-process-gone\' event', () => {
-    it('with default serviceName', async () => {
+    ifit(!isWindows32Bit)('with default serviceName', async () => {
       utilityProcess.fork(path.join(fixturesPath, 'crash.js'));
       const [, details] = await once(app, 'child-process-gone') as [any, Electron.Details];
       expect(details.type).to.equal('Utility');
@@ -97,7 +98,7 @@ describe('utilityProcess module', () => {
       expect(details.reason).to.be.oneOf(['crashed', 'abnormal-exit']);
     });
 
-    it('with custom serviceName', async () => {
+    ifit(!isWindows32Bit)('with custom serviceName', async () => {
       utilityProcess.fork(path.join(fixturesPath, 'crash.js'), [], { serviceName: 'Hello World!' });
       const [, details] = await once(app, 'child-process-gone') as [any, Electron.Details];
       expect(details.type).to.equal('Utility');