From 745df8e0d4a125a0cc730799c30ab92cffc69100 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9my=20Lal?= Date: Sat, 18 May 2024 14:26:22 +0200 Subject: [PATCH] adapt test-ci build target for buildd Forwarded: not-needed Reviewed-By: Xavier Guimard Last-Update: 2020-02-09 * run tests with ./node * remove addons from test-ci suite, because it creates a dependency loop nodejs -> node-gyp -> nodejs which is painful to manage. * disabled because it requires stdin: + test-stdout-close-unref + test-regress-GH-746 * test-tick-processor fails on ppc64 and s390x, currently investigated https://github.com/nodejs/node/issues/2471 * test-cluster-disconnect sometimes fails on busy buildd, forwarded upstream https://github.com/nodejs/node/issues/3383 * test-fs-watch is flaky, might be related to https://github.com/nodejs/node/issues/4082 * huge timeout value for all platforms, buildd could be busy * test-npm-install and test-release-npm must fail, debian package dfsg-repacked npm out * ability to override CI_NATIVE_SUITES, CI_JS_SUITES * disable tests failing because DNS is disabled * sequential/test-http2-session-timeout is flaky https://github.com/nodejs/node/issues/20628 Gbp-Pq: Topic build Gbp-Pq: Name test_ci.patch --- Makefile | 2 +- test/common/index.js | 15 +++++----- test/parallel/parallel.status | 46 ++++++++++++++++++++++++++++++- test/sequential/sequential.status | 19 +++++++++++++ tools/test.py | 20 +------------- 5 files changed, 73 insertions(+), 29 deletions(-) diff --git a/Makefile b/Makefile index 2f62c1c6f..cef9e8ddf 100644 --- a/Makefile +++ b/Makefile @@ -551,7 +551,7 @@ test-ci-native: | benchmark/napi/.buildstamp test/addons/.buildstamp test/js-nat # 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 \ + $(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap \ --mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \ $(TEST_CI_ARGS) $(CI_JS_SUITES) $(info Clean up any leftover processes, error if found.) diff --git a/test/common/index.js b/test/common/index.js index 7edea69b8..e6d5d2506 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -267,16 +267,15 @@ const pwdCommand = isWindows ? 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; } diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 54de053b4..de5da589c 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -12,6 +12,45 @@ test-fs-read-stream-concurrent-reads: PASS, FLAKY # https://github.com/nodejs/node/issues/52630 test-error-serdes: PASS, FLAKY +test-process-config : PASS,FLAKY +test-regress-GH-746 : PASS,FLAKY +test-stdout-close-unref : PASS,FLAKY +test-npm-install : FAIL +test-npm-version : FAIL +test-release-npm : FAIL +# skip tests accessing network +test-dns : SKIP +test-net-connect-immediate-finish : SKIP +test-net-better-error-messages-port-hostname : SKIP + +# in debian build env, skip because it somehow tries to access network +test-https-connect-address-family : SKIP +test-tls-connect-address-family : SKIP +test-dns-cancel-reverse-lookup: SKIP +test-dns-resolveany-bad-ancount: SKIP + +# https://bugs.debian.org/919588 +## flaky on some user environments +test-net-listen-after-destroying-stdin: PASS,FLAKY +## fails when running with eatmydata +test-fs-error-messages: PASS,FLAKY + +# this new test doesn't have a built target properly setup +test-child-process-stdio-overlapped: SKIP + +# does not pass in autopkgtest ci env +test-cluster-bind-privileged-port: PASS,FLAKY +test-cluster-shared-handle-bind-privileged-port: PASS,FLAKY +test-debugger-preserve-breaks: PASS,FLAKY + +# corepack is dfsg-excluded +test-corepack-yarn-install: SKIP +test-corepack-version: SKIP + +# fails on 32-bits arch, see #1069753 +test-fs-utimes: PASS,FLAKY +test-fs-utimes-y2K38: PASS,FLAKY + [$system==win32] # Windows on x86 @@ -43,6 +82,10 @@ test-inspector-async-stack-traces-set-interval: PASS, FLAKY test-crypto-dh-stateless: SKIP test-crypto-keygen: SKIP +[$arch==mips64el] +# the debug flag is for hacking v8 internals +test-debug-args: PASS,FLAKY + [$system==solaris] # Also applies to SmartOS # https://github.com/nodejs/node/issues/43457 test-domain-no-error-handler-abort-on-uncaught-0: PASS, FLAKY @@ -94,9 +137,10 @@ test-tls-write-error: PASS, FLAKY # https://github.com/nodejs/node/issues/48047 test-http-pipeline-flood: SKIP -[$asan==on] +# flaky on sbuild # https://github.com/nodejs/node/issues/39655 test-cluster-primary-error: PASS, FLAKY +test-cluster-primary-kill: PASS, FLAKY [$arch==s390x] # https://github.com/nodejs/node/issues/50222 diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status index 746962f9b..b48ac6345 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -16,6 +16,25 @@ test-http2-large-file: PASS, FLAKY # fails on arm64, armhf, loong64 since openssl32 test-tls-session-timeout: PASS, FLAKY +# flaky or failing at least on debian build servers +test-fs-watch : PASS,FLAKY +test-force-repl : SKIP +test-performance : SKIP +test-http2-session-timeout : PASS,FLAKY +test-debugger-preserve-breaks : PASS,FLAKY +test-debugger-exec-scope : PASS,FLAKY +test-worker-heapsnapshot-options : PASS,FLAKY + +# https://github.com/nodejs/node/issues/24403 +test-cli-syntax: PASS,FLAKY + +# for debian buildd i386 (but pass on porter barriere.d.o) +test-debugger-heap-profiler: PASS,FLAKY + +# new test - failing/hanging https://github.com/nodejs/node/issues/44898 +test-watch-mode: SKIP +test-watch-mode-inspect: SKIP + [$system==win32] # https://github.com/nodejs/node/issues/47116 test-http-max-sockets: PASS, FLAKY diff --git a/tools/test.py b/tools/test.py index 13ea6d120..38a9ee9c0 100755 --- a/tools/test.py +++ b/tools/test.py @@ -941,25 +941,7 @@ class Context(object): self.node_has_crypto = True def GetVm(self, arch, mode): - if self.vm is not None: - return self.vm - if arch == 'none': - name = 'out/Debug/node' if mode == 'debug' else 'out/Release/node' - else: - name = 'out/%s.%s/node' % (arch, mode) - - # Currently GYP does not support output_dir for MSVS. - # http://code.google.com/p/gyp/issues/detail?id=40 - # It will put the builds into Release/node.exe or Debug/node.exe - if utils.IsWindows(): - if not exists(name + '.exe'): - name = name.replace('out/', '') - name = os.path.abspath(name + '.exe') - - if not exists(name): - raise ValueError('Could not find executable. Should be ' + name) - - return name + return './node' def GetTimeout(self, mode, section=''): timeout = self.timeout * TIMEOUT_SCALEFACTOR[ARCH_GUESS or 'ia32'][mode] -- 2.30.2