async function runLighthouse(url, config, logger, testRunnerOptions = {}) {
  const {isDebug} = testRunnerOptions;
  const tmpDir = `${LH_ROOT}/.tmp/smokehouse`;
  await fs.mkdir(tmpDir, {recursive: true});
  const tmpPath = await fs.mkdtemp(`${tmpDir}/smokehouse-`);
  return internalRun(url, tmpPath, config, logger, testRunnerOptions)
    // Wait for internalRun() before removing scratch directory.
    .finally(() => !isDebug && fs.rm(tmpPath, {recursive: true, force: true}));
}
Launch Chrome and do a full Lighthouse run via the Lighthouse CLI.
@param {string} url
@param {LH.Config=} config
@param {LocalConsole=} logger
@param {Smokehouse.SmokehouseOptions['testRunnerOptions']=} testRunnerOptions
@return {Promise<{lhr: LH.Result, artifacts: LH.Artifacts}>}