1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-22 15:06:54 -05:00
denoland-deno/cli/tests/unit
Bert Belder ff932b411d
fix(core): poll async ops eagerly (#12385)
Currently all async ops are polled lazily, which means that op
initialization code is postponed until control is yielded to the event
loop. This has some weird consequences, e.g.

```js
let listener = Deno.listen(...);
let conn_promise = listener.accept();
listener.close();
// `BadResource` is thrown. A reasonable error would be `Interrupted`.
let conn = await conn_promise;
```

JavaScript promises are expected to be eagerly evaluated. This patch
makes ops actually do that.
2021-10-17 19:50:42 +02:00
..
abort_controller_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
blob_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
body_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
broadcast_channel_test.ts chore: move test files to testdata directory (#11601) 2021-08-11 10:20:47 -04:00
buffer_test.ts chore: replace calls to assertThrowsAsync with assertRejects (#12176) 2021-09-22 09:21:11 -04:00
build_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
chmod_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
chown_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
console_test.ts fix(console): fix display of primitive wrapper objects (#12425) 2021-10-14 12:52:08 +09:00
copy_file_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
custom_event_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
dir_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
dom_exception_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
error_stack_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
esnext_test.ts feat: add new esnext types (#11627) 2021-08-10 10:33:08 +02:00
event_target_test.ts chore: upgrade crates (#11894) 2021-09-02 17:38:19 +02:00
event_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
fetch_test.ts feat(tls): custom in memory CA certificates (#12219) 2021-09-30 09:26:15 +02:00
ffi_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
file_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
filereader_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
files_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
flock_test.ts chore: ensure first process in shared flock test does not enter and exit lock before second enters (#12255) 2021-09-30 15:45:13 -04:00
format_error_test.ts chore: update copyright to 2021 (#9092) 2021-01-11 18:13:41 +01:00
fs_events_test.ts chore(cli/tests): fix flaky fs watcher tests (#12385) 2021-10-17 15:12:48 +02:00
get_random_values_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
globals_test.ts chore: upgrade crates (#11894) 2021-09-02 17:38:19 +02:00
headers_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
http_test.ts fix(core): poll async ops eagerly (#12385) 2021-10-17 19:50:42 +02:00
internals_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
io_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
link_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
make_temp_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
message_channel_test.ts fix: MessagePort in message for postMessage transfers (#11103) 2021-06-26 11:17:05 +02:00
metrics_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
mkdir_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
navigator_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
net_test.ts fix(core): poll async ops eagerly (#12385) 2021-10-17 19:50:42 +02:00
opcall_test.ts feat(core): cleaner opcall stack traces (#12358) 2021-10-07 18:39:27 +02:00
os_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
path_from_url_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
performance_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
permissions_test.ts chore: replace calls to assertThrowsAsync with assertRejects (#12176) 2021-09-22 09:21:11 -04:00
process_test.ts feat: Stabilize Deno.kill and Deno.Process.kill (#12375) 2021-10-10 15:48:26 +02:00
progressevent_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
read_dir_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
read_file_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
read_link_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
read_text_file_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
README.md feat(tls): custom in memory CA certificates (#12219) 2021-09-30 09:26:15 +02:00
real_path_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
remove_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
rename_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
request_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
resources_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
response_test.ts perf(webidl): inline ResponseInit converter (#12285) 2021-10-11 23:43:52 +02:00
signal_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
stat_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
stdio_test.ts chore: update copyright to 2021 (#9092) 2021-01-11 18:13:41 +01:00
streams_deprecated.ts fix(op_crate/fetch): add back ReadableStream.getIterator and deprecate (#9146) 2021-01-18 10:40:39 +11:00
structured_clone_test.ts feat(extensions/web): add structuredClone function (#11572) 2021-08-09 10:39:00 +02:00
symlink_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
sync_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
test_util.ts feat(unstable/test): imperative test steps API (#12190) 2021-10-11 09:45:02 -04:00
testing_test.ts feat(unstable/test): imperative test steps API (#12190) 2021-10-11 09:45:02 -04:00
text_encoding_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
timers_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
tls_test.ts feat(tls): custom in memory CA certificates (#12219) 2021-09-30 09:26:15 +02:00
truncate_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
tty_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
umask_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
url_search_params_test.ts tests: remove redundant type assertion (#11794) 2021-08-21 16:55:28 +10:00
url_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
urlpattern_test.ts feat: add URLPattern API (#11941) 2021-09-08 11:14:29 +02:00
utime_test.ts feat(runtime): improve error messages of runtime fs (#11984) 2021-10-11 15:21:18 +02:00
version_test.ts refactor(cli/tests): remove unnecessary void return types (#11577) 2021-08-05 13:08:58 +02:00
wasm_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
webcrypto_test.ts feat(ext/crypto): implement deriveKey (#12117) 2021-10-12 16:09:46 +05:30
webgpu_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
websocket_test.ts chore: update copyright to 2021 (#9092) 2021-01-11 18:13:41 +01:00
worker_permissions_test.ts fix: worker environment permissions should accept an array (#12250) 2021-09-30 15:50:59 -04:00
worker_types.ts fix: worker environment permissions should accept an array (#12250) 2021-09-30 15:50:59 -04:00
write_file_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02:00
write_text_file_test.ts test(cli): align unit test permissions with runtime test permissions (#12189) 2021-09-23 01:50:50 +02: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 unitTest() function.

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

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

unitTest(
  {
    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.
target/debug/deno test --allow-all --unstable --location=http://js-unit-tests/foo/bar cli/tests/unit/

# Run a specific test module
target/debug/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.