Files
react-native-devtools-frontend/scripts
Peter Marshall 580bbf4bbc tests: Add final changes for parallel e2e tests
Only set the unhandled rejection handler once per process.
We run the setup and teardown multiple times per-process now.

Add clearPuppeteerState() to unset the state between runs on
a parallel test runner. This is because the port changes
between successive runs in the same process.

Remove the hasShutdown logic from mocha_hooks. Also remove the
beforeExit hook which was causing this to get called at least
twice for every process. It already gets called in the ordinary
shutdown case via the afterAll() hook. We only need to call it
in the extraordinary case which is the SIGINT case. Now that we
do the shutdown multiple times per process, we don't care if we
already shutdown on this process or not. The only issue could be
if ctrl+c is sent during the shutdown, but then we are crashing
anyway.

Right now the default # of jobs is 1, so out bots will still run
in serial mode. We want to add parallel mode as an options for
local development while we iron out any last problems with this
approach.

You can test this locally with npm run e2etests -- --jobs=8.

We make use of global setup fixtures to only run one hosted
mode server and share it between all parallel runners. Each
runner still starts its own chrome and restarts it between
files, which is a bit inefficient but still a big improvement
compared to serial mode.

Split the hosted mode server out into its own file inside
conductor as it can be dealt with entirely separately, and
its state is not per-process like the chrome state, but only
per-main-process which launches the test runner sub-processes.

Bug: 1101784
Change-Id: Ic0c9be3559708fd5403a88882b9fb93257633de9
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2288694
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
2020-11-13 15:20:27 +00:00
..
2020-10-20 12:55:34 +00:00
2020-11-13 12:28:15 +00:00
2019-11-17 14:56:34 +00:00
2020-03-19 10:51:02 +00:00
2020-03-12 14:53:52 +00:00
2020-11-13 12:15:35 +00:00
2019-06-10 23:19:12 +00:00
2020-05-14 06:52:14 +00:00
2020-03-26 11:36:00 +00:00
2020-03-11 14:47:51 +00:00
2020-09-22 13:29:16 +00:00

DevTools Scripts

Development workflow scripts

These are scripts that can be useful to run independently as you're working on Chrome DevTools front-end.

The newer scripts such as for testing and hosted mode are written in Node.js, which has become the standard toolchain for web apps. The older scripts such as building (e.g. bundling and minifying) are written in Python, which has first-class support in Chromium's infrastructure.

Overview

Folders

  • build - Python package for generating DevTools debug and release mode
  • chrome_debug_launcher - automagically finds Chrome Canary and launches it with debugging flags (e.g. remote debugging port)
  • closure - see section on Closure Compiler below
  • gulp - experimental build process written in node.js & gulp to remove the dependency on Chromium-specific build tools (i.e. gn and ninja)
  • hosted_mode - run DevTools on a localhost development server
  • jsdoc_validator - enforces the use of Closure type annotations

Python Scripts

  • compile_frontend.py - runs closure compiler to do static type analysis
    • Note: the compiled outputs are not actually used to run DevTools
  • lint_javascript.py - run eslint
  • optimize_svg_images.py - manually run when changing svg images

Node.js scripts

The easiest way to run the node.js scripts is to use npm run which displays all the commands. For more information on the specific npm run commands, take a look at the primary devtools front-end readme (../readme.md).

Closure

DevTools manually rolls the closure compiler to ./closure. If you manually roll closure compiler, you will need to re-generate the closure_runner (in ./closure) and jsdoc_validator custom jars using the python scripts in their respective directory.