test_make_test-node-output-v8-warning_generic.patch 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
  2. From: Shelley Vohr <[email protected]>
  3. Date: Tue, 16 Jan 2024 14:53:31 +0100
  4. Subject: test: make test-node-output-v8-warning generic
  5. Ref https://github.com/nodejs/node/pull/50421.
  6. The above CL migrated python snapshot testing to JS, and in the process
  7. added string replace calls to change 'node' as a hardcoded string to an
  8. asterisk. This was initially fixed in https://github.com/nodejs/node/pull/36489
  9. before being regressed in the above, as that PR essentially makes the wildcard
  10. meaningless. Fix it for now by replacing the process.argv0 basename instead.
  11. Some form of fix for this should be upstreamed.
  12. diff --git a/test/parallel/test-node-output-v8-warning.mjs b/test/parallel/test-node-output-v8-warning.mjs
  13. index 309e904c49b7124b64831293e0473a5d35249081..6636144f5074811f95bbe53a62718c8084088bdc 100644
  14. --- a/test/parallel/test-node-output-v8-warning.mjs
  15. +++ b/test/parallel/test-node-output-v8-warning.mjs
  16. @@ -2,11 +2,18 @@ import '../common/index.mjs';
  17. import * as fixtures from '../common/fixtures.mjs';
  18. import * as snapshot from '../common/assertSnapshot.js';
  19. import { describe, it } from 'node:test';
  20. +import { basename } from 'node:path';
  21. function replaceNodeVersion(str) {
  22. return str.replaceAll(process.version, '*');
  23. }
  24. +function replaceExecName(str) {
  25. + // Copied from lib/internal/process/warning.js
  26. + const baseName = basename(process.argv0 || 'node', '.exe');
  27. + return str.replaceAll(`${baseName} --`, '* --');
  28. +}
  29. +
  30. describe('v8 output', { concurrency: !process.env.TEST_PARALLEL }, () => {
  31. function normalize(str) {
  32. return str.replaceAll(snapshot.replaceWindowsPaths(process.cwd()), '')
  33. @@ -15,10 +22,10 @@ describe('v8 output', { concurrency: !process.env.TEST_PARALLEL }, () => {
  34. .replaceAll('*test*', '*')
  35. .replaceAll(/.*?\*fixtures\*v8\*/g, '(node:*) V8: *') // Replace entire path before fixtures/v8
  36. .replaceAll('*fixtures*v8*', '*')
  37. - .replaceAll('node --', '* --');
  38. }
  39. +
  40. const common = snapshot
  41. - .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, replaceNodeVersion);
  42. + .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, replaceNodeVersion, replaceExecName);
  43. const defaultTransform = snapshot.transform(common, normalize);
  44. const tests = [
  45. { name: 'v8/v8_warning.js' },