Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/dom/console/tests/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  browser_console_to_mozlog.js   Sprache: JAVA

 
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */


/* Use console API to log via MOZ_LOG to stdout/file/profiler */

// Use background task in order to control MOZ_LOG env variable passed to another gecko run
const { BackgroundTasksTestUtils } = ChromeUtils.importESModule(
  "resource://testing-common/BackgroundTasksTestUtils.sys.mjs"
);
BackgroundTasksTestUtils.init(this);
const do_backgroundtask = BackgroundTasksTestUtils.do_backgroundtask.bind(
  BackgroundTasksTestUtils
);

add_task(async function test_console_to_mozlog() {
  const lines = [];
  const promise = do_backgroundtask("console", {
    onStdoutLine: (line, _proc) => {
      dump(`STDOUT: ${line}`);
      lines.push(line);
    },
    extraEnv: {
      MOZ_LOG: "console:5,my-prefix:2",
    },
  });
  const exitCode = await promise;
  is(exitCode, 0);

  const pidLine = lines.find(line => line.includes("CONSOLE-PID"));
  ok(pidLine, "Found the line where the parent process PID is logged");
  const [, pid] = pidLine.split(":");
  ok(pid, "Got the pid out of the PID line");

  // Each MOZ_LOG / console api call starts with a description of the process and thread where it is logged
  const threadPrefix = `[Parent ${pid}: Main Thread]: `;

  const expectedLogs = [
    `I/console log: "foo"`,
    `D/console debug: "bar"`,
    // Bug 1923985: For now, the console API level isn't synchronized with MOZ_LOG one.
    // shouldLogLog should be false because of my-prefix set to level 2.
    `E/my-prefix error: ({shouldLogError:true, shouldLogLog:true})`,
    `W/my-prefix warn: "warning"`,
  ];

  for (const expected of expectedLogs) {
    ok(
      lines.some(line => line.includes(`${threadPrefix}${expected}`)),
      `Found ${expected}`
    );
  }

  // The console.log call with my-prefix isn't logged because of log level set to "2" for my-prefix
  ok(
    !lines.some(line => line.includes("not-logged")),
    "Logs blocked by too verbose level aren't visible in stdout"
  );
});

Messung V0.5
C=93 H=96 G=94

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.