Package: nodejs / 20.19.2+dfsg-1

build/test_ci.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Description: adapt tools/test.py
 * log to stdout
 * increase timeout multipliers
 * rename --flaky-tests to --flaky-tests-mode and use --flaky-tests like --skip-tests 
Author: Jérémy Lal <kapouer@melix.org>
Forwarded: not-needed
Reviewed-By: Xavier Guimard <yadd@debian.org>
Last-Update: 2025-02-12

--- a/Makefile
+++ b/Makefile
@@ -547,15 +547,15 @@
 test-ci-native: LOGLEVEL := info
 test-ci-native: | benchmark/napi/.buildstamp test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp
 	$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
-		--mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \
+		--mode=$(BUILDTYPE_LOWER) --flaky-tests-mode=$(FLAKY_TESTS) \
 		$(TEST_CI_ARGS) $(CI_NATIVE_SUITES)
 
 .PHONY: test-ci-js
 # This target should not use a native compiler at all
 # Related CI job: node-test-commit-arm-fanned
 test-ci-js: | clear-stalled
-	$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
-		--mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \
+	$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap \
+		--mode=$(BUILDTYPE_LOWER) --flaky-tests-mode=$(FLAKY_TESTS) \
 		--skip-tests=$(CI_SKIP_TESTS) \
 		$(TEST_CI_ARGS) $(CI_JS_SUITES)
 	$(info Clean up any leftover processes, error if found.)
@@ -571,7 +571,7 @@
 test-ci: | clear-stalled bench-addons-build build-addons build-js-native-api-tests build-node-api-tests doc-only
 	out/Release/cctest --gtest_output=xml:out/junit/cctest.xml
 	$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
-		--mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \
+		--mode=$(BUILDTYPE_LOWER) --flaky-tests-mode=$(FLAKY_TESTS) \
 		$(TEST_CI_ARGS) $(CI_JS_SUITES) $(CI_NATIVE_SUITES) $(CI_DOC)
 	$(NODE) ./test/embedding/test-embedding.js
 	$(info Clean up any leftover processes, error if found.)
--- a/test/common/index.js
+++ b/test/common/index.js
@@ -278,16 +278,15 @@
 
 function platformTimeout(ms) {
   const multipliers = typeof ms === 'bigint' ?
-    { two: 2n, four: 4n, seven: 7n } : { two: 2, four: 4, seven: 7 };
+    { fast: 2n, slow: 4n } : { fast: 3, slow: 5 };
+ 
+  if (process.arch.startsWith('arm') || process.arch.startsWith('mips') || process.arch.startsWith('riscv'))
+    ms = multipliers.slow * ms;
+  else
+    ms = multipliers.fast * ms;
 
   if (process.features.debug)
-    ms = multipliers.two * ms;
-
-  if (exports.isAIX || exports.isIBMi)
-    return multipliers.two * ms; // Default localhost speed is slower on AIX
-
-  if (isPi)
-    return multipliers.two * ms;  // Raspberry Pi devices
+    ms = multipliers.slow * ms;
 
   return ms;
 }
--- a/tools/test.py
+++ b/tools/test.py
@@ -1404,7 +1404,7 @@
       default=False, action="store_true")
   result.add_option("--cat", help="Print the source of the tests",
       default=False, action="store_true")
-  result.add_option("--flaky-tests",
+  result.add_option("--flaky-tests-mode",
       help="Regard tests marked as flaky (run|skip|dontcare|keep_retrying)",
       default="run")
   result.add_option("--measure-flakiness",
@@ -1413,6 +1413,9 @@
   result.add_option("--skip-tests",
       help="Tests that should not be executed (comma-separated)",
       default="")
+  result.add_option("--flaky-tests",
+      help="Tests that are flaky (comma-separated)",
+      default="")
   result.add_option("--warn-unused", help="Report unused rules",
       default=False, action="store_true")
   result.add_option("-j", help="The number of parallel tasks to run, 0=use number of cores",
@@ -1459,6 +1462,7 @@
   options.run = options.run.split(',')
   # Split at commas and filter out all the empty strings.
   options.skip_tests = [test for test in options.skip_tests.split(',') if test]
+  options.flaky_tests = [test for test in options.flaky_tests.split(',') if test]
   if options.run == [""]:
     options.run = None
   elif len(options.run) != 2:
@@ -1486,8 +1490,8 @@
     # -j and ignoring -J, which is the opposite of what we used to do before -J
     # became a legacy no-op.
     print('Warning: Legacy -J option is ignored. Using the -j option.')
-  if options.flaky_tests not in [RUN, SKIP, DONTCARE, KEEP_RETRYING]:
-    print("Unknown flaky-tests mode %s" % options.flaky_tests)
+  if options.flaky_tests_mode not in [RUN, SKIP, DONTCARE, KEEP_RETRYING]:
+    print("Unknown tests mode %s" % options.flaky_tests_mode)
     return False
   return True
 
@@ -1761,11 +1765,13 @@
         sys.exit(1)
 
   def should_keep(case):
+    if any((s in case.file) for s in options.flaky_tests):
+      case.outcomes.add(FLAKY)
     if any((s in case.file) for s in options.skip_tests):
       return False
     elif SKIP in case.outcomes:
       return False
-    elif (options.flaky_tests == SKIP) and (set([SLOW, FLAKY]) & case.outcomes):
+    elif (options.flaky_tests_mode == SKIP) and (set([SLOW, FLAKY]) & case.outcomes):
       return False
     else:
       return True
@@ -1798,7 +1804,7 @@
   else:
     try:
       start = time.time()
-      result = RunTestCases(cases_to_run, options.progress, options.j, options.flaky_tests, options.measure_flakiness)
+      result = RunTestCases(cases_to_run, options.progress, options.j, options.flaky_tests_mode, options.measure_flakiness)
       exitcode = 0 if result['allPassed'] else 1
       duration = time.time() - start
     except KeyboardInterrupt: