summaryrefslogtreecommitdiff
path: root/cli/tests/integration/run_tests.rs
AgeCommit message (Collapse)Author
2021-09-30fix: Don't panic when a worker is closed in the reactions to a wasm ↵Andreu Botella
operation. (#12270)
2021-09-24chore(workers): Test that closing a worker closes any child workers (#12215)Andreu Botella
Before #12156, closing a worker which had children would cause a panic (https://github.com/denoland/deno/issues/11342#issuecomment-918327693). After that PR, closing a worker will also close any child workers.
2021-09-22fix(workers): Don't panic when a worker's parent thread stops running (#12156)Andreu Botella
This panic could happen in the following cases: - A non-fatal error being thrown from a worker, that doesn't terminate the worker's execution, but propagates to the main thread without being handled, and makes the main thread terminate. - A nested worker being alive while its parent worker gets terminated. - A race condition if the main event loop terminates the worker as part of its last task, but the worker doesn't fully terminate before the main event loop stops running. This panic happens because a worker's event loop should have pending ops as long as the worker isn't closed or terminated – but if an event loop finishes running while it has living workers, its associated `WorkerThread` structs will be dropped, closing the channels that keep those ops pending. This change adds a `Drop` implementation to `WorkerThread`, which terminates the worker without waiting for a response. This fixes the panic, and makes it so nested workers are automatically terminated once any of their ancestors is closed or terminated. This change also refactors a worker's termination code into a `WorkerThread::terminate()` method. Closes #11342. Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-09-20chore(tests): windows pty tests (#12091)David Sherret
2021-09-18fix(cli/fmt_errors): Abbreviate long data URLs in stack traces (#12127)Nayeem Rahman
Co-authored-by: Mike White <mike.white@auctane.com>
2021-09-17fix(cli): don't ignore diagnostics about for await (#12116)Kitson Kelly
Fixes #12115
2021-09-09fix: permission prompt stuffing (#11931)Ryan Dahl
Fixes #9750
2021-09-06fix(ext/web): Format terminal DOMExceptions properly (#11834)Nayeem Rahman
2021-09-06Don't drop messages from workers that have already been closed (#11913)Andreu Botella
When `worker.terminate()` is called, the spec requires that the corresponding port message queue is emptied, so no messages can be received after the call, even if they were sent from the worker before it was terminated. The spec doesn't require this of `self.close()`, and since Deno uses different channels to send messages and to notify that the worker was closed, messages might still arrive after the worker is known to be closed, which are currently being dropped. This change fixes that. The fix involves two parts: one on the JS side and one on the Rust side. The JS side was using the `#terminated` flag to keep track of whether the worker is known to be closed, without distinguishing whether further messages should be dropped or not. This PR changes that flag to an enum `#state`, which can be one of `"RUNNING"`, `"CLOSED"` or `"TERMINATED"`. The Rust side was removing the `WorkerThread` struct from the workers table when a close control was received, regardless of whether there were any messages left to read, which made any subsequent calls to `op_host_recv_message` to return `Ok(None)`, as if there were no more mesasges. This change instead waits for both a close control and for the message channel's sender to be closed before the worker thread is removed from the table.
2021-08-18fix(runtime): event loop panics in classic workers (#11756)Luca Casonato
Classic worker scripts are now executed in the context of a Tokio runtime. This does mean we can not spawn more tokio runtimes in "op_worker_sync_fetch". We instead spawn a new thread there, that can create a new Tokio runtime that we can use to block the worker thread.
2021-08-16fix: parse error when transpiling code with BOM (#11688)Ryan Dahl
Co-authored-by: David Sherret <dsherret@gmail.com>
2021-08-11chore: move test files to testdata directory (#11601)David Sherret
2021-07-22fix: support --cert flag for tls connect APIs (#11484)Luca Casonato
2021-07-20fix: close fetch response body on GC (#11467)Luca Casonato
This commit fixes fetch response bodies to be automatically closed if the `Response.body` readable stream goes out of scope and is GC'ed.
2021-07-17fix(workers): silently ignore non-existent worker IDs (#11417)Andreu Botella
Fixes #11416
2021-07-10fix: align DedicatedWorkerGlobalScope event handlers to spec (#11353)Andreu Botella
2021-07-07chore: temporarily disable flaky single_compile_with_reload test (#11320)David Sherret
2021-07-05fix(core): Delay deadlock detection for dynamic imports (#11282)Nayeem Rahman
2021-07-05refactor: asynchronous blob backing store (#10969)Jimmy Wärting
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-07-02feat(core): pump V8 message loop on event loop tick (#11221)Bartek Iwańczuk
This commit adds support for Atomics and FinalizationRegistry by integrating V8's message loop into "JsRuntime::poll_event_loop".
2021-06-27chore: split up integration_tests.rs into separate files (#11131)David Sherret