summaryrefslogtreecommitdiff
path: root/cli/tests/integration_tests.rs
AgeCommit message (Collapse)Author
2024-02-10chore: move cli/tests/ -> tests/ (#22369)Matt Mastracci
This looks like a massive PR, but it's only a move from cli/tests -> tests, and updates of relative paths for files. This is the first step towards aggregate all of the integration test files under tests/, which will lead to a set of integration tests that can run without the CLI binary being built. While we could leave these tests under `cli`, it would require us to keep a more complex directory structure for the various test runners. In addition, we have a lot of complexity to ignore various test files in the `cli` project itself (cargo publish exclusion rules, autotests = false, etc). And finally, the `tests/` folder will eventually house the `test_ffi`, `test_napi` and other testing code, reducing the size of the root repo directory. For easier review, the extremely large and noisy "move" is in the first commit (with no changes -- just a move), while the remainder of the changes to actual files is in the second commit.
2024-02-09refactor: split integration tests from CLI (part 1) (#22308)Matt Mastracci
This PR separates integration tests from CLI tests into a new project named `cli_tests`. This is a prerequisite for an integration test runner that can work with either the CLI binary in the current project, or one that is built ahead of time. ## Background Rust does not have the concept of artifact dependencies yet (https://github.com/rust-lang/cargo/issues/9096). Because of this, the only way we can ensure a binary is built before running associated tests is by hanging tests off the crate with the binary itself. Unfortunately this means that to run those tests, you _must_ build the binary and in the case of the deno executable that might be a 10 minute wait in release mode. ## Implementation To allow for tests to run with and without the requirement that the binary is up-to-date, we split the integration tests into a project of their own. As these tests would not require the binary to build itself before being run as-is, we add a stub integration `[[test]]` target in the `cli` project that invokes these tests using `cargo test`. The stub test runner we add has `harness = false` so that we can get access to a `main` function. This `main` function's sole job is to `execvp` the command `cargo test -p deno_cli`, effectively "calling" another cargo target. This ensures that the deno executable is always correctly rebuilt before running the stub test runner from `cli`, and gets us closer to be able to run the entire integration test suite on arbitrary deno executables (and therefore split the build into multiple phases). The new `cli_tests` project lives within `cli` to avoid a large PR. In later PRs, the test data will be split from the `cli` project. As there are a few thousand files, it'll be better to do this as a completely separate PR to avoid noise.
2024-01-01chore: update copyright to 2024 (#21753)David Sherret
2023-01-13tests: move integration tests to a single module (#17380)Bartek Iwańczuk
Effectively reverts changes done in https://github.com/denoland/deno/pull/16816
2022-11-26tests: move integration tests to separate modules (#16816)Bartek Iwańczuk
2022-01-07chore: update copyright to 2022 (#13306)Ryan Dahl
Co-authored-by: Erfan Safari <erfanshield@outlook.com>
2021-06-27chore: split up integration_tests.rs into separate files (#11131)David Sherret
2021-06-27feat(inspector): pipe console messages between terminal and inspector (#11134)Bartek Iwańczuk
This commit adds support for piping console messages to inspector. This is done by "wrapping" Deno's console implementation with default console provided by V8 by the means of "Deno.core.callConsole" binding. Effectively each call to "console.*" methods calls a method on Deno's console and V8's console.
2021-06-25chore: move repl integration tests to separate file (#11127)David Sherret
2021-06-24feat(repl): support import declarations in the REPL (#11086)David Sherret
2021-06-22fix(core): don't panic on stdout/stderr write failures in Deno.core.print ↵Charlie Moog
(#11039)
2021-06-22fix: move stable/unstable types/APIs to their correct places (#10880)Muthu Kumar
- Moved ppid and memoryUsage types from deno.unstable to deno.ns. - Moved sleepSync to unstable object, shutdown to stable object.
2021-06-22refactor: unify JavaScript script execution method (#11043)Bartek Iwańczuk
This commit renames "JsRuntime::execute" to "JsRuntime::execute_script". Additionally same renames were applied to methods on "deno_runtime::Worker" and "deno_runtime::WebWorker". A new macro was added to "deno_core" called "located_script_name" which returns the name of Rust file alongside line no and col no of that call site. This macro is useful in combination with "JsRuntime::execute_script" and allows to provide accurate place where "one-off" JavaScript scripts are executed for internal runtime functions. Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
2021-06-22feat(cli): support "types" when type checking (#10999)Kitson Kelly
Fixes #10677
2021-06-21feat(repl): Type stripping in the REPL (#10934)David Sherret
2021-06-15fix(repl): Complete declarations (#10963)David Sherret
2021-06-10chore: Fix broken test on Windows (#10900)David Sherret
2021-06-10chore(tests): Kill orphaned deno processes spawned during the tests (#10922)David Sherret
2021-06-09fix(runtime): early binding to dispatchEvent in workers (#10904)Kitson Kelly
2021-06-07feat(compile): Initialize runtime_compiler ops for standalone binaries (#10052)Divy Srivastava
2021-06-05feat(cli/compile): Support data uri dynamic imports in `deno compile` (#9936)Divy Srivastava
2021-06-01fix(cli): represent bare imports as module graph error slots (#10804)Nayeem Rahman
Fixes #10795
2021-05-31fix(cli): Don't statically error on dynamic unmapped bare specifiers (#10618)Nayeem Rahman
Fixes #10168 Fixes #10615 Fixes #10616
2021-05-27feat(cli): add origin data dir to deno info (#10589)crowlKats
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com> Co-authored-by: Luca Casonato <lucacasonato@yahoo.com> Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2021-05-24fix(cli/test): don't use reserved symbol `:` in specifier (#10751)Casper Beyer
2021-05-21fix(test): ensure coverage dir exists (#10717)Yoshiya Hinosawa
2021-05-20fix(cli/tools/test_runner): --doc should not require permissions (#10719)Casper Beyer
2021-05-19test(cli/dts): typecheck examples in declaration files (#10707)Casper Beyer
This commits adds two integration tests that typecheck examples in the docstrings in Deno declaration files.
2021-05-17fix: static import permissions in dynamic importsLuca Casonato
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-05-12v1.10.0Bartek Iwańczuk
2021-05-11disable test_watch integration test (#10594)Bartek Iwańczuk
2021-05-11fix(tls): flush send buffer in the background after closing TLS stream (#10146)Bert Belder
In #9118, TLS streams were split into a "read half" and a "write half" using tokio::io::split() to allow concurrent Conn#read() and Conn#write() calls without one blocking the other. However, this introduced a bug: outgoing data gets discarded when the TLS stream is gracefully closed, because the read half is closed too early, before all TLS control data has been received. Fixes: #9692 Fixes: #10049 Fixes: #10296 Fixes: denoland/deno_std#750
2021-05-11feat(test): add support for type checking documentation (#10521)Casper Beyer
This commit adds support for type checking codeblocks in the JS doc comments.
2021-05-10Switch grant/deny prompt to yes/no (#10547)Ryan Dahl
2021-05-10test: run deno test --watch test only on unix (#10550)Bartek Iwańczuk
2021-05-10feat: add deno test --watch (#9160)Liam Murphy
This commit implements file watching for deno test. When a file is changed, only the test modules which use it as a dependency are rerun. This is accomplished by reworking the file watching infrastructure to pass the paths which have changed to the resolver, and then constructing a module graph for each test module to check if it contains any changed files.
2021-05-05test(compile): show command output to testing log for debugging purpose (#10503)Yoshiya Hinosawa
2021-05-04fix(cli): give context when failed to load import map (#10478)Satya Rohith
2021-05-01fix(test): re-enable "compile_windows_ext" test (#10131)Divy Srivastava
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2021-04-30Rename crate_ops to extensions (#10431)Andy Hayden
2021-04-28feat(test): run test modules in parallel (#9815)Casper Beyer
This commit adds support for running test in parallel. Entire test runner functionality has been rewritten from JavaScript to Rust and a set of ops was added to support reporting in Rust. A new "--jobs" flag was added to "deno test" that allows to configure how many threads will be used. When given no value it defaults to 2.
2021-04-27test(cli): run unit tests using Deno.test (#10330)Casper Beyer
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2021-04-26Remove denort optimization (#10350)Ryan Dahl
denort is an optimization to "deno compile" to produce slightly smaller output. It's a decent idea, but causes a lot of negative side-effects: - Deno's link time is a source of constant agony both locally and in CI, denort doubles link time. - The release process is a long and arduous undertaking with many manual steps. denort necessitates an additional manual zip + upload from M1 apple computers. - The "deno compile" interface is complicated with the "--lite" option. This is confusing for uses ("why wouldn't you want lite?"). The benefits of this feature do not outweigh the negatives. We must find a different approach to optimizing "deno compile" output.
2021-04-26feat(core): enable wasm threading support (#10116)Casper Beyer
2021-04-26remove #![deny(warnings)] (#10376)Ryan Dahl
Prefer RUSTFLAGS="-D warnings" to prevent warnings, but cannot enable yet due to #10378.
2021-04-25feat(cli): add test permissions to Deno.test (#10188)Casper Beyer
This commits adds adds "permissions" option to the test definitions which allows tests to run with different permission sets than the process's permission. The change will only be in effect within the test function, once the test has completed the original process permission set is restored. Test permissions cannot exceed the process's permission. You can only narrow or drop permissions, failure to acquire a permission results in an error being thrown and the test case will fail.
2021-04-21fix: do not panic on not found cwd (#10238)Satya Rohith
2021-04-19fix(runtime): handle race condition in postMessage where worker has ↵Liam Murphy
terminated (#10239) The panic was caused by the lack of an error class mapping for futures::channel::TrySendError, but it shouldn't have been throwing an error in the first place - when a worker has terminated, postMessage should just return. The issue was that the termination message hadn't yet been recieved, so it was carrying on with trying to send the message. This adds another check on the Rust side for if the channel is closed, and if it is the worker is treated as terminated.
2021-04-13fix(core): remove wasm-test-streaming flag (#10158)Casper Beyer
2021-04-12feat: Add Deno.memoryUsage() (#9986)Aaron O'Mullan