From: Jérémy Lal Date: Wed, 14 Jan 2026 00:19:18 +0000 (+0100) Subject: adapt tools/test.py X-Git-Tag: archive/raspbian/22.22.0+dfsg+_cs22.19.6-1+rpi1^2~16 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3cfe45bbf43495aa63342e12a73e311847c098c8;p=nodejs.git adapt tools/test.py Forwarded: not-needed Reviewed-By: Xavier Guimard Last-Update: 2025-02-12 * log to stdout * increase timeout multipliers * rename --flaky-tests to --flaky-tests-mode and use --flaky-tests like --skip-tests Gbp-Pq: Topic build Gbp-Pq: Name test_ci.patch --- diff --git a/Makefile b/Makefile index 56d0cb9c4..22736850c 100644 --- a/Makefile +++ b/Makefile @@ -579,7 +579,7 @@ endif test-ci-native: LOGLEVEL := info ## Build and test addons without building anything else. test-ci-native: | benchmark/napi/.buildstamp test/addons/.buildstamp test/js-native-api/.buildstamp test/node-api/.buildstamp test/sqlite/.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 @@ -587,7 +587,7 @@ test-ci-native: | benchmark/napi/.buildstamp test/addons/.buildstamp test/js-nat # Related CI job: node-test-commit-arm-fanned test-ci-js: | clear-stalled ## Build and test JavaScript with building anything else. $(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) \ --skip-tests=$(CI_SKIP_TESTS) \ $(TEST_CI_ARGS) $(CI_JS_SUITES) $(info Clean up any leftover processes, error if found.) @@ -603,7 +603,7 @@ test-ci: LOGLEVEL := info ## Build and test everything (CI). test-ci: | clear-stalled bench-addons-build build-addons build-js-native-api-tests build-node-api-tests build-sqlite-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.) diff --git a/test/common/index.js b/test/common/index.js index 1cd23e935..d1c08edd6 100755 --- a/test/common/index.js +++ b/test/common/index.js @@ -251,21 +251,7 @@ const pwdCommand = isWindows ? function platformTimeout(ms) { const multipliers = typeof ms === 'bigint' ? { two: 2n, four: 4n, seven: 7n } : { two: 2, four: 4, seven: 7 }; - - if (isDebug) - 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 - - if (isRiscv64) { - return multipliers.four * ms; - } - - return ms; + return multipliers.seven * ms; } const knownGlobals = new Set([ diff --git a/tools/test.py b/tools/test.py index 40b6d1184..8c278d89b 100755 --- a/tools/test.py +++ b/tools/test.py @@ -1407,7 +1407,7 @@ def BuildOptions(): default=False, action="store_true") result.add_argument("--cat", help="Print the source of the tests", default=False, action="store_true") - result.add_argument("--flaky-tests", + result.add_argument("--flaky-tests-mode", help="Regard tests marked as flaky (run|skip|dontcare|keep_retrying)", default="run") result.add_argument("--measure-flakiness", @@ -1416,6 +1416,9 @@ def BuildOptions(): result.add_argument("--skip-tests", help="Tests that should not be executed (comma-separated)", default="") + result.add_argument("--flaky-tests", + help="Tests that are flaky (comma-separated)", + default="") result.add_argument("--warn-unused", help="Report unused rules", default=False, action="store_true") result.add_argument("-j", help="The number of parallel tasks to run, 0=use number of cores", @@ -1465,6 +1468,7 @@ def ProcessOptions(options): 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: @@ -1492,8 +1496,8 @@ def ProcessOptions(options): # -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 @@ -1777,11 +1781,13 @@ def Main(): 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 @@ -1814,7 +1820,7 @@ def Main(): 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: