0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-11 14:47:26 -04:00
deno/cli/tests/unit
Bartek Iwańczuk ffd3ed9b8a
fix(ext/web): improve timers resolution for 0ms timeouts (#19212)
This commit changes the implementation of `ext/web` timers, by using
"op_void_async_deferred" for timeouts of 0ms.

0ms timeout is meant to be run at the end of the event loop tick and
currently Tokio timers that we use to back timeouts have at least 1ms
resolution. That means that 0ms timeout actually take >1ms. This
commit changes that and runs 0ms timeout at the end of the event
loop tick.

One consequence is that "unrefing" a 0ms timer will actually keep
the event loop alive (which I believe actually makes sense, the test
we had only worked because the timeout took more than 1ms).

Ref https://github.com/denoland/deno/issues/19034
2023-05-22 14:09:31 +02:00
..
abort_controller_test.ts
blob_test.ts
body_test.ts fix(fetch): Correctly decode multipart/form-data names and filenames (#19145) 2023-05-16 17:49:35 +02:00
broadcast_channel_test.ts
buffer_test.ts
build_test.ts
cache_api_test.ts fix(ext/cache): cache.put overwrites previous call (#18649) 2023-04-12 11:25:19 +05:30
chmod_test.ts
chown_test.ts
command_test.ts fix(runtime): ChildProcess::kill() doesn't require additional perms (#15339) 2023-05-11 14:53:45 +02:00
console_test.ts fix(console): handle error when inspecting promise-like (#19083) 2023-05-11 15:08:17 +02:00
copy_file_test.ts
custom_event_test.ts
dir_test.ts
dom_exception_test.ts
error_stack_test.ts
error_test.ts
esnext_test.ts
event_target_test.ts
event_test.ts
fetch_test.ts fix(ci): simplify test assertion for http version enforcing with Deno.createHttpClient (#19210) 2023-05-21 21:52:45 +02:00
ffi_test.ts
file_test.ts
filereader_test.ts
files_test.ts feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
flock_test.ts
fs_events_test.ts
get_random_values_test.ts
globals_test.ts
headers_test.ts
http_test.ts feat(lint): add Deno.run to no-deprecated-deno-api (#18869) 2023-04-27 02:52:52 +00:00
internals_test.ts
intl_test.ts
io_test.ts
kv_test.ts fix(ext/kv): throw on the Kv constructor (#18978) 2023-05-03 23:08:42 +02:00
link_test.ts
make_temp_test.ts
message_channel_test.ts
metrics_test.ts perf(core): async op pseudo-codegen and performance work (#18887) 2023-04-30 08:50:24 +00:00
mkdir_test.ts
navigator_test.ts
net_test.ts feat(ext/net): Add multicasting APIs to DatagramConn (#10706) (#17811) 2023-03-20 22:27:00 +01:00
network_interfaces_test.ts
opcall_test.ts perf(core): async op pseudo-codegen and performance work (#18887) 2023-04-30 08:50:24 +00:00
os_test.ts
path_from_url_test.ts
performance_test.ts chore(cli): measure performance against wall-clock (#18357) 2023-03-22 18:06:29 +00:00
permissions_test.ts
process_test.ts feat(lint): add Deno.run to no-deprecated-deno-api (#18869) 2023-04-27 02:52:52 +00:00
progressevent_test.ts
promise_hooks_test.ts
read_dir_test.ts
read_file_test.ts fix(runtime): Extract error code for all OS error variants (#17958) 2023-03-19 00:01:50 +00:00
read_link_test.ts
read_text_file_test.ts Revert "refactor: don't expose Deno[Deno.internal].core namespace" (#18881) 2023-04-28 00:37:03 +02:00
README.md
real_path_test.ts
ref_unref_test.ts
remove_test.ts
rename_test.ts
request_test.ts
resources_test.ts
response_test.ts
serve_test.ts feat(ext/http): ref/unref for server (#19197) 2023-05-19 15:14:40 -06:00
signal_test.ts
stat_test.ts
stdio_test.ts
streams_deprecated.ts
structured_clone_test.ts
symlink_test.ts
sync_test.ts
test_util.ts feat(ext/kv): key-value store (#18232) 2023-03-22 12:13:24 +08:00
testing_test.ts fix(test): allow explicit undefined for boolean test options (#18786) 2023-04-21 15:32:37 +02:00
text_encoding_test.ts
timers_test.ts fix(ext/web): improve timers resolution for 0ms timeouts (#19212) 2023-05-22 14:09:31 +02:00
tls_test.ts fix: support "fetch" over HTTPS for IP addresses (#18499) 2023-05-17 02:19:23 +02:00
truncate_test.ts
tty_color_test.ts
tty_test.ts
umask_test.ts
url_search_params_test.ts
url_test.ts fix(ext/url): throw TypeError for empty argument (#18896) 2023-04-30 12:24:34 +02:00
urlpattern_test.ts fix(dts): URLPatternComponentResult groups should have possibly undefined key values (#18643) 2023-04-26 19:15:25 -04:00
utime_test.ts
version_test.ts fix(cli): upgrade to Typescript 5.0.4 (#19090) 2023-05-11 14:12:58 +00:00
wasm_test.ts
webcrypto_test.ts
websocket_test.ts fix(core): Wrap safe collections' argument of primordials (#18750) 2023-04-26 00:36:22 +02:00
webstorage_test.ts
worker_permissions_test.ts
worker_types.ts
write_file_test.ts
write_text_file_test.ts

Deno runtime tests

Files in this directory are unit tests for Deno runtime.

Testing Deno runtime code requires checking API under different runtime permissions. To accomplish this all tests exercised are created using Deno.test() function.

import {} from "./test_util.ts";

Deno.test(function simpleTestFn(): void {
  // test code here
});

Deno.test(
  {
    ignore: Deno.build.os === "windows",
    permissions: { read: true, write: true },
  },
  function complexTestFn(): void {
    // test code here
  },
);

Running tests

There are two ways to run unit_test_runner.ts:

# Run all tests.
cargo run --bin deno -- test --allow-all --unstable --location=http://js-unit-tests/foo/bar cli/tests/unit/

# Run a specific test module
cargo run --bin deno -- test --allow-all --unstable --location=http://js-unit-tests/foo/bar cli/tests/unit/files_test.ts

Http server

target/debug/test_server is required to run when one's running unit tests. During CI it's spawned automatically, but if you want to run tests manually make sure that server is spawned otherwise there'll be cascade of test failures.