mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
Reland "test: run unit tests with DENO_FUTURE=1" (#25212)
Reverted in https://github.com/denoland/deno/pull/25060
This commit is contained in:
parent
631d931973
commit
ba58628601
21 changed files with 489 additions and 224 deletions
|
@ -117,6 +117,10 @@ util::unit_test_factory!(
|
||||||
);
|
);
|
||||||
|
|
||||||
fn js_unit_test(test: String) {
|
fn js_unit_test(test: String) {
|
||||||
|
js_unit_test_inner(test, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn js_unit_test_inner(test: String, future: bool) {
|
||||||
let _g = util::http_server();
|
let _g = util::http_server();
|
||||||
|
|
||||||
let deno = util::deno_cmd()
|
let deno = util::deno_cmd()
|
||||||
|
@ -129,6 +133,12 @@ fn js_unit_test(test: String) {
|
||||||
.arg("--location=http://127.0.0.1:4545/")
|
.arg("--location=http://127.0.0.1:4545/")
|
||||||
.arg("--no-prompt");
|
.arg("--no-prompt");
|
||||||
|
|
||||||
|
let deno = if future {
|
||||||
|
deno.env("DENO_FUTURE", "1")
|
||||||
|
} else {
|
||||||
|
deno
|
||||||
|
};
|
||||||
|
|
||||||
// TODO(mmastrac): it would be better to just load a test CA for all tests
|
// TODO(mmastrac): it would be better to just load a test CA for all tests
|
||||||
let deno = if test == "websocket_test" || test == "tls_sni_test" {
|
let deno = if test == "websocket_test" || test == "tls_sni_test" {
|
||||||
deno.arg("--unsafely-ignore-certificate-errors")
|
deno.arg("--unsafely-ignore-certificate-errors")
|
||||||
|
|
118
tests/integration/js_unit_tests_future.rs
Normal file
118
tests/integration/js_unit_tests_future.rs
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||||
|
|
||||||
|
use super::js_unit_tests::js_unit_test_inner;
|
||||||
|
use test_util as util;
|
||||||
|
|
||||||
|
util::unit_test_factory!(
|
||||||
|
js_unit_test_future,
|
||||||
|
"../tests/unit",
|
||||||
|
"*.ts",
|
||||||
|
[
|
||||||
|
abort_controller_test,
|
||||||
|
blob_test,
|
||||||
|
body_test,
|
||||||
|
broadcast_channel_test,
|
||||||
|
buffer_test,
|
||||||
|
build_test,
|
||||||
|
cache_api_test,
|
||||||
|
chmod_test,
|
||||||
|
chown_test,
|
||||||
|
command_test,
|
||||||
|
console_test,
|
||||||
|
copy_file_test,
|
||||||
|
custom_event_test,
|
||||||
|
cron_test,
|
||||||
|
dir_test,
|
||||||
|
dom_exception_test,
|
||||||
|
error_stack_test,
|
||||||
|
error_test,
|
||||||
|
esnext_test,
|
||||||
|
event_source_test,
|
||||||
|
event_target_test,
|
||||||
|
event_test,
|
||||||
|
fetch_test,
|
||||||
|
ffi_test,
|
||||||
|
file_test,
|
||||||
|
filereader_test,
|
||||||
|
files_test,
|
||||||
|
flock_test,
|
||||||
|
fs_events_test,
|
||||||
|
get_random_values_test,
|
||||||
|
globals_test,
|
||||||
|
headers_test,
|
||||||
|
http_test,
|
||||||
|
image_bitmap_test,
|
||||||
|
image_data_test,
|
||||||
|
internals_test,
|
||||||
|
intl_test,
|
||||||
|
io_test,
|
||||||
|
jupyter_test,
|
||||||
|
kv_test,
|
||||||
|
kv_queue_test_no_db_close,
|
||||||
|
kv_queue_test,
|
||||||
|
kv_queue_undelivered_test,
|
||||||
|
link_test,
|
||||||
|
make_temp_test,
|
||||||
|
message_channel_test,
|
||||||
|
mkdir_test,
|
||||||
|
navigator_test,
|
||||||
|
net_test,
|
||||||
|
network_interfaces_test,
|
||||||
|
os_test,
|
||||||
|
ops_test,
|
||||||
|
path_from_url_test,
|
||||||
|
performance_test,
|
||||||
|
permissions_test,
|
||||||
|
process_test,
|
||||||
|
progressevent_test,
|
||||||
|
promise_hooks_test,
|
||||||
|
read_dir_test,
|
||||||
|
read_file_test,
|
||||||
|
read_link_test,
|
||||||
|
read_text_file_test,
|
||||||
|
real_path_test,
|
||||||
|
ref_unref_test,
|
||||||
|
remove_test,
|
||||||
|
rename_test,
|
||||||
|
request_test,
|
||||||
|
resources_test,
|
||||||
|
response_test,
|
||||||
|
serve_test,
|
||||||
|
signal_test,
|
||||||
|
stat_test,
|
||||||
|
stdio_test,
|
||||||
|
streams_test,
|
||||||
|
structured_clone_test,
|
||||||
|
symbol_test,
|
||||||
|
symlink_test,
|
||||||
|
sync_test,
|
||||||
|
test_util,
|
||||||
|
testing_test,
|
||||||
|
text_encoding_test,
|
||||||
|
timers_test,
|
||||||
|
tls_test,
|
||||||
|
tls_sni_test,
|
||||||
|
truncate_test,
|
||||||
|
tty_color_test,
|
||||||
|
tty_test,
|
||||||
|
umask_test,
|
||||||
|
url_search_params_test,
|
||||||
|
url_test,
|
||||||
|
urlpattern_test,
|
||||||
|
utime_test,
|
||||||
|
version_test,
|
||||||
|
wasm_test,
|
||||||
|
webcrypto_test,
|
||||||
|
webgpu_test,
|
||||||
|
websocket_test,
|
||||||
|
webstorage_test,
|
||||||
|
worker_permissions_test,
|
||||||
|
worker_test,
|
||||||
|
write_file_test,
|
||||||
|
write_text_file_test,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
fn js_unit_test_future(test: String) {
|
||||||
|
js_unit_test_inner(test, true);
|
||||||
|
}
|
|
@ -37,6 +37,8 @@ mod inspector;
|
||||||
mod install;
|
mod install;
|
||||||
#[path = "js_unit_tests.rs"]
|
#[path = "js_unit_tests.rs"]
|
||||||
mod js_unit_tests;
|
mod js_unit_tests;
|
||||||
|
#[path = "js_unit_tests_future.rs"]
|
||||||
|
mod js_unit_tests_future;
|
||||||
#[path = "jsr_tests.rs"]
|
#[path = "jsr_tests.rs"]
|
||||||
mod jsr;
|
mod jsr;
|
||||||
#[path = "jupyter_tests.rs"]
|
#[path = "jupyter_tests.rs"]
|
||||||
|
|
|
@ -10,6 +10,7 @@ import {
|
||||||
assertEquals,
|
assertEquals,
|
||||||
assertRejects,
|
assertRejects,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
import { writeAllSync } from "@std/io/write-all";
|
import { writeAllSync } from "@std/io/write-all";
|
||||||
|
|
||||||
|
@ -87,7 +88,7 @@ function repeat(c: string, bytes: number): Uint8Array {
|
||||||
return ui8;
|
return ui8;
|
||||||
}
|
}
|
||||||
|
|
||||||
Deno.test(function bufferNewBuffer() {
|
Deno.test({ ignore: DENO_FUTURE }, function bufferNewBuffer() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
assert(testString);
|
assert(testString);
|
||||||
|
@ -95,7 +96,7 @@ Deno.test(function bufferNewBuffer() {
|
||||||
check(buf, testString);
|
check(buf, testString);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function bufferBasicOperations() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferBasicOperations() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
assert(testString);
|
assert(testString);
|
||||||
|
@ -135,7 +136,7 @@ Deno.test(async function bufferBasicOperations() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function bufferReadEmptyAtEOF() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferReadEmptyAtEOF() {
|
||||||
// check that EOF of 'buf' is not reached (even though it's empty) if
|
// check that EOF of 'buf' is not reached (even though it's empty) if
|
||||||
// results are written to buffer that has 0 length (ie. it can't store any data)
|
// results are written to buffer that has 0 length (ie. it can't store any data)
|
||||||
const buf = new Deno.Buffer();
|
const buf = new Deno.Buffer();
|
||||||
|
@ -144,7 +145,7 @@ Deno.test(async function bufferReadEmptyAtEOF() {
|
||||||
assertEquals(result, 0);
|
assertEquals(result, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function bufferLargeByteWrites() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferLargeByteWrites() {
|
||||||
init();
|
init();
|
||||||
const buf = new Deno.Buffer();
|
const buf = new Deno.Buffer();
|
||||||
const limit = 9;
|
const limit = 9;
|
||||||
|
@ -155,7 +156,7 @@ Deno.test(async function bufferLargeByteWrites() {
|
||||||
check(buf, "");
|
check(buf, "");
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function bufferTooLargeByteWrites() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferTooLargeByteWrites() {
|
||||||
init();
|
init();
|
||||||
const tmp = new Uint8Array(72);
|
const tmp = new Uint8Array(72);
|
||||||
const growLen = Number.MAX_VALUE;
|
const growLen = Number.MAX_VALUE;
|
||||||
|
@ -173,7 +174,7 @@ Deno.test(async function bufferTooLargeByteWrites() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ ignore: ignoreMaxSizeTests },
|
{ ignore: ignoreMaxSizeTests || DENO_FUTURE },
|
||||||
function bufferGrowWriteMaxBuffer() {
|
function bufferGrowWriteMaxBuffer() {
|
||||||
const bufSize = 16 * 1024;
|
const bufSize = 16 * 1024;
|
||||||
const capacities = [MAX_SIZE, MAX_SIZE - 1];
|
const capacities = [MAX_SIZE, MAX_SIZE - 1];
|
||||||
|
@ -195,7 +196,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ ignore: ignoreMaxSizeTests },
|
{ ignore: ignoreMaxSizeTests || DENO_FUTURE },
|
||||||
async function bufferGrowReadCloseMaxBufferPlus1() {
|
async function bufferGrowReadCloseMaxBufferPlus1() {
|
||||||
const reader = new Deno.Buffer(new ArrayBuffer(MAX_SIZE + 1));
|
const reader = new Deno.Buffer(new ArrayBuffer(MAX_SIZE + 1));
|
||||||
const buf = new Deno.Buffer();
|
const buf = new Deno.Buffer();
|
||||||
|
@ -211,7 +212,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ ignore: ignoreMaxSizeTests },
|
{ ignore: ignoreMaxSizeTests || DENO_FUTURE },
|
||||||
function bufferGrowReadSyncCloseMaxBufferPlus1() {
|
function bufferGrowReadSyncCloseMaxBufferPlus1() {
|
||||||
const reader = new Deno.Buffer(new ArrayBuffer(MAX_SIZE + 1));
|
const reader = new Deno.Buffer(new ArrayBuffer(MAX_SIZE + 1));
|
||||||
const buf = new Deno.Buffer();
|
const buf = new Deno.Buffer();
|
||||||
|
@ -227,7 +228,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ ignore: ignoreMaxSizeTests },
|
{ ignore: ignoreMaxSizeTests || DENO_FUTURE },
|
||||||
function bufferGrowReadSyncCloseToMaxBuffer() {
|
function bufferGrowReadSyncCloseToMaxBuffer() {
|
||||||
const capacities = [MAX_SIZE, MAX_SIZE - 1];
|
const capacities = [MAX_SIZE, MAX_SIZE - 1];
|
||||||
for (const capacity of capacities) {
|
for (const capacity of capacities) {
|
||||||
|
@ -241,7 +242,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ ignore: ignoreMaxSizeTests },
|
{ ignore: ignoreMaxSizeTests || DENO_FUTURE },
|
||||||
async function bufferGrowReadCloseToMaxBuffer() {
|
async function bufferGrowReadCloseToMaxBuffer() {
|
||||||
const capacities = [MAX_SIZE, MAX_SIZE - 1];
|
const capacities = [MAX_SIZE, MAX_SIZE - 1];
|
||||||
for (const capacity of capacities) {
|
for (const capacity of capacities) {
|
||||||
|
@ -254,7 +255,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ ignore: ignoreMaxSizeTests },
|
{ ignore: ignoreMaxSizeTests || DENO_FUTURE },
|
||||||
async function bufferReadCloseToMaxBufferWithInitialGrow() {
|
async function bufferReadCloseToMaxBufferWithInitialGrow() {
|
||||||
const capacities = [MAX_SIZE, MAX_SIZE - 1, MAX_SIZE - 512];
|
const capacities = [MAX_SIZE, MAX_SIZE - 1, MAX_SIZE - 512];
|
||||||
for (const capacity of capacities) {
|
for (const capacity of capacities) {
|
||||||
|
@ -267,7 +268,7 @@ Deno.test(
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(async function bufferLargeByteReads() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferLargeByteReads() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
assert(testString);
|
assert(testString);
|
||||||
|
@ -280,12 +281,12 @@ Deno.test(async function bufferLargeByteReads() {
|
||||||
check(buf, "");
|
check(buf, "");
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function bufferCapWithPreallocatedSlice() {
|
Deno.test({ ignore: DENO_FUTURE }, function bufferCapWithPreallocatedSlice() {
|
||||||
const buf = new Deno.Buffer(new ArrayBuffer(10));
|
const buf = new Deno.Buffer(new ArrayBuffer(10));
|
||||||
assertEquals(buf.capacity, 10);
|
assertEquals(buf.capacity, 10);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function bufferReadFrom() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferReadFrom() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
assert(testString);
|
assert(testString);
|
||||||
|
@ -307,7 +308,7 @@ Deno.test(async function bufferReadFrom() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function bufferReadFromSync() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferReadFromSync() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
assert(testString);
|
assert(testString);
|
||||||
|
@ -329,7 +330,7 @@ Deno.test(async function bufferReadFromSync() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function bufferTestGrow() {
|
Deno.test({ ignore: DENO_FUTURE }, async function bufferTestGrow() {
|
||||||
const tmp = new Uint8Array(72);
|
const tmp = new Uint8Array(72);
|
||||||
for (const startLen of [0, 100, 1000, 10000]) {
|
for (const startLen of [0, 100, 1000, 10000]) {
|
||||||
const xBytes = repeat("x", startLen);
|
const xBytes = repeat("x", startLen);
|
||||||
|
@ -353,7 +354,7 @@ Deno.test(async function bufferTestGrow() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function testReadAll() {
|
Deno.test({ ignore: DENO_FUTURE }, async function testReadAll() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
const reader = new Deno.Buffer(testBytes.buffer as ArrayBuffer);
|
const reader = new Deno.Buffer(testBytes.buffer as ArrayBuffer);
|
||||||
|
@ -364,7 +365,7 @@ Deno.test(async function testReadAll() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function testReadAllSync() {
|
Deno.test({ ignore: DENO_FUTURE }, function testReadAllSync() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
const reader = new Deno.Buffer(testBytes.buffer as ArrayBuffer);
|
const reader = new Deno.Buffer(testBytes.buffer as ArrayBuffer);
|
||||||
|
@ -375,7 +376,7 @@ Deno.test(function testReadAllSync() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function testWriteAll() {
|
Deno.test({ ignore: DENO_FUTURE }, async function testWriteAll() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
const writer = new Deno.Buffer();
|
const writer = new Deno.Buffer();
|
||||||
|
@ -387,7 +388,7 @@ Deno.test(async function testWriteAll() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function testWriteAllSync() {
|
Deno.test({ ignore: DENO_FUTURE }, function testWriteAllSync() {
|
||||||
init();
|
init();
|
||||||
assert(testBytes);
|
assert(testBytes);
|
||||||
const writer = new Deno.Buffer();
|
const writer = new Deno.Buffer();
|
||||||
|
@ -399,7 +400,7 @@ Deno.test(function testWriteAllSync() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function testBufferBytesArrayBufferLength() {
|
Deno.test({ ignore: DENO_FUTURE }, function testBufferBytesArrayBufferLength() {
|
||||||
// defaults to copy
|
// defaults to copy
|
||||||
const args = [{}, { copy: undefined }, undefined, { copy: true }];
|
const args = [{}, { copy: undefined }, undefined, { copy: true }];
|
||||||
for (const arg of args) {
|
for (const arg of args) {
|
||||||
|
@ -418,7 +419,7 @@ Deno.test(function testBufferBytesArrayBufferLength() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function testBufferBytesCopyFalse() {
|
Deno.test({ ignore: DENO_FUTURE }, function testBufferBytesCopyFalse() {
|
||||||
const bufSize = 64 * 1024;
|
const bufSize = 64 * 1024;
|
||||||
const bytes = new TextEncoder().encode("a".repeat(bufSize));
|
const bytes = new TextEncoder().encode("a".repeat(bufSize));
|
||||||
const reader = new Deno.Buffer();
|
const reader = new Deno.Buffer();
|
||||||
|
@ -433,30 +434,36 @@ Deno.test(function testBufferBytesCopyFalse() {
|
||||||
assert(actualBytes.buffer.byteLength > actualBytes.byteLength);
|
assert(actualBytes.buffer.byteLength > actualBytes.byteLength);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function testBufferBytesCopyFalseGrowExactBytes() {
|
Deno.test(
|
||||||
const bufSize = 64 * 1024;
|
{ ignore: DENO_FUTURE },
|
||||||
const bytes = new TextEncoder().encode("a".repeat(bufSize));
|
function testBufferBytesCopyFalseGrowExactBytes() {
|
||||||
const reader = new Deno.Buffer();
|
const bufSize = 64 * 1024;
|
||||||
writeAllSync(reader, bytes);
|
const bytes = new TextEncoder().encode("a".repeat(bufSize));
|
||||||
|
const reader = new Deno.Buffer();
|
||||||
|
writeAllSync(reader, bytes);
|
||||||
|
|
||||||
const writer = new Deno.Buffer();
|
const writer = new Deno.Buffer();
|
||||||
writer.grow(bufSize);
|
writer.grow(bufSize);
|
||||||
writer.readFromSync(reader);
|
writer.readFromSync(reader);
|
||||||
const actualBytes = writer.bytes({ copy: false });
|
const actualBytes = writer.bytes({ copy: false });
|
||||||
|
|
||||||
assertEquals(actualBytes.byteLength, bufSize);
|
assertEquals(actualBytes.byteLength, bufSize);
|
||||||
assertEquals(actualBytes.buffer.byteLength, actualBytes.byteLength);
|
assertEquals(actualBytes.buffer.byteLength, actualBytes.byteLength);
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
||||||
Deno.test(function testThrowsErrorWhenBufferExceedsMaxLength() {
|
Deno.test(
|
||||||
const kStringMaxLengthPlusOne = 536870888 + 1;
|
{ ignore: DENO_FUTURE },
|
||||||
const bytes = new Uint8Array(kStringMaxLengthPlusOne);
|
function testThrowsErrorWhenBufferExceedsMaxLength() {
|
||||||
|
const kStringMaxLengthPlusOne = 536870888 + 1;
|
||||||
|
const bytes = new Uint8Array(kStringMaxLengthPlusOne);
|
||||||
|
|
||||||
assertThrows(
|
assertThrows(
|
||||||
() => {
|
() => {
|
||||||
new TextDecoder().decode(bytes);
|
new TextDecoder().decode(bytes);
|
||||||
},
|
},
|
||||||
TypeError,
|
TypeError,
|
||||||
"buffer exceeds maximum length",
|
"buffer exceeds maximum length",
|
||||||
);
|
);
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
|
@ -9,6 +9,7 @@ import {
|
||||||
assertStringIncludes,
|
assertStringIncludes,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
delay,
|
delay,
|
||||||
|
DENO_FUTURE,
|
||||||
fail,
|
fail,
|
||||||
unimplemented,
|
unimplemented,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
|
@ -1358,7 +1359,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function fetchCustomClientPrivateKey(): Promise<
|
async function fetchCustomClientPrivateKey(): Promise<
|
||||||
void
|
void
|
||||||
> {
|
> {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import {
|
||||||
assertEquals,
|
assertEquals,
|
||||||
assertRejects,
|
assertRejects,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
import { copy } from "@std/io/copy";
|
import { copy } from "@std/io/copy";
|
||||||
|
|
||||||
|
@ -18,31 +19,37 @@ Deno.test(function filesStdioFileDescriptors() {
|
||||||
assertEquals(Deno.stderr.rid, 2);
|
assertEquals(Deno.stderr.rid, 2);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test({ permissions: { read: true } }, async function filesCopyToStdout() {
|
Deno.test(
|
||||||
const filename = "tests/testdata/assets/fixture.json";
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
using file = await Deno.open(filename);
|
async function filesCopyToStdout() {
|
||||||
assert(file instanceof Deno.File);
|
const filename = "tests/testdata/assets/fixture.json";
|
||||||
assert(file instanceof Deno.FsFile);
|
using file = await Deno.open(filename);
|
||||||
assert(file.rid > 2);
|
assert(file instanceof Deno.File);
|
||||||
const bytesWritten = await copy(file, Deno.stdout);
|
assert(file instanceof Deno.FsFile);
|
||||||
const fileSize = Deno.statSync(filename).size;
|
assert(file.rid > 2);
|
||||||
assertEquals(bytesWritten, fileSize);
|
const bytesWritten = await copy(file, Deno.stdout);
|
||||||
});
|
const fileSize = Deno.statSync(filename).size;
|
||||||
|
assertEquals(bytesWritten, fileSize);
|
||||||
Deno.test({ permissions: { read: true } }, async function filesIter() {
|
},
|
||||||
const filename = "tests/testdata/assets/hello.txt";
|
);
|
||||||
using file = await Deno.open(filename);
|
|
||||||
|
|
||||||
let totalSize = 0;
|
|
||||||
for await (const buf of Deno.iter(file)) {
|
|
||||||
totalSize += buf.byteLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertEquals(totalSize, 12);
|
|
||||||
});
|
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
|
async function filesIter() {
|
||||||
|
const filename = "tests/testdata/assets/hello.txt";
|
||||||
|
using file = await Deno.open(filename);
|
||||||
|
|
||||||
|
let totalSize = 0;
|
||||||
|
for await (const buf of Deno.iter(file)) {
|
||||||
|
totalSize += buf.byteLength;
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(totalSize, 12);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
Deno.test(
|
||||||
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
async function filesIterCustomBufSize() {
|
async function filesIterCustomBufSize() {
|
||||||
const filename = "tests/testdata/assets/hello.txt";
|
const filename = "tests/testdata/assets/hello.txt";
|
||||||
using file = await Deno.open(filename);
|
using file = await Deno.open(filename);
|
||||||
|
@ -59,20 +66,23 @@ Deno.test(
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test({ permissions: { read: true } }, function filesIterSync() {
|
Deno.test(
|
||||||
const filename = "tests/testdata/assets/hello.txt";
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
using file = Deno.openSync(filename);
|
function filesIterSync() {
|
||||||
|
const filename = "tests/testdata/assets/hello.txt";
|
||||||
|
using file = Deno.openSync(filename);
|
||||||
|
|
||||||
let totalSize = 0;
|
let totalSize = 0;
|
||||||
for (const buf of Deno.iterSync(file)) {
|
for (const buf of Deno.iterSync(file)) {
|
||||||
totalSize += buf.byteLength;
|
totalSize += buf.byteLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
assertEquals(totalSize, 12);
|
assertEquals(totalSize, 12);
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
function filesIterSyncCustomBufSize() {
|
function filesIterSyncCustomBufSize() {
|
||||||
const filename = "tests/testdata/assets/hello.txt";
|
const filename = "tests/testdata/assets/hello.txt";
|
||||||
using file = Deno.openSync(filename);
|
using file = Deno.openSync(filename);
|
||||||
|
@ -89,7 +99,7 @@ Deno.test(
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(async function readerIter() {
|
Deno.test({ ignore: DENO_FUTURE }, async function readerIter() {
|
||||||
// ref: https://github.com/denoland/deno/issues/2330
|
// ref: https://github.com/denoland/deno/issues/2330
|
||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
|
|
||||||
|
@ -124,7 +134,7 @@ Deno.test(async function readerIter() {
|
||||||
assertEquals(totalSize, 12);
|
assertEquals(totalSize, 12);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function readerIterSync() {
|
Deno.test({ ignore: DENO_FUTURE }, async function readerIterSync() {
|
||||||
// ref: https://github.com/denoland/deno/issues/2330
|
// ref: https://github.com/denoland/deno/issues/2330
|
||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||||
import { assertEquals } from "./test_util.ts";
|
import { assertEquals, DENO_FUTURE } from "./test_util.ts";
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, run: true, hrtime: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, run: true, hrtime: true } },
|
||||||
async function flockFileSync() {
|
async function flockFileSync() {
|
||||||
await runFlockTests({ sync: true });
|
await runFlockTests({ sync: true });
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, run: true, hrtime: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, run: true, hrtime: true } },
|
||||||
async function flockFileAsync() {
|
async function flockFileAsync() {
|
||||||
await runFlockTests({ sync: false });
|
await runFlockTests({ sync: false });
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,6 +6,7 @@ import {
|
||||||
assertEquals,
|
assertEquals,
|
||||||
assertRejects,
|
assertRejects,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
|
|
||||||
Deno.test(function globalThisExists() {
|
Deno.test(function globalThisExists() {
|
||||||
|
@ -19,7 +20,7 @@ Deno.test(function noInternalGlobals() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function windowExists() {
|
Deno.test({ ignore: DENO_FUTURE }, function windowExists() {
|
||||||
assert(window != null);
|
assert(window != null);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -27,15 +28,15 @@ Deno.test(function selfExists() {
|
||||||
assert(self != null);
|
assert(self != null);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function windowWindowExists() {
|
Deno.test({ ignore: DENO_FUTURE }, function windowWindowExists() {
|
||||||
assert(window.window === window);
|
assert(window.window === window);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function windowSelfExists() {
|
Deno.test({ ignore: DENO_FUTURE }, function windowSelfExists() {
|
||||||
assert(window.self === window);
|
assert(window.self === window);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function globalThisEqualsWindow() {
|
Deno.test({ ignore: DENO_FUTURE }, function globalThisEqualsWindow() {
|
||||||
assert(globalThis === window);
|
assert(globalThis === window);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -43,7 +44,7 @@ Deno.test(function globalThisEqualsSelf() {
|
||||||
assert(globalThis === self);
|
assert(globalThis === self);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function globalThisInstanceofWindow() {
|
Deno.test({ ignore: DENO_FUTURE }, function globalThisInstanceofWindow() {
|
||||||
assert(globalThis instanceof Window);
|
assert(globalThis instanceof Window);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -65,7 +66,7 @@ Deno.test(function DenoNamespaceExists() {
|
||||||
assert(Deno != null);
|
assert(Deno != null);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function DenoNamespaceEqualsWindowDeno() {
|
Deno.test({ ignore: DENO_FUTURE }, function DenoNamespaceEqualsWindowDeno() {
|
||||||
assert(Deno === window.Deno);
|
assert(Deno === window.Deno);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -119,7 +120,11 @@ Deno.test(async function windowQueueMicrotask() {
|
||||||
res();
|
res();
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
window.queueMicrotask(resolve1!);
|
if (DENO_FUTURE) {
|
||||||
|
globalThis.queueMicrotask(resolve1!);
|
||||||
|
} else {
|
||||||
|
window.queueMicrotask(resolve1!);
|
||||||
|
}
|
||||||
setTimeout(resolve2!, 0);
|
setTimeout(resolve2!, 0);
|
||||||
await p1;
|
await p1;
|
||||||
await p2;
|
await p2;
|
||||||
|
@ -138,12 +143,18 @@ Deno.test(function webApiGlobalThis() {
|
||||||
Deno.test(function windowNameIsDefined() {
|
Deno.test(function windowNameIsDefined() {
|
||||||
assertEquals(typeof globalThis.name, "string");
|
assertEquals(typeof globalThis.name, "string");
|
||||||
assertEquals(name, "");
|
assertEquals(name, "");
|
||||||
assertEquals(window.name, name);
|
if (!DENO_FUTURE) {
|
||||||
|
assertEquals(window.name, name);
|
||||||
|
}
|
||||||
name = "foobar";
|
name = "foobar";
|
||||||
assertEquals(window.name, "foobar");
|
if (!DENO_FUTURE) {
|
||||||
|
assertEquals(window.name, "foobar");
|
||||||
|
}
|
||||||
assertEquals(name, "foobar");
|
assertEquals(name, "foobar");
|
||||||
name = "";
|
name = "";
|
||||||
assertEquals(window.name, "");
|
if (!DENO_FUTURE) {
|
||||||
|
assertEquals(window.name, "");
|
||||||
|
}
|
||||||
assertEquals(name, "");
|
assertEquals(name, "");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||||
import { assertEquals } from "./test_util.ts";
|
import { assertEquals, DENO_FUTURE } from "./test_util.ts";
|
||||||
import { Buffer } from "@std/io/buffer";
|
import { Buffer } from "@std/io/buffer";
|
||||||
|
|
||||||
const DEFAULT_BUF_SIZE = 32 * 1024;
|
const DEFAULT_BUF_SIZE = 32 * 1024;
|
||||||
|
@ -28,7 +28,7 @@ function spyRead(obj: Buffer): Spy {
|
||||||
return spy;
|
return spy;
|
||||||
}
|
}
|
||||||
|
|
||||||
Deno.test(async function copyWithDefaultBufferSize() {
|
Deno.test({ ignore: DENO_FUTURE }, async function copyWithDefaultBufferSize() {
|
||||||
const xBytes = repeat("b", DEFAULT_BUF_SIZE);
|
const xBytes = repeat("b", DEFAULT_BUF_SIZE);
|
||||||
const reader = new Buffer(xBytes.buffer as ArrayBuffer);
|
const reader = new Buffer(xBytes.buffer as ArrayBuffer);
|
||||||
const write = new Buffer();
|
const write = new Buffer();
|
||||||
|
@ -43,7 +43,7 @@ Deno.test(async function copyWithDefaultBufferSize() {
|
||||||
assertEquals(readSpy.calls, 2); // read with DEFAULT_BUF_SIZE bytes + read with 0 bytes
|
assertEquals(readSpy.calls, 2); // read with DEFAULT_BUF_SIZE bytes + read with 0 bytes
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function copyWithCustomBufferSize() {
|
Deno.test({ ignore: DENO_FUTURE }, async function copyWithCustomBufferSize() {
|
||||||
const bufSize = 1024;
|
const bufSize = 1024;
|
||||||
const xBytes = repeat("b", DEFAULT_BUF_SIZE);
|
const xBytes = repeat("b", DEFAULT_BUF_SIZE);
|
||||||
const reader = new Buffer(xBytes.buffer as ArrayBuffer);
|
const reader = new Buffer(xBytes.buffer as ArrayBuffer);
|
||||||
|
@ -59,19 +59,22 @@ Deno.test(async function copyWithCustomBufferSize() {
|
||||||
assertEquals(readSpy.calls, DEFAULT_BUF_SIZE / bufSize + 1);
|
assertEquals(readSpy.calls, DEFAULT_BUF_SIZE / bufSize + 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test({ permissions: { write: true } }, async function copyBufferToFile() {
|
Deno.test(
|
||||||
const filePath = "test-file.txt";
|
{ ignore: DENO_FUTURE, permissions: { write: true } },
|
||||||
// bigger than max File possible buffer 16kb
|
async function copyBufferToFile() {
|
||||||
const bufSize = 32 * 1024;
|
const filePath = "test-file.txt";
|
||||||
const xBytes = repeat("b", bufSize);
|
// bigger than max File possible buffer 16kb
|
||||||
const reader = new Buffer(xBytes.buffer as ArrayBuffer);
|
const bufSize = 32 * 1024;
|
||||||
const write = await Deno.open(filePath, { write: true, create: true });
|
const xBytes = repeat("b", bufSize);
|
||||||
|
const reader = new Buffer(xBytes.buffer as ArrayBuffer);
|
||||||
|
const write = await Deno.open(filePath, { write: true, create: true });
|
||||||
|
|
||||||
// deno-lint-ignore no-deprecated-deno-api
|
// deno-lint-ignore no-deprecated-deno-api
|
||||||
const n = await Deno.copy(reader, write, { bufSize });
|
const n = await Deno.copy(reader, write, { bufSize });
|
||||||
|
|
||||||
assertEquals(n, xBytes.length);
|
assertEquals(n, xBytes.length);
|
||||||
|
|
||||||
write.close();
|
write.close();
|
||||||
await Deno.remove(filePath);
|
await Deno.remove(filePath);
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
|
@ -6,6 +6,7 @@ import {
|
||||||
assertRejects,
|
assertRejects,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
delay,
|
delay,
|
||||||
|
DENO_FUTURE,
|
||||||
execCode,
|
execCode,
|
||||||
execCode2,
|
execCode2,
|
||||||
tmpUnixSocketPath,
|
tmpUnixSocketPath,
|
||||||
|
@ -27,7 +28,9 @@ Deno.test({ permissions: { net: true } }, function netTcpListenClose() {
|
||||||
assert(listener.addr.transport === "tcp");
|
assert(listener.addr.transport === "tcp");
|
||||||
assertEquals(listener.addr.hostname, "127.0.0.1");
|
assertEquals(listener.addr.hostname, "127.0.0.1");
|
||||||
assertEquals(listener.addr.port, listenPort);
|
assertEquals(listener.addr.port, listenPort);
|
||||||
assertNotEquals(listener.rid, 0);
|
if (!DENO_FUTURE) {
|
||||||
|
assertNotEquals(listener.rid, 0);
|
||||||
|
}
|
||||||
listener.close();
|
listener.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -233,7 +236,9 @@ Deno.test({ permissions: { net: true } }, async function netTcpDialListen() {
|
||||||
assertEquals(1, buf[0]);
|
assertEquals(1, buf[0]);
|
||||||
assertEquals(2, buf[1]);
|
assertEquals(2, buf[1]);
|
||||||
assertEquals(3, buf[2]);
|
assertEquals(3, buf[2]);
|
||||||
assert(conn.rid > 0);
|
if (!DENO_FUTURE) {
|
||||||
|
assert(conn.rid > 0);
|
||||||
|
}
|
||||||
|
|
||||||
assert(readResult !== null);
|
assert(readResult !== null);
|
||||||
|
|
||||||
|
@ -269,7 +274,9 @@ Deno.test({ permissions: { net: true } }, async function netTcpSetNoDelay() {
|
||||||
assertEquals(1, buf[0]);
|
assertEquals(1, buf[0]);
|
||||||
assertEquals(2, buf[1]);
|
assertEquals(2, buf[1]);
|
||||||
assertEquals(3, buf[2]);
|
assertEquals(3, buf[2]);
|
||||||
assert(conn.rid > 0);
|
if (!DENO_FUTURE) {
|
||||||
|
assert(conn.rid > 0);
|
||||||
|
}
|
||||||
|
|
||||||
assert(readResult !== null);
|
assert(readResult !== null);
|
||||||
|
|
||||||
|
@ -305,7 +312,9 @@ Deno.test({ permissions: { net: true } }, async function netTcpSetKeepAlive() {
|
||||||
assertEquals(1, buf[0]);
|
assertEquals(1, buf[0]);
|
||||||
assertEquals(2, buf[1]);
|
assertEquals(2, buf[1]);
|
||||||
assertEquals(3, buf[2]);
|
assertEquals(3, buf[2]);
|
||||||
assert(conn.rid > 0);
|
if (!DENO_FUTURE) {
|
||||||
|
assert(conn.rid > 0);
|
||||||
|
}
|
||||||
|
|
||||||
assert(readResult !== null);
|
assert(readResult !== null);
|
||||||
|
|
||||||
|
@ -343,7 +352,9 @@ Deno.test(
|
||||||
assertEquals(1, buf[0]);
|
assertEquals(1, buf[0]);
|
||||||
assertEquals(2, buf[1]);
|
assertEquals(2, buf[1]);
|
||||||
assertEquals(3, buf[2]);
|
assertEquals(3, buf[2]);
|
||||||
assert(conn.rid > 0);
|
if (!DENO_FUTURE) {
|
||||||
|
assert(conn.rid > 0);
|
||||||
|
}
|
||||||
|
|
||||||
assert(readResult !== null);
|
assert(readResult !== null);
|
||||||
|
|
||||||
|
@ -839,7 +850,9 @@ Deno.test(
|
||||||
assertEquals(1, buf[0]);
|
assertEquals(1, buf[0]);
|
||||||
assertEquals(2, buf[1]);
|
assertEquals(2, buf[1]);
|
||||||
assertEquals(3, buf[2]);
|
assertEquals(3, buf[2]);
|
||||||
assert(conn.rid > 0);
|
if (!DENO_FUTURE) {
|
||||||
|
assert(conn.rid > 0);
|
||||||
|
}
|
||||||
|
|
||||||
assert(readResult !== null);
|
assert(readResult !== null);
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import {
|
||||||
assertStrictEquals,
|
assertStrictEquals,
|
||||||
assertStringIncludes,
|
assertStringIncludes,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
|
@ -363,7 +364,11 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { run: true, write: true, read: true } },
|
{
|
||||||
|
// Ignoring because uses `file.rid`
|
||||||
|
ignore: DENO_FUTURE,
|
||||||
|
permissions: { run: true, write: true, read: true },
|
||||||
|
},
|
||||||
async function runRedirectStdoutStderr() {
|
async function runRedirectStdoutStderr() {
|
||||||
const tempDir = await Deno.makeTempDir();
|
const tempDir = await Deno.makeTempDir();
|
||||||
const fileName = tempDir + "/redirected_stdio.txt";
|
const fileName = tempDir + "/redirected_stdio.txt";
|
||||||
|
@ -392,11 +397,16 @@ Deno.test(
|
||||||
|
|
||||||
assertStringIncludes(text, "error");
|
assertStringIncludes(text, "error");
|
||||||
assertStringIncludes(text, "output");
|
assertStringIncludes(text, "output");
|
||||||
|
console.log("finished tgis test");
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { run: true, write: true, read: true } },
|
{
|
||||||
|
// Ignoring because uses `file.rid`
|
||||||
|
ignore: DENO_FUTURE,
|
||||||
|
permissions: { run: true, write: true, read: true },
|
||||||
|
},
|
||||||
async function runRedirectStdin() {
|
async function runRedirectStdin() {
|
||||||
const tempDir = await Deno.makeTempDir();
|
const tempDir = await Deno.makeTempDir();
|
||||||
const fileName = tempDir + "/redirected_stdio.txt";
|
const fileName = tempDir + "/redirected_stdio.txt";
|
||||||
|
|
|
@ -2,7 +2,12 @@
|
||||||
|
|
||||||
// deno-lint-ignore-file no-deprecated-deno-api
|
// deno-lint-ignore-file no-deprecated-deno-api
|
||||||
|
|
||||||
import { assert, assertEquals, assertThrows } from "./test_util.ts";
|
import {
|
||||||
|
assert,
|
||||||
|
assertEquals,
|
||||||
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
|
} from "./test_util.ts";
|
||||||
|
|
||||||
const listenPort = 4505;
|
const listenPort = 4505;
|
||||||
|
|
||||||
|
@ -12,7 +17,7 @@ Deno.test(function resourcesCloseBadArgs() {
|
||||||
}, TypeError);
|
}, TypeError);
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(function resourcesStdio() {
|
Deno.test({ ignore: DENO_FUTURE }, function resourcesStdio() {
|
||||||
const res = Deno.resources();
|
const res = Deno.resources();
|
||||||
|
|
||||||
assertEquals(res[0], "stdin");
|
assertEquals(res[0], "stdin");
|
||||||
|
@ -20,39 +25,45 @@ Deno.test(function resourcesStdio() {
|
||||||
assertEquals(res[2], "stderr");
|
assertEquals(res[2], "stderr");
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test({ permissions: { net: true } }, async function resourcesNet() {
|
Deno.test(
|
||||||
const listener = Deno.listen({ port: listenPort });
|
{ ignore: DENO_FUTURE, permissions: { net: true } },
|
||||||
const dialerConn = await Deno.connect({ port: listenPort });
|
async function resourcesNet() {
|
||||||
const listenerConn = await listener.accept();
|
const listener = Deno.listen({ port: listenPort });
|
||||||
|
const dialerConn = await Deno.connect({ port: listenPort });
|
||||||
|
const listenerConn = await listener.accept();
|
||||||
|
|
||||||
const res = Deno.resources();
|
const res = Deno.resources();
|
||||||
assertEquals(
|
assertEquals(
|
||||||
Object.values(res).filter((r): boolean => r === "tcpListener").length,
|
Object.values(res).filter((r): boolean => r === "tcpListener").length,
|
||||||
1,
|
1,
|
||||||
);
|
);
|
||||||
const tcpStreams = Object.values(res).filter(
|
const tcpStreams = Object.values(res).filter(
|
||||||
(r): boolean => r === "tcpStream",
|
(r): boolean => r === "tcpStream",
|
||||||
);
|
);
|
||||||
assert(tcpStreams.length >= 2);
|
assert(tcpStreams.length >= 2);
|
||||||
|
|
||||||
listenerConn.close();
|
listenerConn.close();
|
||||||
dialerConn.close();
|
dialerConn.close();
|
||||||
listener.close();
|
listener.close();
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
||||||
Deno.test({ permissions: { read: true } }, async function resourcesFile() {
|
Deno.test(
|
||||||
const resourcesBefore = Deno.resources();
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
const f = await Deno.open("tests/testdata/assets/hello.txt");
|
async function resourcesFile() {
|
||||||
const resourcesAfter = Deno.resources();
|
const resourcesBefore = Deno.resources();
|
||||||
f.close();
|
const f = await Deno.open("tests/testdata/assets/hello.txt");
|
||||||
|
const resourcesAfter = Deno.resources();
|
||||||
|
f.close();
|
||||||
|
|
||||||
// check that exactly one new resource (file) was added
|
// check that exactly one new resource (file) was added
|
||||||
assertEquals(
|
assertEquals(
|
||||||
Object.keys(resourcesAfter).length,
|
Object.keys(resourcesAfter).length,
|
||||||
Object.keys(resourcesBefore).length + 1,
|
Object.keys(resourcesBefore).length + 1,
|
||||||
);
|
);
|
||||||
const newRid = +Object.keys(resourcesAfter).find((rid): boolean => {
|
const newRid = +Object.keys(resourcesAfter).find((rid): boolean => {
|
||||||
return !Object.prototype.hasOwnProperty.call(resourcesBefore, rid);
|
return !Object.prototype.hasOwnProperty.call(resourcesBefore, rid);
|
||||||
})!;
|
})!;
|
||||||
assertEquals(resourcesAfter[newRid], "fsFile");
|
assertEquals(resourcesAfter[newRid], "fsFile");
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
|
@ -12,6 +12,7 @@ import {
|
||||||
assertThrows,
|
assertThrows,
|
||||||
curlRequest,
|
curlRequest,
|
||||||
curlRequestWithStdErr,
|
curlRequestWithStdErr,
|
||||||
|
DENO_FUTURE,
|
||||||
execCode,
|
execCode,
|
||||||
execCode3,
|
execCode3,
|
||||||
fail,
|
fail,
|
||||||
|
@ -19,7 +20,7 @@ import {
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
|
|
||||||
// Since these tests may run in parallel, ensure this port is unique to this file
|
// Since these tests may run in parallel, ensure this port is unique to this file
|
||||||
const servePort = 4502;
|
const servePort = DENO_FUTURE ? 4511 : 4502;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
upgradeHttpRaw,
|
upgradeHttpRaw,
|
||||||
|
|
|
@ -7,34 +7,41 @@ import {
|
||||||
assertEquals,
|
assertEquals,
|
||||||
assertRejects,
|
assertRejects,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
pathToAbsoluteFileUrl,
|
pathToAbsoluteFileUrl,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
|
|
||||||
Deno.test({ permissions: { read: true } }, function fstatSyncSuccess() {
|
Deno.test(
|
||||||
using file = Deno.openSync("README.md");
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
const fileInfo = Deno.fstatSync(file.rid);
|
function fstatSyncSuccess() {
|
||||||
assert(fileInfo.isFile);
|
using file = Deno.openSync("README.md");
|
||||||
assert(!fileInfo.isSymlink);
|
const fileInfo = Deno.fstatSync(file.rid);
|
||||||
assert(!fileInfo.isDirectory);
|
assert(fileInfo.isFile);
|
||||||
assert(fileInfo.size);
|
assert(!fileInfo.isSymlink);
|
||||||
assert(fileInfo.atime);
|
assert(!fileInfo.isDirectory);
|
||||||
assert(fileInfo.mtime);
|
assert(fileInfo.size);
|
||||||
// The `birthtime` field is not available on Linux before kernel version 4.11.
|
assert(fileInfo.atime);
|
||||||
assert(fileInfo.birthtime || Deno.build.os === "linux");
|
assert(fileInfo.mtime);
|
||||||
});
|
// The `birthtime` field is not available on Linux before kernel version 4.11.
|
||||||
|
assert(fileInfo.birthtime || Deno.build.os === "linux");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
Deno.test({ permissions: { read: true } }, async function fstatSuccess() {
|
Deno.test(
|
||||||
using file = await Deno.open("README.md");
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
const fileInfo = await Deno.fstat(file.rid);
|
async function fstatSuccess() {
|
||||||
assert(fileInfo.isFile);
|
using file = await Deno.open("README.md");
|
||||||
assert(!fileInfo.isSymlink);
|
const fileInfo = await Deno.fstat(file.rid);
|
||||||
assert(!fileInfo.isDirectory);
|
assert(fileInfo.isFile);
|
||||||
assert(fileInfo.size);
|
assert(!fileInfo.isSymlink);
|
||||||
assert(fileInfo.atime);
|
assert(!fileInfo.isDirectory);
|
||||||
assert(fileInfo.mtime);
|
assert(fileInfo.size);
|
||||||
// The `birthtime` field is not available on Linux before kernel version 4.11.
|
assert(fileInfo.atime);
|
||||||
assert(fileInfo.birthtime || Deno.build.os === "linux");
|
assert(fileInfo.mtime);
|
||||||
});
|
// The `birthtime` field is not available on Linux before kernel version 4.11.
|
||||||
|
assert(fileInfo.birthtime || Deno.build.os === "linux");
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, write: true } },
|
{ permissions: { read: true, write: true } },
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||||
import { assertEquals } from "./test_util.ts";
|
import { assertEquals, DENO_FUTURE } from "./test_util.ts";
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, write: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
|
||||||
function fdatasyncSyncSuccess() {
|
function fdatasyncSyncSuccess() {
|
||||||
const filename = Deno.makeTempDirSync() + "/test_fdatasyncSync.txt";
|
const filename = Deno.makeTempDirSync() + "/test_fdatasyncSync.txt";
|
||||||
using file = Deno.openSync(filename, {
|
using file = Deno.openSync(filename, {
|
||||||
|
@ -18,7 +18,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, write: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
|
||||||
async function fdatasyncSuccess() {
|
async function fdatasyncSuccess() {
|
||||||
const filename = (await Deno.makeTempDir()) + "/test_fdatasync.txt";
|
const filename = (await Deno.makeTempDir()) + "/test_fdatasync.txt";
|
||||||
using file = await Deno.open(filename, {
|
using file = await Deno.open(filename, {
|
||||||
|
@ -35,7 +35,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, write: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
|
||||||
function fsyncSyncSuccess() {
|
function fsyncSyncSuccess() {
|
||||||
const filename = Deno.makeTempDirSync() + "/test_fsyncSync.txt";
|
const filename = Deno.makeTempDirSync() + "/test_fsyncSync.txt";
|
||||||
using file = Deno.openSync(filename, {
|
using file = Deno.openSync(filename, {
|
||||||
|
@ -52,7 +52,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, write: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
|
||||||
async function fsyncSuccess() {
|
async function fsyncSuccess() {
|
||||||
const filename = (await Deno.makeTempDir()) + "/test_fsync.txt";
|
const filename = (await Deno.makeTempDir()) + "/test_fsync.txt";
|
||||||
using file = await Deno.open(filename, {
|
using file = await Deno.open(filename, {
|
||||||
|
|
|
@ -25,6 +25,8 @@ export { delay } from "@std/async/delay";
|
||||||
export { readLines } from "@std/io/read-lines";
|
export { readLines } from "@std/io/read-lines";
|
||||||
export { parseArgs } from "@std/cli/parse-args";
|
export { parseArgs } from "@std/cli/parse-args";
|
||||||
|
|
||||||
|
export const DENO_FUTURE = Deno.env.get("DENO_FUTURE") === "1";
|
||||||
|
|
||||||
export function pathToAbsoluteFileUrl(path: string): URL {
|
export function pathToAbsoluteFileUrl(path: string): URL {
|
||||||
path = resolve(path);
|
path = resolve(path);
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import {
|
||||||
assertEquals,
|
assertEquals,
|
||||||
assertNotEquals,
|
assertNotEquals,
|
||||||
delay,
|
delay,
|
||||||
|
DENO_FUTURE,
|
||||||
execCode,
|
execCode,
|
||||||
unreachable,
|
unreachable,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
|
@ -311,11 +312,63 @@ Deno.test(async function timeoutCallbackThis() {
|
||||||
};
|
};
|
||||||
setTimeout(obj.foo, 1);
|
setTimeout(obj.foo, 1);
|
||||||
await promise;
|
await promise;
|
||||||
assertEquals(capturedThis, window);
|
if (!DENO_FUTURE) {
|
||||||
|
assertEquals(capturedThis, window);
|
||||||
|
} else {
|
||||||
|
assertEquals(capturedThis, globalThis);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function timeoutBindThis() {
|
Deno.test({ ignore: DENO_FUTURE }, async function timeoutBindThis() {
|
||||||
const thisCheckPassed = [null, undefined, window, globalThis];
|
const thisCheckPassed = [null, undefined, globalThis, window];
|
||||||
|
|
||||||
|
const thisCheckFailed = [
|
||||||
|
0,
|
||||||
|
"",
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
{},
|
||||||
|
[],
|
||||||
|
"foo",
|
||||||
|
() => {},
|
||||||
|
Object.prototype,
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const thisArg of thisCheckPassed) {
|
||||||
|
const { promise, resolve } = Promise.withResolvers<void>();
|
||||||
|
let hasThrown = 0;
|
||||||
|
try {
|
||||||
|
setTimeout.call(thisArg, () => resolve(), 1);
|
||||||
|
hasThrown = 1;
|
||||||
|
} catch (err) {
|
||||||
|
if (err instanceof TypeError) {
|
||||||
|
hasThrown = 2;
|
||||||
|
} else {
|
||||||
|
hasThrown = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await promise;
|
||||||
|
assertEquals(hasThrown, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const thisArg of thisCheckFailed) {
|
||||||
|
let hasThrown = 0;
|
||||||
|
try {
|
||||||
|
setTimeout.call(thisArg, () => {}, 1);
|
||||||
|
hasThrown = 1;
|
||||||
|
} catch (err) {
|
||||||
|
if (err instanceof TypeError) {
|
||||||
|
hasThrown = 2;
|
||||||
|
} else {
|
||||||
|
hasThrown = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assertEquals(hasThrown, 2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test({ ignore: !DENO_FUTURE }, async function timeoutBindThis() {
|
||||||
|
const thisCheckPassed = [null, undefined, globalThis];
|
||||||
|
|
||||||
const thisCheckFailed = [
|
const thisCheckFailed = [
|
||||||
0,
|
0,
|
||||||
|
|
|
@ -6,6 +6,7 @@ import {
|
||||||
assertRejects,
|
assertRejects,
|
||||||
assertStrictEquals,
|
assertStrictEquals,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
import { BufReader, BufWriter } from "@std/io";
|
import { BufReader, BufWriter } from "@std/io";
|
||||||
import { readAll } from "@std/io/read-all";
|
import { readAll } from "@std/io/read-all";
|
||||||
|
@ -67,7 +68,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { net: true, read: false } },
|
{ permissions: { net: true, read: false }, ignore: DENO_FUTURE },
|
||||||
async function connectTLSCertFileNoReadPerm() {
|
async function connectTLSCertFileNoReadPerm() {
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await Deno.connectTls({
|
await Deno.connectTls({
|
||||||
|
@ -80,7 +81,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
function listenTLSNonExistentCertKeyFiles() {
|
function listenTLSNonExistentCertKeyFiles() {
|
||||||
const options = {
|
const options = {
|
||||||
hostname: "localhost",
|
hostname: "localhost",
|
||||||
|
@ -106,7 +107,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { net: true, read: false } },
|
{ permissions: { net: true, read: false }, ignore: DENO_FUTURE },
|
||||||
function listenTLSNoReadPerm() {
|
function listenTLSNoReadPerm() {
|
||||||
assertThrows(() => {
|
assertThrows(() => {
|
||||||
Deno.listenTls({
|
Deno.listenTls({
|
||||||
|
@ -122,6 +123,7 @@ Deno.test(
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{
|
{
|
||||||
permissions: { read: true, write: true, net: true },
|
permissions: { read: true, write: true, net: true },
|
||||||
|
ignore: DENO_FUTURE,
|
||||||
},
|
},
|
||||||
function listenTLSEmptyKeyFile() {
|
function listenTLSEmptyKeyFile() {
|
||||||
const options = {
|
const options = {
|
||||||
|
@ -219,7 +221,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
const conn = await Deno.connectTls({ hostname, port, caCerts });
|
const conn = await Deno.connectTls({ hostname, port, caCerts });
|
||||||
assert(conn.rid > 0);
|
assert(DENO_FUTURE || conn.rid > 0);
|
||||||
const w = new BufWriter(conn);
|
const w = new BufWriter(conn);
|
||||||
const r = new BufReader(conn);
|
const r = new BufReader(conn);
|
||||||
const body = `GET / HTTP/1.1\r\nHost: ${hostname}:${port}\r\n\r\n`;
|
const body = `GET / HTTP/1.1\r\nHost: ${hostname}:${port}\r\n\r\n`;
|
||||||
|
@ -271,7 +273,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
const conn = await Deno.connectTls({ hostname, port, caCerts });
|
const conn = await Deno.connectTls({ hostname, port, caCerts });
|
||||||
assert(conn.rid > 0);
|
assert(DENO_FUTURE || conn.rid > 0);
|
||||||
const w = new BufWriter(conn);
|
const w = new BufWriter(conn);
|
||||||
const r = new BufReader(conn);
|
const r = new BufReader(conn);
|
||||||
const body = `GET / HTTP/1.1\r\nHost: ${hostname}:${port}\r\n\r\n`;
|
const body = `GET / HTTP/1.1\r\nHost: ${hostname}:${port}\r\n\r\n`;
|
||||||
|
@ -1146,7 +1148,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectTLSBadClientCertPrivateKey(): Promise<void> {
|
async function connectTLSBadClientCertPrivateKey(): Promise<void> {
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await Deno.connectTls({
|
await Deno.connectTls({
|
||||||
|
@ -1162,7 +1164,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectTLSBadCertKey(): Promise<void> {
|
async function connectTLSBadCertKey(): Promise<void> {
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await Deno.connectTls({
|
await Deno.connectTls({
|
||||||
|
@ -1178,7 +1180,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectTLSBadPrivateKey(): Promise<void> {
|
async function connectTLSBadPrivateKey(): Promise<void> {
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await Deno.connectTls({
|
await Deno.connectTls({
|
||||||
|
@ -1210,7 +1212,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectTLSNotPrivateKey(): Promise<void> {
|
async function connectTLSNotPrivateKey(): Promise<void> {
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await Deno.connectTls({
|
await Deno.connectTls({
|
||||||
|
@ -1226,7 +1228,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectTLSNotKey(): Promise<void> {
|
async function connectTLSNotKey(): Promise<void> {
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await Deno.connectTls({
|
await Deno.connectTls({
|
||||||
|
@ -1242,7 +1244,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectWithClientCert() {
|
async function connectWithClientCert() {
|
||||||
// The test_server running on port 4552 responds with 'PASS' if client
|
// The test_server running on port 4552 responds with 'PASS' if client
|
||||||
// authentication was successful. Try it by running test_server and
|
// authentication was successful. Try it by running test_server and
|
||||||
|
@ -1292,7 +1294,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectTlsConflictingCertOptions(): Promise<void> {
|
async function connectTlsConflictingCertOptions(): Promise<void> {
|
||||||
await assertRejects(
|
await assertRejects(
|
||||||
async () => {
|
async () => {
|
||||||
|
@ -1317,7 +1319,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, net: true } },
|
{ permissions: { read: true, net: true }, ignore: DENO_FUTURE },
|
||||||
async function connectTlsConflictingKeyOptions(): Promise<void> {
|
async function connectTlsConflictingKeyOptions(): Promise<void> {
|
||||||
await assertRejects(
|
await assertRejects(
|
||||||
async () => {
|
async () => {
|
||||||
|
@ -1635,7 +1637,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { net: true, read: true } },
|
{ ignore: DENO_FUTURE, permissions: { net: true, read: true } },
|
||||||
function listenTLSEcKey() {
|
function listenTLSEcKey() {
|
||||||
const listener = Deno.listenTls({
|
const listener = Deno.listenTls({
|
||||||
hostname: "localhost",
|
hostname: "localhost",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
// deno-lint-ignore-file no-deprecated-deno-api
|
// deno-lint-ignore-file no-deprecated-deno-api
|
||||||
|
|
||||||
import { assert } from "./test_util.ts";
|
import { assert, DENO_FUTURE } from "./test_util.ts";
|
||||||
|
|
||||||
// Note tests for Deno.stdin.setRaw is in integration tests.
|
// Note tests for Deno.stdin.setRaw is in integration tests.
|
||||||
|
|
||||||
|
@ -15,12 +15,15 @@ Deno.test(function consoleSize() {
|
||||||
assert(typeof result.rows !== "undefined");
|
assert(typeof result.rows !== "undefined");
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test({ permissions: { read: true } }, function isatty() {
|
Deno.test(
|
||||||
// CI not under TTY, so cannot test stdin/stdout/stderr.
|
{ ignore: DENO_FUTURE, permissions: { read: true } },
|
||||||
const f = Deno.openSync("tests/testdata/assets/hello.txt");
|
function isatty() {
|
||||||
assert(!Deno.isatty(f.rid));
|
// CI not under TTY, so cannot test stdin/stdout/stderr.
|
||||||
f.close();
|
const f = Deno.openSync("tests/testdata/assets/hello.txt");
|
||||||
});
|
assert(!Deno.isatty(f.rid));
|
||||||
|
f.close();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
Deno.test(function isattyError() {
|
Deno.test(function isattyError() {
|
||||||
let caught = false;
|
let caught = false;
|
||||||
|
|
|
@ -6,11 +6,12 @@ import {
|
||||||
assertEquals,
|
assertEquals,
|
||||||
assertRejects,
|
assertRejects,
|
||||||
assertThrows,
|
assertThrows,
|
||||||
|
DENO_FUTURE,
|
||||||
pathToAbsoluteFileUrl,
|
pathToAbsoluteFileUrl,
|
||||||
} from "./test_util.ts";
|
} from "./test_util.ts";
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, write: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
|
||||||
async function futimeSyncSuccess() {
|
async function futimeSyncSuccess() {
|
||||||
const testDir = await Deno.makeTempDir();
|
const testDir = await Deno.makeTempDir();
|
||||||
const filename = testDir + "/file.txt";
|
const filename = testDir + "/file.txt";
|
||||||
|
@ -52,7 +53,7 @@ Deno.test(
|
||||||
);
|
);
|
||||||
|
|
||||||
Deno.test(
|
Deno.test(
|
||||||
{ permissions: { read: true, write: true } },
|
{ ignore: DENO_FUTURE, permissions: { read: true, write: true } },
|
||||||
function futimeSyncSuccess() {
|
function futimeSyncSuccess() {
|
||||||
const testDir = Deno.makeTempDirSync();
|
const testDir = Deno.makeTempDirSync();
|
||||||
const filename = testDir + "/file.txt";
|
const filename = testDir + "/file.txt";
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
|
|
||||||
// https://github.com/denoland/deno/issues/11664
|
// https://github.com/denoland/deno/issues/11664
|
||||||
Deno.test(async function testImportArrayBufferKey() {
|
Deno.test(async function testImportArrayBufferKey() {
|
||||||
const subtle = window.crypto.subtle;
|
const subtle = globalThis.crypto.subtle;
|
||||||
assert(subtle);
|
assert(subtle);
|
||||||
|
|
||||||
// deno-fmt-ignore
|
// deno-fmt-ignore
|
||||||
|
@ -29,7 +29,7 @@ Deno.test(async function testImportArrayBufferKey() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function testSignVerify() {
|
Deno.test(async function testSignVerify() {
|
||||||
const subtle = window.crypto.subtle;
|
const subtle = globalThis.crypto.subtle;
|
||||||
assert(subtle);
|
assert(subtle);
|
||||||
for (const algorithm of ["RSA-PSS", "RSASSA-PKCS1-v1_5"]) {
|
for (const algorithm of ["RSA-PSS", "RSASSA-PKCS1-v1_5"]) {
|
||||||
for (
|
for (
|
||||||
|
@ -101,7 +101,7 @@ const hashPlainTextVector = [
|
||||||
];
|
];
|
||||||
|
|
||||||
Deno.test(async function testEncryptDecrypt() {
|
Deno.test(async function testEncryptDecrypt() {
|
||||||
const subtle = window.crypto.subtle;
|
const subtle = globalThis.crypto.subtle;
|
||||||
assert(subtle);
|
assert(subtle);
|
||||||
for (
|
for (
|
||||||
const { hash, plainText } of hashPlainTextVector
|
const { hash, plainText } of hashPlainTextVector
|
||||||
|
@ -154,7 +154,7 @@ Deno.test(async function testEncryptDecrypt() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function testGenerateRSAKey() {
|
Deno.test(async function testGenerateRSAKey() {
|
||||||
const subtle = window.crypto.subtle;
|
const subtle = globalThis.crypto.subtle;
|
||||||
assert(subtle);
|
assert(subtle);
|
||||||
|
|
||||||
const keyPair = await subtle.generateKey(
|
const keyPair = await subtle.generateKey(
|
||||||
|
@ -175,7 +175,7 @@ Deno.test(async function testGenerateRSAKey() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function testGenerateHMACKey() {
|
Deno.test(async function testGenerateHMACKey() {
|
||||||
const key = await window.crypto.subtle.generateKey(
|
const key = await globalThis.crypto.subtle.generateKey(
|
||||||
{
|
{
|
||||||
name: "HMAC",
|
name: "HMAC",
|
||||||
hash: "SHA-512",
|
hash: "SHA-512",
|
||||||
|
@ -190,7 +190,7 @@ Deno.test(async function testGenerateHMACKey() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test(async function testECDSASignVerify() {
|
Deno.test(async function testECDSASignVerify() {
|
||||||
const key = await window.crypto.subtle.generateKey(
|
const key = await globalThis.crypto.subtle.generateKey(
|
||||||
{
|
{
|
||||||
name: "ECDSA",
|
name: "ECDSA",
|
||||||
namedCurve: "P-384",
|
namedCurve: "P-384",
|
||||||
|
@ -201,7 +201,7 @@ Deno.test(async function testECDSASignVerify() {
|
||||||
|
|
||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
const encoded = encoder.encode("Hello, World!");
|
const encoded = encoder.encode("Hello, World!");
|
||||||
const signature = await window.crypto.subtle.sign(
|
const signature = await globalThis.crypto.subtle.sign(
|
||||||
{ name: "ECDSA", hash: "SHA-384" },
|
{ name: "ECDSA", hash: "SHA-384" },
|
||||||
key.privateKey,
|
key.privateKey,
|
||||||
encoded,
|
encoded,
|
||||||
|
@ -210,7 +210,7 @@ Deno.test(async function testECDSASignVerify() {
|
||||||
assert(signature);
|
assert(signature);
|
||||||
assert(signature instanceof ArrayBuffer);
|
assert(signature instanceof ArrayBuffer);
|
||||||
|
|
||||||
const verified = await window.crypto.subtle.verify(
|
const verified = await globalThis.crypto.subtle.verify(
|
||||||
{ hash: { name: "SHA-384" }, name: "ECDSA" },
|
{ hash: { name: "SHA-384" }, name: "ECDSA" },
|
||||||
key.publicKey,
|
key.publicKey,
|
||||||
signature,
|
signature,
|
||||||
|
@ -221,7 +221,7 @@ Deno.test(async function testECDSASignVerify() {
|
||||||
|
|
||||||
// Tests the "bad paths" as a temporary replacement for sign_verify/ecdsa WPT.
|
// Tests the "bad paths" as a temporary replacement for sign_verify/ecdsa WPT.
|
||||||
Deno.test(async function testECDSASignVerifyFail() {
|
Deno.test(async function testECDSASignVerifyFail() {
|
||||||
const key = await window.crypto.subtle.generateKey(
|
const key = await globalThis.crypto.subtle.generateKey(
|
||||||
{
|
{
|
||||||
name: "ECDSA",
|
name: "ECDSA",
|
||||||
namedCurve: "P-384",
|
namedCurve: "P-384",
|
||||||
|
@ -233,7 +233,7 @@ Deno.test(async function testECDSASignVerifyFail() {
|
||||||
const encoded = new Uint8Array([1]);
|
const encoded = new Uint8Array([1]);
|
||||||
// Signing with a public key (InvalidAccessError)
|
// Signing with a public key (InvalidAccessError)
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await window.crypto.subtle.sign(
|
await globalThis.crypto.subtle.sign(
|
||||||
{ name: "ECDSA", hash: "SHA-384" },
|
{ name: "ECDSA", hash: "SHA-384" },
|
||||||
key.publicKey,
|
key.publicKey,
|
||||||
new Uint8Array([1]),
|
new Uint8Array([1]),
|
||||||
|
@ -242,7 +242,7 @@ Deno.test(async function testECDSASignVerifyFail() {
|
||||||
}, DOMException);
|
}, DOMException);
|
||||||
|
|
||||||
// Do a valid sign for later verifying.
|
// Do a valid sign for later verifying.
|
||||||
const signature = await window.crypto.subtle.sign(
|
const signature = await globalThis.crypto.subtle.sign(
|
||||||
{ name: "ECDSA", hash: "SHA-384" },
|
{ name: "ECDSA", hash: "SHA-384" },
|
||||||
key.privateKey,
|
key.privateKey,
|
||||||
encoded,
|
encoded,
|
||||||
|
@ -250,7 +250,7 @@ Deno.test(async function testECDSASignVerifyFail() {
|
||||||
|
|
||||||
// Verifying with a private key (InvalidAccessError)
|
// Verifying with a private key (InvalidAccessError)
|
||||||
await assertRejects(async () => {
|
await assertRejects(async () => {
|
||||||
await window.crypto.subtle.verify(
|
await globalThis.crypto.subtle.verify(
|
||||||
{ hash: { name: "SHA-384" }, name: "ECDSA" },
|
{ hash: { name: "SHA-384" }, name: "ECDSA" },
|
||||||
key.privateKey,
|
key.privateKey,
|
||||||
signature,
|
signature,
|
||||||
|
@ -262,7 +262,7 @@ Deno.test(async function testECDSASignVerifyFail() {
|
||||||
|
|
||||||
// https://github.com/denoland/deno/issues/11313
|
// https://github.com/denoland/deno/issues/11313
|
||||||
Deno.test(async function testSignRSASSAKey() {
|
Deno.test(async function testSignRSASSAKey() {
|
||||||
const subtle = window.crypto.subtle;
|
const subtle = globalThis.crypto.subtle;
|
||||||
assert(subtle);
|
assert(subtle);
|
||||||
|
|
||||||
const keyPair = await subtle.generateKey(
|
const keyPair = await subtle.generateKey(
|
||||||
|
@ -284,7 +284,7 @@ Deno.test(async function testSignRSASSAKey() {
|
||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
const encoded = encoder.encode("Hello, World!");
|
const encoded = encoder.encode("Hello, World!");
|
||||||
|
|
||||||
const signature = await window.crypto.subtle.sign(
|
const signature = await globalThis.crypto.subtle.sign(
|
||||||
{ name: "RSASSA-PKCS1-v1_5" },
|
{ name: "RSASSA-PKCS1-v1_5" },
|
||||||
keyPair.privateKey,
|
keyPair.privateKey,
|
||||||
encoded,
|
encoded,
|
||||||
|
@ -1056,7 +1056,7 @@ const jwtRSAKeys = {
|
||||||
};
|
};
|
||||||
|
|
||||||
Deno.test(async function testImportRsaJwk() {
|
Deno.test(async function testImportRsaJwk() {
|
||||||
const subtle = window.crypto.subtle;
|
const subtle = globalThis.crypto.subtle;
|
||||||
assert(subtle);
|
assert(subtle);
|
||||||
|
|
||||||
for (const [_key, jwkData] of Object.entries(jwtRSAKeys)) {
|
for (const [_key, jwkData] of Object.entries(jwtRSAKeys)) {
|
||||||
|
@ -1496,7 +1496,7 @@ const ecTestKeys = [
|
||||||
];
|
];
|
||||||
|
|
||||||
Deno.test(async function testImportEcSpkiPkcs8() {
|
Deno.test(async function testImportEcSpkiPkcs8() {
|
||||||
const subtle = window.crypto.subtle;
|
const subtle = globalThis.crypto.subtle;
|
||||||
assert(subtle);
|
assert(subtle);
|
||||||
|
|
||||||
for (
|
for (
|
||||||
|
|
Loading…
Reference in a new issue