cjihrig
3c35188639
test_runner: refactor Promise chain in run()
...
This commit refactors the chain of functions in run() to use an
async function instead of creating an awkward primordial-based
Promise chain.
PR-URL: https://github.com/nodejs/node/pull/55958
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Pietro Marchini <pietro.marchini94@gmail.com >
Reviewed-By: Jacob Smith <jacob@frende.me >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-11-25 07:35:36 +00:00
cjihrig
216fd206b6
test_runner: refactor build Promise in Suite()
...
This commit refactors the buildSuite Promise logic in the Suite
constructor to use an async function instead of creating an
awkward primordial-based Promise chain.
PR-URL: https://github.com/nodejs/node/pull/55958
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Pietro Marchini <pietro.marchini94@gmail.com >
Reviewed-By: Jacob Smith <jacob@frende.me >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-11-25 07:35:35 +00:00
Colin Ihrig
b09618e474
test_runner: simplify hook running logic
...
This commit removes some asynchronous logic from the runHook()
method and replaces ArrayPrototypeReduce() with a for loop.
PR-URL: https://github.com/nodejs/node/pull/55963
Reviewed-By: Pietro Marchini <pietro.marchini94@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2024-11-25 02:30:43 +00:00
Colin Ihrig
c921676512
test_runner: mark snapshot testing as stable
...
This commit marks the test runner's snapshot testing API as
stable.
PR-URL: https://github.com/nodejs/node/pull/55897
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Pietro Marchini <pietro.marchini94@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Jacob Smith <jacob@frende.me >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-11-19 17:37:35 +00:00
Colin Ihrig
01b9a54a58
test_runner: mark context.plan() as stable
...
This function does not require a CLI flag, does not emit a warning,
and is a fairly simple API that is already being used heavily in
the ecosystem. This commit marks context.plan() as stable.
PR-URL: https://github.com/nodejs/node/pull/55895
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Pietro Marchini <pietro.marchini94@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-11-19 15:01:30 +00:00
Colin Ihrig
1d01ad6773
doc,lib,src,test: unflag sqlite module
...
This commit allows the node:sqlite module to be used without
starting Node with a CLI flag. The module is still experimental.
Fixes: https://github.com/nodejs/node/issues/55854
PR-URL: https://github.com/nodejs/node/pull/55890
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-11-19 03:23:18 +00:00
Colin Ihrig
e32521a7b9
test_runner: close and flush destinations on forced exit
...
This commit updates the test runner to explicitly close and flush
all destination file streams when the --test-force-exit flag is
used.
Fixes: https://github.com/nodejs/node/issues/54327
PR-URL: https://github.com/nodejs/node/pull/55099
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
2024-09-28 13:59:06 +00:00
Colin Ihrig
059e08bb21
test_runner: add 'test:summary' event
...
This commit adds a new 'test:summary' event to the test runner's
reporting interface. This new event serves two purposes:
- In the future, the test runner internals will no longer need to
change the process exit code. This may be important to run()
users. Unfortunately, this is a breaking change, so it needs to
be changed in a major version.
- The reporting interface now has a single event that can identify
passing or failing test runs.
Refs: https://github.com/nodejs/node/issues/53867
Refs: https://github.com/nodejs/node/issues/54812
PR-URL: https://github.com/nodejs/node/pull/54851
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-09-21 17:41:52 +00:00
Colin Ihrig
dbaef339aa
test_runner: detect only tests when --test is not used
...
This commit updates the way the test runner processes 'only'
tests when node:test files are run without the --test CLI.
This is a breaking change.
PR-URL: https://github.com/nodejs/node/pull/54881
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-09-15 14:20:59 +00:00
cjihrig
f5f67ae4a7
test_runner: detect only tests when isolation is off
...
This commit updates the way the test runner processes 'only'
tests when process-based test isolation is disabled. The
--test-only flag is no longer necessary in this scenario. The
test runner will automatically detect 'only' tests and apply the
appropriate filtering.
PR-URL: https://github.com/nodejs/node/pull/54832
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-09-12 12:41:11 -04:00
cjihrig
e78fd8c0ad
test_runner: apply filtering when tests begin
...
This commit updates the way filtering is applied to tests and
suites. After this change, filters are applied just before the
test/suite is started. The results are the same, but this allows
us to eventually move away from the --test-only flag except
when process level isolation is used.
PR-URL: https://github.com/nodejs/node/pull/54832
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-09-12 12:41:11 -04:00
Colin Ihrig
123bb4cb22
test_runner: improve code coverage cleanup
...
The test runner's code coverage leaves old coverage data in the
temp directory. This commit updates the cleanup logic to:
- Stop code collection. Otherwise V8 would write collection data
again when the process exits.
- Remove the temp directory containing the coverage data.
- Attempt to clean up the coverage data even if parsing the
data resulted in an error.
With this change, I no longer see any coverage data left behind
in the system temp directory.
Refs: https://github.com/nodejs/build/issues/3864
Refs: https://github.com/nodejs/build/issues/3887
PR-URL: https://github.com/nodejs/node/pull/54856
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-09-11 02:50:28 +00:00
Colin Ihrig
eb7e18fe94
test_runner: always make spec the default reporter
...
This is a breaking change. Prior to this commit, the test_runner
defaulted to the spec reporter if using a TTY, and the TAP
reporter otherwise. This commit makes spec the default reporter
unconditionally. TAP output is still available via the
--test-reporter=tap CLI flag.
Fixes: https://github.com/nodejs/node/issues/54540
PR-URL: https://github.com/nodejs/node/pull/54548
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
2024-08-27 15:22:16 +00:00
Colin Ihrig
3d5357a2f4
test: refactor test_runner tests to change default reporter
...
This commit updates the test runner tests in order to switch the
default reporter from tap to spec. This commit can be backported,
while changing the default reporter cannot.
Refs: https://github.com/nodejs/node/issues/54540
PR-URL: https://github.com/nodejs/node/pull/54547
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
2024-08-27 00:54:22 +00:00
Colin Ihrig
05bd3cfc73
test: force spec reporter in test-runner-watch-mode.mjs
...
In the CI this test generates TAP output that can confuse the
Python test runner. Avoid the problem by not outputting TAP at
from the spawned child process.
Fixes: https://github.com/nodejs/node/issues/54535
PR-URL: https://github.com/nodejs/node/pull/54538
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-08-26 12:39:36 +00:00
cjihrig
6b6b97766c
deps: sqlite: fix Windows compilation
...
This is equivalent to the following upstream change:
https://sqlite.org/src/info/6c103aee6f146869
Original commit message:
Change constant expressions to pre-computed constants, because apparently
MSVC on ARM requires that.
[forum:/forumpost/4feb1685cced0a8e|Forum thread 4feb1685cced0a8e].
FossilOrigin-Name: 6c103aee6f146869a3e0c48694592f2e4c6b57ecdb4450f46e762c38b4e686f1
PR-URL: https://github.com/nodejs/node/pull/54433
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
2024-08-21 15:36:08 +00:00
cjihrig and Moshe Atlow
cc26951180
test_runner: support running tests in process
...
This commit introduces a new --experimental-test-isolation flag
that, when set to 'none', causes the test runner to execute all
tests in the same process. By default, this is the main test
runner process, but if watch mode is enabled, it spawns a separate
process that runs all of the tests.
The default value of the new flag is 'process', which uses the
existing behavior of running each test file in its own child
process.
It is worth noting that when the isolation mode is 'none', globals
and all other top level logic (such as top level before() and after()
hooks) is shared among all files.
Co-authored-by: Moshe Atlow <moshe@atlow.co.il >
PR-URL: https://github.com/nodejs/node/pull/53927
Fixes: https://github.com/nodejs/node/issues/51548
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-21 13:39:19 +00:00
cjihrig
385ca623e4
test_runner: defer inheriting hooks until run()
...
This commit updates the way the test runner computes inherited
hooks. Instead of computing them when the Test/Suite is
constructed, they are now computed just prior to running the
Test/Suite. The reason is because when multiple test files are
run in the same process, it is possible for the inherited hooks
to change as more files are loaded.
PR-URL: https://github.com/nodejs/node/pull/53927
Fixes: https://github.com/nodejs/node/issues/51548
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-21 13:39:18 +00:00
Colin Ihrig and Simon Chan
821ffab0f7
test_runner: account for newline in source maps
...
This commit updates the source mapping logic in the test runner
to account for newline characters that are not included in line
length calculations.
Co-authored-by: Simon Chan <1330321+yume-chan@users.noreply.github.com >
Fixes: https://github.com/nodejs/node/issues/54240
PR-URL: https://github.com/nodejs/node/pull/54444
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-08-21 02:38:55 +00:00
Colin Ihrig
ef4bdbfb76
test_runner: finish build phase before running tests
...
This commit updates the test runner to wait for suites to finish
building before starting any tests. This is necessary when test
filtering is enabled, as suites may transition from filtered to
not filtered depending on what is inside of them.
Fixes: https://github.com/nodejs/node/issues/54084
Fixes: https://github.com/nodejs/node/issues/54154
PR-URL: https://github.com/nodejs/node/pull/54423
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
2024-08-20 07:14:01 +00:00
Colin Ihrig
2226155ee6
test_runner: report failures in filtered suites
...
This commit updates the test runner's filter logic to handle
test suite failures during the build phase. Prior to this commit,
these suites were silently filtered.
PR-URL: https://github.com/nodejs/node/pull/54387
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2024-08-18 17:34:11 +00:00
cjihrig
48d63c467d
test_runner: remove parseCommandLine() from test.js
...
The lib/internal/test_runner/test.js should not use the
parseCommandLine() function. This commit refactors the code to
avoid doing so.
PR-URL: https://github.com/nodejs/node/pull/54353
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-15 13:52:56 +00:00
cjihrig
3f694f7c99
test_runner: refactor hook creation
...
This commit makes hook creation more consistent by always
passing in a reference to the test that owns the hook. It also
removes some unnecessary validation on internal API.
PR-URL: https://github.com/nodejs/node/pull/54353
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-15 13:52:56 +00:00
cjihrig
7ac3a50345
test_runner: return setup() from parseCommandLine()
...
Now that parseCommandLine() returns run() compatible arguments,
it makes sense to return setupTestReporters() as the setup()
argument to run(). This also removes another problematic use of
parseCommandLine() in setupTestReporters().
PR-URL: https://github.com/nodejs/node/pull/54353
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-15 13:52:55 +00:00
cjihrig
5e9f1b7353
test_runner: pass global options to createTestTree()
...
The global configuration should already be known when
createTestTree() is called. This commit updates that function
to take the global configuration as an input.
PR-URL: https://github.com/nodejs/node/pull/54353
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-15 13:52:55 +00:00
cjihrig
ecaeaf8f87
test_runner: pass harness object as option to root test
...
This commit initializes the root harness object before the root
test and passes the harness as an option to the root test
constructor. This commit also attaches the global configuration
to the harness. This will allow the parseCommandLine() call in
test.js to be removed, as those values are now available via
the root test.
PR-URL: https://github.com/nodejs/node/pull/54353
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-15 13:52:54 +00:00
cjihrig
1abdd66da3
test_runner: use run() argument names in parseCommandLine()
...
This commit updates parseCommandLine() to use the names supported
by run(). This removes some unnecessary renaming code, and allows
node:test and run() to more easily share code.
PR-URL: https://github.com/nodejs/node/pull/54353
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2024-08-15 13:52:53 +00:00
cjihrig
b8a2550ec0
test: unmark test-sqlite as flaky
...
PR-URL: https://github.com/nodejs/node/pull/54014
Fixes: https://github.com/nodejs/node/issues/54006
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2024-08-12 13:48:29 +00:00
cjihrig
916865ba8b
sqlite: split up large test file
...
The original test/parallel/test-sqlite.js test appears to time
out in the CI occasionally. This commit splits the test into
several smaller test files.
Fixes: https://github.com/nodejs/node/issues/54006
PR-URL: https://github.com/nodejs/node/pull/54014
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2024-08-12 13:48:28 +00:00
cjihrig
717b4018f1
sqlite: ensure statement finalization on db close
...
This commit adds statement tracking to the DatabaseSync class.
When a database is closed manually or via garbage collection, it
will force all associated prepared statements to be finalized.
This should mitigate "zombie" connections which can introduce
test flakiness in the CI on Windows.
PR-URL: https://github.com/nodejs/node/pull/54014
Fixes: https://github.com/nodejs/node/issues/54006
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2024-08-12 13:48:28 +00:00
Colin Ihrig
ca2ed88f94
test_runner: remove outdated comment
...
Network imports were removed, so remove the comment.
Refs: https://github.com/nodejs/node/pull/53822
PR-URL: https://github.com/nodejs/node/pull/54146
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-08-05 14:54:52 +09:30
Colin Ihrig
67f713731c
test_runner: run after hooks even if test is aborted
...
If a test is run, but aborted, any after hooks should still be
run, as they may need to perform cleanup.
PR-URL: https://github.com/nodejs/node/pull/54151
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Raz Luvaton <rluvaton@gmail.com >
2024-08-04 15:56:04 +00:00
Colin Ihrig
14e7eb34f4
test_runner: remove redundant bootstrap boolean
...
The test runner bootstrap process awaits a Promise and then sets
a boolean flag. This commit consolidates the Promise and boolean
into a single value. This commit also ensures that the globalRoot
test is always assigned in createTestTree() in order to better
consolidate the CLI/run() and non-CLI configuration.
PR-URL: https://github.com/nodejs/node/pull/54013
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-07-27 13:27:03 +00:00
Colin Ihrig
d1c7817da2
test: mark 'test/parallel/test-sqlite.js' as flaky
...
The current test is large and can time out. It should be split
into multiple smaller tests as done in #54014 . However, that
approach appears to change GC behavior such that the database
files are not cleaned up quickly enough on Windows. Forcing
any unfinalized SQL statements to be GC'ed appears to fix the
problem. Mark the original test as flaky until the necessary
code changes are made.
PR-URL: https://github.com/nodejs/node/pull/54031
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com >
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2024-07-25 12:12:41 +00:00
Colin Ihrig
ea837a0db9
test_runner: refactor coverage to pass in config options
...
This commit updates the test runner's code coverage so that
coverage options are explicitly passed in instead of pulled
from command line options.
PR-URL: https://github.com/nodejs/node/pull/53931
Refs: https://github.com/nodejs/node/issues/53924
Refs: https://github.com/nodejs/node/issues/53867
Refs: https://github.com/nodejs/node/pull/53866
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-07-22 04:26:43 +00:00
Colin Ihrig
dab12a2f01
test_runner: refactor and simplify internals
...
This commit refactors some of the internals of the test runner.
PR-URL: https://github.com/nodejs/node/pull/53921
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
2024-07-20 16:59:47 +00:00
Colin Ihrig
7702aab336
doc: move --test-coverage-{ex,in}clude to proper location
...
This commit moves the documentation for two CLI flags to the
proper sorted location.
PR-URL: https://github.com/nodejs/node/pull/53926
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-07-20 13:26:09 +00:00
cjihrig
05ca03569e
test_runner: refactor snapshots to get file from context
...
This commit refactors the internals of snapshot tests to get the
name of the test file from the test context instead of passing
it to the SnapshotManager constructor. This is prep work for
supporting running test files in the test runner process.
PR-URL: https://github.com/nodejs/node/pull/53853
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2024-07-17 07:01:22 +00:00
cjihrig
2ce7c69fce
test_runner: add context.filePath
...
This commit adds a filePath getter to the TestContext and
SuiteContext classes. This allows a context to be mapped back to
the original test file that created it, even if it was imported
from another file. This is useful for mapping features like test
snapshots to the correct test file. This is also prep work for
supporting running test files in the test runner process.
PR-URL: https://github.com/nodejs/node/pull/53853
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2024-07-17 07:01:21 +00:00
Colin Ihrig
f09063752b
test_runner: consolidate option parsing
...
This commit consolidates all option parsing for the test runner
in the parseCommandLine() internal helper function. The exception
is a couple of temporary flags used for feature gating which
will eventually become no-ops. This consolidation is prep work
for supporting running test files in the test runner process.
PR-URL: https://github.com/nodejs/node/pull/53849
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-07-16 21:05:46 +00:00
Colin Ihrig
034a2409bf
test_runner: remove plan option from run()
...
This commit removes the plan option to run(). I believe it was
added by mistake. It is not documented, untested, and a test
plan does not make sense in the context of run().
This commit also fixes a minor formatting issue in a related
fixture.
Refs: https://github.com/nodejs/node/pull/52860
PR-URL: https://github.com/nodejs/node/pull/53834
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-07-15 17:10:01 +00:00
Colin Ihrig
b4e8f1b6bb
lib,src,test,doc: add node:sqlite module
...
PR-URL: https://github.com/nodejs/node/pull/53752
Fixes: https://github.com/nodejs/node/issues/53264
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br >
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Paolo Insogna <paolo@cowtech.it >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-07-09 20:33:38 +00:00
cjihrig
15b3902619
deps: sqlite: fix Windows compilation
...
This is equivalent to the following upstream change:
https://sqlite.org/src/info/6c103aee6f146869
Original commit message:
Change constant expressions to pre-computed constants, because apparently
MSVC on ARM requires that.
[forum:/forumpost/4feb1685cced0a8e|Forum thread 4feb1685cced0a8e].
FossilOrigin-Name: 6c103aee6f146869a3e0c48694592f2e4c6b57ecdb4450f46e762c38b4e686f1
PR-URL: https://github.com/nodejs/node/pull/52435
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev >
2024-06-14 18:40:05 +00:00
cjihrig
3d09e579d3
deps,lib,src: add experimental web storage
...
This commit introduces an experimental implementation of the Web
Storage API using SQLite as the backing data store.
PR-URL: https://github.com/nodejs/node/pull/52435
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev >
2024-06-14 18:40:04 +00:00
cjihrig
9f6c12413c
test_runner: add snapshot testing
...
This commit adds a t.assert.snapshot() method that implements
snapshot testing. Serialization uses JSON.stringify() by default,
but users can configure the serialization to meet their needs.
PR-URL: https://github.com/nodejs/node/pull/53169
Fixes: https://github.com/nodejs/node/issues/48260
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
2024-05-30 09:07:17 -04:00
cjihrig
851dcddb57
doc: add context.assert docs
...
When context.assert was added, no docs were added. This commit
adds initial documentation for context.assert because the
snapshot() function requires them.
PR-URL: https://github.com/nodejs/node/pull/53169
Refs: https://github.com/nodejs/node/pull/52860
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
2024-05-30 09:07:17 -04:00
cjihrig and Jacob Smith
90e81aaad7
test_runner: add context.fullName
...
This commit adds a fullName getter to the TestContext and
SuiteContext classes. This is similar to the existing name getter,
but also includes the name of all ancestor tests/suites.
PR-URL: https://github.com/nodejs/node/pull/53169
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
Co-authored-by: Jacob Smith <jacob@frende.me >
2024-05-30 09:07:17 -04:00
Colin Ihrig
f9a09131d7
test_runner: fix t.assert methods
...
The node:assert module contains several top level APIs that do
not make sense to expose as methods on t.assert. Examples include
AssertionError and CallTracker. This commit removes such APIs from
t.assert.
Refs: https://github.com/nodejs/node/pull/52860
PR-URL: https://github.com/nodejs/node/pull/53049
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
2024-05-20 16:49:15 +00:00
Colin Ihrig
a619789ef0
test_runner: support module mocking
...
This commit adds experimental module mocking to the test runner.
PR-URL: https://github.com/nodejs/node/pull/52848
Fixes: https://github.com/nodejs/node/issues/51164
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
2024-05-19 05:09:09 +00:00
Colin Ihrig and Marco Ippolito
0c83f80ff3
test_runner: support test plans
...
Co-Authored-By: Marco Ippolito <marcoippolito54@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/52860
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Paolo Insogna <paolo@cowtech.it >
2024-05-09 12:09:09 +02:00
cjihrig
11f8765475
test_runner: don't exceed call stack when filtering
...
This commit updates filteredRun() to call postRun() after a
microtask instead of synchronously. Currently, if approximately
1,545 subtests are filtered, enough synchronous calls can be
made to cause a call stack exceeded exception.
PR-URL: https://github.com/nodejs/node/pull/52488
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-04-14 01:22:22 +00:00
cjihrig
77424b05e9
test_runner: move end of work check to finalize()
...
This commit moves the end of work check from postRun() to
finalize(). The reasoning is that finalize() is guaranteed to
run in the order that the tests are defined, while postRun() is
not. This makes the check a little simpler.
PR-URL: https://github.com/nodejs/node/pull/52488
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-04-14 01:22:21 +00:00
Colin Ihrig
52f8dcfccc
test_runner: make end of work check stricter
...
This commit updates the logic that checks for the end of the
test run. Prior to this change, it was possible for root.run() to
be called multiple times because of the way pending subtests
were tracked. The extra calls to root.run() were harmless, but
could trigger an EventEmitter leak warning due to 'abort'
listeners being created.
PR-URL: https://github.com/nodejs/node/pull/52326
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-04-11 02:43:10 +00:00
Colin Ihrig
2c024cd24d
test_runner: disable highWatermark on TestsStream
...
The default highWatermark of 16 on the TestsStream class can
have a substantial impact on reporting performance. This commit
sets the TestsStream highWatermark to a very large value and
lets the destination streams (which are more likely to have
meaningful highWatermarks) handle backpressure.
PR-URL: https://github.com/nodejs/node/pull/52287
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-04-02 03:37:30 +00:00
Colin Ihrig
7c02486f1f
test_runner: run afterEach hooks in correct order
...
This commit updates the test runner afterEach hook so that the
current test's afterEach hooks run before any ancestor afterEach
hooks.
Fixes: https://github.com/nodejs/node/issues/51671
PR-URL: https://github.com/nodejs/node/pull/52239
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-03-30 02:58:10 +00:00
Colin Ihrig
29de7f82cd
test_runner: omit filtered test from output
...
This commit updates the test runner to suppress any output for
filtered tests. Filtered tests no longer generate reporter events,
and the unfiltered tests are renumbered in the output as though
the filtered tests were not present. Skipped tests that are not
filtered are still included in the output.
This change is particularly useful when filtering a large number
of tests, as the previously displayed skip output could be
distracting.
Fixes: https://github.com/nodejs/node/issues/51383
PR-URL: https://github.com/nodejs/node/pull/52221
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-28 15:57:34 +00:00
cjihrig
fa13ed6d79
doc: add section explaining todo tests
...
This commit adds a section to the test runner docs explaining
what a TODO test is.
Refs: https://github.com/nodejs/node/issues/49013
PR-URL: https://github.com/nodejs/node/pull/52204
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-26 16:52:38 +00:00
cjihrig
7dfa4750af
test: add test for skip+todo combinations
...
This commit adds a regression test for the edge case where a
test runner test is marked as both todo and skip.
Refs: https://github.com/nodejs/node/issues/49013
PR-URL: https://github.com/nodejs/node/pull/52204
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-26 16:52:38 +00:00
cjihrig
6af4049810
test_runner: simplify test end time tracking
...
This commit simplifies the logic for tracking test end time.
The end time is now only set in postRun(), which every test
runs when it ends.
PR-URL: https://github.com/nodejs/node/pull/52182
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-03-25 13:23:35 +00:00
cjihrig
878047be0b
test_runner: simplify test start time tracking
...
This commit simplifies the logic for tracking test start time.
The start time is now set only when a test/suite begins running.
If the test/suite never runs, a fallback is provided in postRun().
PR-URL: https://github.com/nodejs/node/pull/52182
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-03-25 13:23:34 +00:00
cjihrig
4648c83dbc
test_runner: don't await the same promise for each test
...
Prior to this commit, each top level test awaited the same
global promise for setting up test reporters. This commit
updates the logic to only await the promise the first time
it is encountered.
PR-URL: https://github.com/nodejs/node/pull/52185
Refs: https://github.com/nodejs/node/pull/47164
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-03-25 01:01:41 +00:00
cjihrig
5905596719
test: fix incorrect test fixture
...
This commit updates a test runner fixture that includes a failing
child test. However, the nested test is created using the top
level test() function instead t.test(). This commit updates the
fixture to use t.test(), while preserving the expected failure.
Refs: https://github.com/nodejs/node/pull/47164
PR-URL: https://github.com/nodejs/node/pull/52185
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-03-25 01:01:41 +00:00
Colin Ihrig
5276c0d5d4
test_runner: add suite()
...
This commit adds a suite() function to the test runner and makes
describe() an alias for it. This matches the it() alias for
test().
Fixes: https://github.com/nodejs/node/issues/51430
PR-URL: https://github.com/nodejs/node/pull/52127
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-19 15:38:17 +00:00
Colin Ihrig
978d5a26c9
test: reduce flakiness of test-runner-output.mjs
...
This commit is similar to #51952 . When the system is under load
it is possible for these timeout tests to become flaky. We
work around that by using a much longer setTimeout() in the test
so that it is not racing against the test's timeout. But, we have
to unref() such a large timeout. And, because test timeouts do
not currently keep the event loop alive, we use a different
setTimeout() for that purpose.
Fixes: https://github.com/nodejs/node/issues/52139
Refs: https://github.com/nodejs/node/pull/52140
PR-URL: https://github.com/nodejs/node/pull/52146
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-19 07:38:45 +00:00
Colin Ihrig
4ba9f45d99
test_runner: ignore todo flag when running suites
...
This commit removes a check for the todo flag when determining
if a suite should run. In general, the todo flag should have
no impact on whether or not a test/suite runs. Instead, it should
only impact how the result of the test/suite is handled.
PR-URL: https://github.com/nodejs/node/pull/52117
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-18 18:11:33 +00:00
Colin Ihrig
6f4d6011ea
test_runner: skip each hooks for skipped tests
...
When a test is skipped, the corresponding beforeEach and afterEach
hooks should also be skipped.
Fixes: https://github.com/nodejs/node/issues/52112
PR-URL: https://github.com/nodejs/node/pull/52115
Reviewed-By: Raz Luvaton <rluvaton@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-18 16:29:36 +00:00
Colin Ihrig
05db979c01
test_runner: run top level tests in a microtask
...
This commit updates the test harness to prevent top level
tests from executing immediately. This allows certain config
data, such as filtering options, to be discovered before running
the tests.
PR-URL: https://github.com/nodejs/node/pull/52092
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-03-17 04:17:36 +00:00
Colin Ihrig
97b2c5344d
test_runner: remove redundant report call
...
This commit removes a redundant call to `reportStarted()`. It is
redundant because a few lines down, `subtest.finalize()` is
called. `finalize()` will find the first test that is ready to
report its data, and then call `report()`, which also calls
`reportStarted()`. This will trigger the `'test:start'` as high
up the test tree as necessary.
PR-URL: https://github.com/nodejs/node/pull/52089
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Raz Luvaton <rluvaton@gmail.com >
2024-03-16 21:36:58 +00:00
Colin Ihrig
84de97a61e
test_runner: support forced exit
...
This commit updates the test runner to allow a forced exit once
all known tests have finished running.
Fixes: https://github.com/nodejs/node/issues/49925
PR-URL: https://github.com/nodejs/node/pull/52038
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Raz Luvaton <rluvaton@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2024-03-13 10:49:15 +00:00
Colin Ihrig
3c5764a0e2
test_runner: handle undefined test locations
...
This commit updates the built in reporters to check for the
documented case of a test's location being undefined.
As a drive by fix, the C++ code for computing the test location
now returns undefined if the script location is empty. This lets
tests run inside of eval().
PR-URL: https://github.com/nodejs/node/pull/52036
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2024-03-12 18:16:28 +00:00
cjihrig
328642bbb9
test_runner: use paths for test locations
...
This commit transforms test locations to paths when V8 provides
file URLs (which seems to be for ESM files).
Fixes: https://github.com/nodejs/node/issues/51610
PR-URL: https://github.com/nodejs/node/pull/52010
Fixes: https://github.com/nodejs/node/issues/51392
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-11 08:56:16 +00:00
cjihrig
6d625fe616
test_runner: support source mapped test locations
...
This commit adds support for source mapping test locations
when the --enable-source-maps flag is present.
Fixes: https://github.com/nodejs/node/issues/51392
PR-URL: https://github.com/nodejs/node/pull/52010
Fixes: https://github.com/nodejs/node/issues/51610
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Chengzhong Wu <legendecas@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-11 08:56:16 +00:00
Colin Ihrig
592c6907bf
test_runner: avoid overwriting root start time
...
This commit ensures the root test start time is not overwritten
when top level before()/after() hooks are run.
PR-URL: https://github.com/nodejs/node/pull/52020
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2024-03-11 03:18:07 +00:00
Colin Ihrig
29b231763e
test_runner: abort unfinished tests on async error
...
This commit updates the test runner's uncaughtException handler
to abort tests instead of assuming they finished running.
Fixes: https://github.com/nodejs/node/issues/51381
PR-URL: https://github.com/nodejs/node/pull/51996
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2024-03-09 21:30:02 +00:00
cjihrig
3aa06589f1
test: add regression test for test_runner after hook
...
Refs: https://github.com/nodejs/node/issues/51997
PR-URL: https://github.com/nodejs/node/pull/51998
Fixes: https://github.com/nodejs/node/issues/51997
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2024-03-07 09:16:37 +00:00
cjihrig
0e8070d4f2
Revert "test_runner: do not invoke after hook when test is empty"
...
This reverts commit a53fd95d36 .
This caused a regression because the original issue this commit
was attempting to fix is not a bug. The after() hook should
always run.
Fixes: https://github.com/nodejs/node/issues/51997
PR-URL: https://github.com/nodejs/node/pull/51998
Reviewed-By: Matthew Aitken <maitken033380023@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2024-03-07 09:16:36 +00:00
Colin Ihrig
cf45a62ece
meta: move cjihrig to TSC regular member
...
PR-URL: https://github.com/nodejs/node/pull/50816
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Darshan Sen <raisinten@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Michael Dawson <midawson@redhat.com >
2023-11-24 15:06:29 +00:00
Colin Ihrig
f971106072
fs: add flush option to appendFile() functions
...
This commit adds documentation and tests for the 'flush' option
of the fs.appendFile family of functions. Technically, support
was indirectly added in #50009 , but this makes it more official.
Refs: https://github.com/nodejs/node/issues/49886
Refs: https://github.com/nodejs/node/pull/50009
PR-URL: https://github.com/nodejs/node/pull/50095
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2023-10-18 01:51:41 +00:00
Colin Ihrig
0d8faf2952
test_runner,test: fix flaky test-runner-cli-concurrency.js
...
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.
This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:
let concurrency = getOptionValue('--test-concurrency') || true;
The test runner now logs the value of the concurrency variable.
Fixes: https://github.com/nodejs/node/issues/50101
PR-URL: https://github.com/nodejs/node/pull/50108
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2023-10-12 01:37:00 +00:00
Colin Ihrig
8a49735bae
fs: add flush option to createWriteStream()
...
This commit adds a 'flush' option to the createWriteStream()
family of functions.
Refs: https://github.com/nodejs/node/issues/49886
PR-URL: https://github.com/nodejs/node/pull/50093
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com >
2023-10-11 16:25:05 +00:00
cjihrig
9f9c58212e
test_runner, cli: add --test-concurrency flag
...
This commit adds a new --test-concurrency CLI flag that controls
the parallelism of the test runner CLI.
PR-URL: https://github.com/nodejs/node/pull/49996
Fixes: https://github.com/nodejs/node/issues/49487
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
2023-10-08 16:10:53 -04:00
Colin Ihrig
e01c1d700d
fs: add flush option to writeFile() functions
...
This commit adds a 'flush' option to the fs.writeFile family of
functions.
Refs: https://github.com/nodejs/node/issues/49886
PR-URL: https://github.com/nodejs/node/pull/50009
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: LiviaMedeiros <livia@cirno.name >
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com >
2023-10-04 13:10:30 +00:00
Colin Ihrig
4b35a9cfda
test_runner: add test location for FileTests
...
This commit adds the previously missing test location for
FileTest tests.
Fixes: https://github.com/nodejs/node/issues/49926
Fixes: https://github.com/nodejs/node/issues/49927
PR-URL: https://github.com/nodejs/node/pull/49999
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2023-10-03 18:19:51 +00:00
Colin Ihrig
c935d4c8fa
test_runner: replace spurious if with else
...
There is an `if` statement that likely should have been
an `else` in the original PR.
Refs: https://github.com/nodejs/node/pull/48915
PR-URL: https://github.com/nodejs/node/pull/49943
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Raz Luvaton <rluvaton@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: LiviaMedeiros <livia@cirno.name >
2023-09-29 11:04:58 +00:00
Colin Ihrig
b5740756ca
test_runner: reland run global after() hook earlier
...
This commit reverts the revert in
bb52656fc6 . It also includes the
fix for the issue that required the revert
(https://github.com/nodejs/node/pull/49059#issuecomment-1675171959 )
and an additional common.mustCall() in the added test.
Refs: https://github.com/nodejs/node/pull/49059
Refs: https://github.com/nodejs/node/pull/49110
PR-URL: https://github.com/nodejs/node/pull/49116
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2023-08-14 14:29:29 +00:00
cjihrig
6346bdc526
test_runner: run global after() hook earlier
...
This commit moves the global after() hook execution from the
'beforeExit' event to the point where all tests have finished
running. This gives the global after() a chance to clean up
handles that would otherwise prevent the 'beforeExit' event
from being emitted.
PR-URL: https://github.com/nodejs/node/pull/49059
Fixes: https://github.com/nodejs/node/issues/49056
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2023-08-11 09:16:51 -04:00
cjihrig
4e61c22699
test_runner: expose location of tests
...
This commit adds each test's line and column number to the reporter
output. This will aid in debugging test suite failures when error
stacks are not helpful, test suites are large, or tests have the
same name. This data is also exposed on the spec reporter.
This commit also replaces the filename that was previously being
reported, with the filename where the test actually exists. These
are normally correct, but could be wrong if tests were run from
a file other than the user's entrypoint.
PR-URL: https://github.com/nodejs/node/pull/48975
Fixes: https://github.com/nodejs/node/issues/48457
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
2023-08-11 09:12:49 -04:00
Colin Ihrig
bef3942820
test_runner: unwrap error message in TAP reporter
...
The TAP reporter unwraps errors that come from user code. It
was not properly unwrapping the error message when the failure
originated from a test hook. This lead to difficult to debug
errors when TAP output was used. This commit updates the TAP
reporter to properly unwrap the error message.
Fixes: https://github.com/nodejs/node/issues/48941
PR-URL: https://github.com/nodejs/node/pull/48942
Reviewed-By: Chemi Atlow <chemi@atlow.co.il >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2023-07-29 18:36:55 +00:00
Colin Ihrig
a4e4a86d89
test: skip experimental test with pointer compression
...
The test test/parallel/test-experimental-shared-value-conveyor.js was
added to test the --harmony-struct feature of V8. However, when used
with pointer compression, the process crashes. This commit skips
the test for pointer compression builds. This change uses a child
process because starting a Node pointer compression build with
--harmony-struct immediately crashes the process. Once this crash
is addresses, this commit can be reverted.
PR-URL: https://github.com/nodejs/node/pull/48738
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Michael Dawson <midawson@redhat.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
2023-07-16 09:10:58 +00:00
Colin Ihrig
f802aa0645
doc: fix 'partial' typo
...
PR-URL: https://github.com/nodejs/node/pull/48657
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com >
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
2023-07-05 16:15:47 +00:00
Colin Ihrig
b47fce0762
test_runner: remove redundant check from coverage
...
The code coverage reporting logic already filters out URLs that
don't start with 'file:', so there is no need to also filter
out URLs that start with 'node:'.
PR-URL: https://github.com/nodejs/node/pull/48070
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com >
2023-05-29 04:47:21 +00:00
cjihrig
4360389d67
test_runner: omit inaccessible files from coverage
...
If V8 generates code coverage for a file that is later
inaccessible to the test runner, then omit that file from the
coverage report.
PR-URL: https://github.com/nodejs/node/pull/47850
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Beth Griggs <bethanyngriggs@gmail.com >
2023-05-10 14:08:00 +00:00
cjihrig
b31d587dc8
test_runner: support combining coverage reports
...
This commit adds support for combining code coverage reports
in the test runner. This allows coverage to be collected for
child processes, and by extension, the test runner CLI.
PR-URL: https://github.com/nodejs/node/pull/47686
Fixes: https://github.com/nodejs/node/issues/47669
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2023-04-28 13:13:53 +00:00
cjihrig
ab3a54f2ee
test_runner: remove no-op validation
...
The code already checks if testNamePatterns is an
array, and converts it to an array if it is not.
PR-URL: https://github.com/nodejs/node/pull/47687
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com >
2023-04-25 16:03:51 +00:00
cjihrig
53e3c0ebf8
test_runner: support coverage of unnamed functions
...
This commit updates the code coverage logic to skip the first
function in a file (which does not correspond to an actual
function) instead of skipping all functions without a name.
PR-URL: https://github.com/nodejs/node/pull/47652
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2023-04-23 07:17:49 +00:00
cjihrig
ecb023be8a
test_runner: move coverage collection to root.postRun()
...
This commit moves code coverage collection from the test
harness exit handler to the postRun() function of the root
test.
This is necessary preparatory work for supporting
code coverage with --test. The reason is that --test is
implemented on top of run(), and that function calls the root
test's postRun() function, which outputs the test summary. This
happens before the harness exit handler.
PR-URL: https://github.com/nodejs/node/pull/47651
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2023-04-23 06:57:10 +00:00
Colin Ihrig
d1eaeecc8b
doc: add MoLow to the TSC
...
Refs: https://github.com/nodejs/TSC/issues/1364
PR-URL: https://github.com/nodejs/node/pull/47436
Reviewed-By: Richard Lau <rlau@redhat.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2023-04-05 21:38:46 +00:00
cjihrig
c733cc0c7f
test_runner: mark module as stable
...
PR-URL: https://github.com/nodejs/node/pull/46983
Fixes: https://github.com/nodejs/node/issues/46642
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com >
Reviewed-By: Danielle Adams <adamzdanielle@gmail.com >
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com >
2023-03-08 18:16:37 -05:00
Colin Ihrig
629047da09
doc: add missing test runner flags to man page
...
--test-reporter and --test-reporter-destination were previously
missing from the man page.
PR-URL: https://github.com/nodejs/node/pull/46982
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2023-03-08 21:49:43 +00:00
cjihrig
d4c3e3b496
test_runner: remove root tracking set
...
The wasRootSetup Set in the test harness appears to be
redundant, since the startTime field can be used interchangeably.
This commit removes wasRootSetup.
PR-URL: https://github.com/nodejs/node/pull/46961
Reviewed-By: Moshe Atlow <moshe@atlow.co.il >
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com >
2023-03-07 14:03:02 -05:00