deno/cli
Matt Mastracci dcbbcd23f5
refactor: split integration tests from CLI (part 1) (#22308)
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-02-09 13:33:05 -07:00
..
args refactor: extract out runtime::colors to deno_terminal::colors (#22324) 2024-02-07 11:25:14 -05:00
bench chore: remove unneeded benchmark (#22300) 2024-02-07 01:00:18 +01:00
cache fix: upgrade to deno_ast 0.33 (#22341) 2024-02-09 01:40:26 +00:00
js chore: upgrade deno_core to 0.259.0 (#22311) 2024-02-07 02:16:08 +01:00
lsp fix: upgrade to deno_ast 0.33 (#22341) 2024-02-09 01:40:26 +00:00
napi chore: forward v1.40.4 release commit to main (#22345) 2024-02-08 12:39:39 +00:00
npm feat(lockfile): track JSR and npm dependencies in config file (#22004) 2024-01-22 22:31:12 +01:00
ops refactor(cli): Move op descriptions into Rust and prepare for op import (#22271) 2024-02-05 20:26:59 +00:00
schemas feat(publish): exclude and include (#22055) 2024-01-24 20:30:08 +00:00
standalone refactor: load bytes in deno_graph (#22212) 2024-02-01 03:15:22 +00:00
tests refactor: split integration tests from CLI (part 1) (#22308) 2024-02-09 13:33:05 -07:00
tools fix: upgrade to deno_ast 0.33 (#22341) 2024-02-09 01:40:26 +00:00
tsc docs(cli): add unit info for idleTimeout (#22335) 2024-02-07 18:09:08 -07:00
util fix: upgrade to deno_ast 0.33 (#22341) 2024-02-09 01:40:26 +00:00
auth_tokens.rs fix(cli): Add IP address support to DENO_AUTH_TOKEN (#22297) 2024-02-06 19:45:40 +01:00
build.rs feat(web): ImageBitmap (#21898) 2024-01-22 12:08:01 +01:00
Cargo.toml refactor: split integration tests from CLI (part 1) (#22308) 2024-02-09 13:33:05 -07:00
cdp.rs refactor(tools/repl): reorganize code (#21810) 2024-01-05 16:14:58 +01:00
deno.ico fix(cli): add icon and metadata to deno.exe on Windows (#6693) 2020-07-15 21:54:38 +02:00
deno_std.rs chore: forward v1.40.4 release commit to main (#22345) 2024-02-08 12:39:39 +00:00
emit.rs refactor: load bytes in deno_graph (#22212) 2024-02-01 03:15:22 +00:00
entitlements.plist chore: start codesigning mac release builds (#21303) 2023-11-23 15:30:26 -07:00
errors.rs fix: upgrade to deno_ast 0.33 (#22341) 2024-02-09 01:40:26 +00:00
factory.rs chore: temporarily disable deprecation warnings (#22204) 2024-01-31 23:18:14 +01:00
file_fetcher.rs refactor: load bytes in deno_graph (#22212) 2024-02-01 03:15:22 +00:00
graph_util.rs refactor: load bytes in deno_graph (#22212) 2024-02-01 03:15:22 +00:00
http_util.rs chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
js.rs chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
main.rs fix: upgrade to deno_ast 0.33 (#22341) 2024-02-09 01:40:26 +00:00
module_loader.rs refactor: extract out runtime::colors to deno_terminal::colors (#22324) 2024-02-07 11:25:14 -05:00
node.rs fix: upgrade to deno_ast 0.33 (#22341) 2024-02-09 01:40:26 +00:00
README.md docs(cli): do not need gen doc for cli (#17260) 2023-01-04 13:19:58 +01:00
resolver.rs refactor(cli): decouple resolvers from module_loader.rs for standalone use (#22147) 2024-01-27 09:10:36 -08:00
version.rs chore: update copyright to 2024 (#21753) 2024-01-01 19:58:21 +00:00
worker.rs refactor: extract out runtime::colors to deno_terminal::colors (#22324) 2024-02-07 11:25:14 -05:00

Deno CLI Crate

crates

This provides the actual deno executable and the user-facing APIs.

The deno crate uses the deno_core to provide the executable.