1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-23 07:44:48 -05:00
denoland-deno/cli/tests/unit
Florian Schwalm 20bf697ba6
chore(cli): Fix rename test for XFS (#21215)
Renaming a directory to a path where a non-empty directory already
exists was asserted to always fail with `ENOTEMPTY`
According to glibc manual the function may also fail with `EEXIST` on
"some other systems". One such case is using XFS [^1].

This commit handles the EEXIST case.

[^1]:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/xfs/xfs_inode.c?h=v4.18&id=94710cac0ef4ee177a63b5227664b38c95bbf703#n3082
2023-11-17 15:24:10 -07:00
..
abort_controller_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
blob_test.ts chore: update std submodule and its imports (#17408) 2023-01-15 21:09:26 +01:00
body_test.ts fix(ext/formdata): support multiple headers in FormData (#20801) 2023-10-05 19:28:44 +02:00
broadcast_channel_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
buffer_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
build_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
cache_api_test.ts fix(dts): make globals available on globalThis (#19438) 2023-07-03 14:36:55 -04:00
chmod_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
chown_test.ts chore: fix typos (#19572) 2023-06-26 09:10:27 -04:00
command_test.ts feat: disposable Deno resources (#20845) 2023-11-01 20:26:12 +01:00
console_test.ts feat: enable Array.fromAsync (#21048) 2023-11-01 22:25:18 +00:00
copy_file_test.ts fix(runtime/fs): preserve permissions in copyFileSync for macOS (#17412) 2023-01-14 13:45:30 +00:00
cron_test.ts feat(ext/cron) modify Deno.cron API to make handler arg last (#21225) 2023-11-16 14:19:00 -08:00
custom_event_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
dir_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
dom_exception_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
error_stack_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
error_test.ts fix: add WouldBlock error (#17339) 2023-02-12 23:14:33 +01:00
esnext_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
event_target_test.ts fix(ext/web): Copy EventTarget list before dispatch (#19360) 2023-06-04 18:03:44 -06:00
event_test.ts perf(ext/event): optimize Event constructor (#20181) 2023-08-17 10:35:18 +02:00
fetch_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
ffi_test.ts fix(ext/ffi): use anybuffer for op_ffi_ptr_of (#20820) 2023-10-08 14:02:07 +09:00
file_test.ts feat(ext/web): Add name to Deno.customInspect of File objects (#20415) 2023-09-14 07:06:58 +02:00
filereader_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
files_test.ts feat: disposable Deno resources (#20845) 2023-11-01 20:26:12 +01:00
flock_test.ts chore(core): fix flaky flock_test on windows (#19477) 2023-06-12 20:30:29 +00:00
fs_events_test.ts feat: disposable Deno resources (#20845) 2023-11-01 20:26:12 +01:00
get_random_values_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
globals_test.ts fix: add missing Object.groupBy() and Map.groupBy() types (#21050) 2023-11-01 23:18:41 +00:00
headers_test.ts fix(core): introduce SafeRegExp to primordials (#17592) 2023-03-01 08:14:16 +09:00
http_test.ts feat: disposable Deno resources (#20845) 2023-11-01 20:26:12 +01:00
internals_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
intl_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
io_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
jupyter_test.ts feat(unstable): add Deno.jupyter.display API (#20819) 2023-10-12 22:32:38 +00:00
kv_queue_test_no_db_close.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
kv_queue_undelivered_test.ts feat(kv) queue implementation (#19459) 2023-06-13 17:49:57 -07:00
kv_test.ts fix(test) reduce queue persistence test time from 60 secs to 6 secs (#21142) 2023-11-10 11:28:38 +01:00
link_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
make_temp_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
message_channel_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
mkdir_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
navigator_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
net_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
network_interfaces_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
opcall_test.ts Revert "chore: update deno_std submodule (#20994)" (#21001) 2023-10-28 01:24:37 +00:00
os_test.ts feat(runtime/os): add Deno.env.has() (#17315) 2023-01-09 20:19:55 +01:00
path_from_url_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
performance_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
permissions_test.ts feat: Add sync APIs for "Deno.permissions" (#17019) 2023-01-25 00:42:44 +01:00
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 chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
promise_hooks_test.ts refactor: remove Deno.core (#16881) 2023-01-24 18:54:10 +01:00
read_dir_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
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 chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
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 chore: fix flaky netListenUnrefAndRef (#16892) 2022-12-02 12:41:52 -05:00
real_path_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
ref_unref_test.ts perf: remove knowledge of promise IDs from deno (#21132) 2023-11-09 13:57:26 -07:00
remove_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
rename_test.ts chore(cli): Fix rename test for XFS (#21215) 2023-11-17 15:24:10 -07:00
request_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
resources_test.ts chore(cli): One Rust test per JS and Node unit test file (#19199) 2023-05-22 13:35:59 -06:00
response_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
serve_test.ts fix(ext/http): Throwing Error if the return value of Deno.serve handler is not a Response class (#21099) 2023-11-07 15:52:44 -07:00
signal_test.ts chore(cli): unflake signal test (#21185) 2023-11-13 18:45:48 +00:00
stat_test.ts refactor(core): Extract deno_core (#19658) 2023-07-02 00:00:14 +00:00
stdio_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
streams_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
structured_clone_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
symlink_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
sync_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
test_util.ts chore(cli): Fix rename test for XFS (#21215) 2023-11-17 15:24:10 -07: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 chore(ext/web): use a non-resource stream for textDecoderStreamCleansUpOnCancel (#21181) 2023-11-13 11:35:48 -07:00
timers_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
tls_test.ts feat(ext/net): use rustls_tokio_stream (#21205) 2023-11-15 16:12:46 -07:00
truncate_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
tty_color_test.ts fix(runtime): fix Deno.noColor when stdout is not tty (#21208) 2023-11-15 14:10:12 +09:00
tty_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
umask_test.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
url_search_params_test.ts chore: fix typos (#19572) 2023-06-26 09:10:27 -04:00
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 chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
version_test.ts feat: TypeScript 5.2 (#20425) 2023-09-09 15:03:21 -04:00
wasm_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00
webcrypto_test.ts fix(ext/crypto): correctly limit ECDSA and hash algorithms (#18030) 2023-03-05 12:34:07 +00:00
websocket_test.ts chore: refactor test_server and move to rustls-tokio-stream (#21117) 2023-11-08 13:00:29 -07:00
webstorage_test.ts fix(ext/web): webstorage has trap for symbol (#21090) 2023-11-14 07:01:15 +01:00
worker_permissions_test.ts chore(cli): Migrate some unit tests to "Promise.withResolvers()" (#21128) 2023-11-10 14:29:09 -07:00
worker_types.ts chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
write_file_test.ts fix(ops): Always close cancel handles for read_async/write_async (#17736) 2023-02-11 14:19:13 +02:00
write_text_file_test.ts chore: add copyright_checker tool and add the missing copyright (#17285) 2023-01-13 16:51:32 +09:00

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.