1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00
denoland-deno/tests/unit
David Sherret 74fc66da11
fix: lock down allow-run permissions more (#25370)
`--allow-run` even with an allow list has essentially been
`--allow-all`... this locks it down more.

1. Resolves allow list for `--allow-run=` on startup to an absolute
path, then uses these paths when evaluating if a command can execute.
Also, adds these paths to `--deny-write`
1. Resolves the environment (cwd and env vars) before evaluating
permissions and before executing a command. Then uses this environment
to evaluate the permissions and then evaluate the command.
2024-09-04 14:51:24 +02:00
..
abort_controller_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
blob_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
body_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
broadcast_channel_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
buffer_test.ts BEAKING(buffer): remove Deno.readAll[Sync]() (#25386) 2024-09-04 08:54:50 +00:00
build_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
cache_api_test.ts refactor(ext/fetch): align error messages (#25374) 2024-09-04 09:05:29 +02:00
chmod_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
chown_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
command_test.ts chore: upgrade dlint to 0.60.0 (#24041) 2024-06-05 01:09:29 +02:00
console_test.ts chore: enable no-console dlint rule (#25113) 2024-08-20 15:14:37 -04:00
copy_file_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
cron_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
custom_event_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
dir_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
dom_exception_test.ts chore(ext/web): use Error.captureStackTrace in DOMException constructor (#23986) 2024-06-05 01:09:13 +02:00
error_stack_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
error_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
esnext_test.ts feat: enable Float16Array support (#23490) 2024-04-23 15:18:27 +00:00
event_source_test.ts fix(ext/fetch): do not truncate field value in EventSource (#22368) 2024-03-25 07:31:13 -07:00
event_target_test.ts chore: upgrade dlint to 0.60.0 (#24041) 2024-06-05 01:09:29 +02:00
event_test.ts fix(runtime): use more null proto objects (#23921) 2024-05-23 00:03:35 +02:00
fetch_test.ts refactor(ext/fetch): align error messages (#25374) 2024-09-04 09:05:29 +02:00
ffi_test.ts BREAKING(ffi/unstable): use BigInt representation in turbocall (#23983) 2024-05-30 08:00:11 +05:30
file_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
filereader_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
files_test.ts BREAKING(permissions): remove --allow-hrtime (#25367) 2024-09-03 11:24:25 +02:00
fs_events_test.ts fix: rename watch event missing (#24893) 2024-08-07 18:15:57 +02:00
get_random_values_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
globals_test.ts Reland "test: run unit tests with DENO_FUTURE=1" (#25212) 2024-08-26 23:58:28 +02:00
headers_test.ts refactor(ext/fetch): align error messages (#25374) 2024-09-04 09:05:29 +02:00
http_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
image_bitmap_test.ts fix(ext/web): properly handle Blob case for createImageBitmap (#23518) 2024-05-07 04:47:42 -07:00
image_data_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
internals_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
intl_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
jupyter_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
kv_queue_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
kv_queue_test_no_db_close.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
kv_queue_undelivered_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
kv_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
link_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
make_temp_test.ts fix(ext/fs): make errors in tempfile creation clearer (#22498) 2024-02-21 20:11:04 +00:00
message_channel_test.ts chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
mkdir_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
navigator_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
net_test.ts Reland "test: run unit tests with DENO_FUTURE=1" (#25212) 2024-08-26 23:58:28 +02:00
network_interfaces_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
ops_test.ts perf(cli): reduce overhead in test registration (#22552) 2024-02-27 20:30:17 -07:00
os_test.ts fix(permissions): disallow any LD_ or DYLD_ prefixed env var without full --allow-run permissions (#25271) 2024-08-28 21:11:37 -04:00
path_from_url_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
performance_test.ts BREAKING(permissions): remove --allow-hrtime (#25367) 2024-09-03 11:24:25 +02:00
permissions_test.ts BREAKING(permissions): remove --allow-hrtime (#25367) 2024-09-03 11:24:25 +02:00
process_test.ts fix: lock down allow-run permissions more (#25370) 2024-09-04 14:51:24 +02:00
progressevent_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
promise_hooks_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
read_dir_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
read_file_test.ts chore: improve accessing special file test (#25099) 2024-08-19 16:21:27 -04:00
read_link_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
read_text_file_test.ts chore: improve accessing special file test (#25099) 2024-08-19 16:21:27 -04:00
README.md chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
real_path_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
ref_unref_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
remove_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
rename_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
request_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
response_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
serve_test.ts Reland "test: run unit tests with DENO_FUTURE=1" (#25212) 2024-08-26 23:58:28 +02:00
signal_test.ts fix(ext/node): Add SIGPOLL and SIGUNUSED signals (#24259) 2024-06-19 13:41:09 +05:30
stat_test.ts BREAKING(fs): remove Deno.fstat[Sync]() (#25351) 2024-09-04 01:28:15 +00:00
stdio_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
streams_test.ts Revert "feat(fetch): accept async iterables for body" (#25207) 2024-08-26 12:24:27 +02:00
structured_clone_test.ts fix(ext/web): Fix structuredClone Web API type declaration (any -> generic) (#22968) 2024-03-25 22:44:49 +01:00
symbol_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
symlink_test.ts fix: Add missing "junction" type for SymlinkOptions.types (#23756) 2024-05-14 15:06:21 +02:00
sync_test.ts Reland "test: run unit tests with DENO_FUTURE=1" (#25212) 2024-08-26 23:58:28 +02:00
test_util.ts BREAKING: DENO_FUTURE=1 by default, or welcome to Deno 2.0 (#25213) 2024-08-30 13:58:58 -04:00
testing_test.ts refactor(cli/js): align error messages (#25406) 2024-09-04 09:19:55 +02:00
text_encoding_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
timers_test.ts Reland "test: run unit tests with DENO_FUTURE=1" (#25212) 2024-08-26 23:58:28 +02:00
tls_sni_test.ts refactor(ext/tls): Implement required functionality for later SNI support (#23686) 2024-05-09 10:54:47 -06:00
tls_test.ts Reland "test: run unit tests with DENO_FUTURE=1" (#25212) 2024-08-26 23:58:28 +02:00
truncate_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
tty_color_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
tty_test.ts chore(tty): soft-remove Deno.isatty() (#25410) 2024-09-04 18:12:11 +10:00
umask_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
url_search_params_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
url_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
urlpattern_test.ts fix(urlpattern): fallback to empty string for undefined group values (#25151) 2024-08-22 05:44:09 -07:00
utime_test.ts chore(fs): remove Deno.futime[Sync]() (#25252) 2024-08-31 13:13:23 +10:00
version_test.ts feat: Upgrade to TypeScript 5.5.2 (#24326) 2024-07-03 16:09:54 +02:00
wasm_test.ts refactor(ext/fetch): align error messages (#25374) 2024-09-04 09:05:29 +02:00
webcrypto_test.ts Reland "test: run unit tests with DENO_FUTURE=1" (#25212) 2024-08-26 23:58:28 +02:00
webgpu_test.ts fix(ext/webgpu): assign missing constants property of shader about GPUDevice.createRenderPipeline[Async] (#24803) 2024-08-01 11:19:25 -07:00
websocket_test.ts fix(ext/websocket): drop connection when close frame not ack (#24301) 2024-06-25 19:09:02 +05:30
websocketstream_test.ts.disabled chore: update to std@2024.07.19 (#24715) 2024-07-25 15:30:28 +10:00
webstorage_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
worker_permissions_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
worker_test.ts BREAKING(permissions): remove --allow-hrtime (#25367) 2024-09-03 11:24:25 +02:00
write_file_test.ts fix(ext/fs): truncate files when a ReadableStream is passed to writeFile (#23330) 2024-05-28 00:14:35 +02:00
write_text_file_test.ts chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00: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.