1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00

chore: move test_ffi and test_nap to tests/ [WIP] (#22394)

Moving some additional NAPI and. FFI tests out of the tree root.
This commit is contained in:
Matt Mastracci 2024-02-12 13:46:50 -07:00 committed by GitHub
parent bd1358efab
commit f60720090c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
71 changed files with 66 additions and 24 deletions

View file

@ -45,7 +45,7 @@
"cli/tsc/*typescript.js",
"gh-pages",
"target",
"test_ffi/tests/test.js",
"tests/ffi/tests/test.js",
"test_util/std",
"test_util/wpt",
"third_party",

6
.gitignore vendored
View file

@ -12,9 +12,9 @@ gclient_config.py_entries
/std/hash/_wasm/target
/tools/wpt/manifest.json
/third_party/
/test_napi/node_modules
/test_napi/build
/test_napi/third_party_tests/node_modules
/tests/napi/node_modules
/tests/napi/build
/tests/napi/third_party_tests/node_modules
# MacOS generated files
.DS_Store

View file

@ -28,10 +28,10 @@ members = [
"ext/websocket",
"ext/webstorage",
"runtime",
"test_ffi",
"test_napi",
"test_util",
"tests",
"tests/ffi",
"tests/napi",
]
exclude = ["test_util/std/hash/_wasm"]

View file

@ -1,6 +1,6 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import { loadTestLibrary } from "../../../test_napi/common.js";
import { loadTestLibrary } from "../../../tests/napi/common.js";
const lib = loadTestLibrary();

View file

@ -2,7 +2,7 @@ import { bench, run } from "mitata";
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const lib = require("../../../test_napi.node");
const lib = require("../../../tests/napi.node");
bench("warmup", () => {});
bench("napi_get_undefined", () => lib.test_get_undefined(0));

View file

@ -50,11 +50,11 @@ Update the generated symbol lists using the script:
deno run --allow-write tools/napi/generate_symbols_lists.js
```
Add a test in [`/test_napi`](../../test_napi/). You can also refer to Node.js
Add a test in [`/tests/napi`](../../tests/napi/). You can also refer to Node.js
test suite for Node-API.
```js
// test_napi/boolean_test.js
// tests/napi/boolean_test.js
import { assertEquals, loadTestLibrary } from "./common.js";
const lib = loadTestLibrary();
Deno.test("napi get boolean", function () {
@ -64,7 +64,7 @@ Deno.test("napi get boolean", function () {
```
```rust
// test_napi/src/boolean.rs
// tests/napi/src/boolean.rs
use napi_sys::Status::napi_ok;
use napi_sys::ValueType::napi_boolean;
@ -96,7 +96,7 @@ pub fn init(env: napi_env, exports: napi_value) {
```
```diff
// test_napi/src/lib.rs
// tests/napi/src/lib.rs
+ mod boolean;
@ -114,4 +114,4 @@ unsafe extern "C" fn napi_register_module_v1(
}
```
Run the test using `cargo test -p test_napi`.
Run the test using `cargo test -p tests/napi`.

View file

@ -21,5 +21,5 @@ MacOS.
To run benchmarks:
```bash
target/release/deno bench --allow-ffi --allow-read --unstable-ffi ./test_ffi/tests/bench.js
target/release/deno bench --allow-ffi --allow-read --unstable-ffi ./tests/ffi/tests/bench.js
```

View file

@ -87,8 +87,16 @@ pub fn third_party_path() -> PathRef {
root_path().join("third_party")
}
pub fn ffi_tests_path() -> PathRef {
root_path().join("tests").join("ffi")
}
pub fn napi_tests_path() -> PathRef {
root_path().join("test_napi")
root_path().join("tests").join("napi")
}
pub fn deno_config_path() -> PathRef {
root_path().join("tests").join("config").join("deno.json")
}
/// Test server registry url.

View file

@ -1,5 +1,6 @@
{
"imports": {
"@test_util/": "../../test_util/"
"@test_util/": "../../test_util/",
"@std/": "../../test_util/std/"
}
}

View file

@ -3,6 +3,8 @@
use pretty_assertions::assert_eq;
use std::process::Command;
use test_util::deno_cmd;
use test_util::deno_config_path;
use test_util::ffi_tests_path;
#[cfg(debug_assertions)]
const BUILD_VARIANT: &str = "debug";
@ -26,7 +28,11 @@ fn basic() {
build();
let output = deno_cmd()
.current_dir(ffi_tests_path())
.arg("run")
.arg("--config")
.arg(deno_config_path())
.arg("--no-lock")
.arg("--allow-ffi")
.arg("--allow-read")
.arg("--unstable-ffi")
@ -134,7 +140,11 @@ fn symbol_types() {
build();
let output = deno_cmd()
.current_dir(ffi_tests_path())
.arg("check")
.arg("--config")
.arg(deno_config_path())
.arg("--no-lock")
.arg("--unstable-ffi")
.arg("--quiet")
.arg("tests/ffi_types.ts")
@ -157,7 +167,11 @@ fn thread_safe_callback() {
build();
let output = deno_cmd()
.current_dir(ffi_tests_path())
.arg("run")
.arg("--config")
.arg(deno_config_path())
.arg("--no-lock")
.arg("--allow-ffi")
.arg("--allow-read")
.arg("--unstable-ffi")
@ -191,7 +205,11 @@ fn event_loop_integration() {
build();
let output = deno_cmd()
.current_dir(ffi_tests_path())
.arg("run")
.arg("--config")
.arg(deno_config_path())
.arg("--no-lock")
.arg("--allow-ffi")
.arg("--allow-read")
.arg("--unstable-ffi")
@ -243,7 +261,11 @@ fn ffi_callback_errors_test() {
build();
let output = deno_cmd()
.current_dir(ffi_tests_path())
.arg("run")
.arg("--config")
.arg(deno_config_path())
.arg("--no-lock")
.arg("--allow-ffi")
.arg("--allow-read")
.arg("--unstable-ffi")

View file

@ -10,7 +10,7 @@ import {
assertInstanceOf,
assertEquals,
assertFalse,
} from "../../test_util/std/assert/mod.ts";
} from "@std/assert/mod.ts";
const targetDir = Deno.execPath().replace(/[^\/\\]+$/, "");
const [libPrefix, libSuffix] = {

View file

@ -120,7 +120,7 @@ fn js_unit_test(test: String) {
.current_dir(util::root_path())
.arg("test")
.arg("--config")
.arg("tests/config/deno.json")
.arg(util::deno_config_path())
.arg("--no-lock")
.arg("--unstable")
.arg("--location=http://127.0.0.1:4545/")

View file

@ -1,6 +1,7 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
use test_util as util;
use util::deno_config_path;
use util::env_vars_for_npm_tests;
#[test]
@ -9,7 +10,7 @@ fn node_compat_tests() {
.current_dir(util::root_path())
.arg("test")
.arg("--config")
.arg("tests/config/deno.json")
.arg(deno_config_path())
.arg("--no-lock")
.arg("--unstable")
.arg("-A")

View file

@ -4,6 +4,7 @@ use std::io::BufReader;
use std::time::Duration;
use std::time::Instant;
use test_util as util;
use util::deno_config_path;
use util::env_vars_for_npm_tests;
util::unit_test_factory!(
@ -97,7 +98,7 @@ fn node_unit_test(test: String) {
.current_dir(util::root_path())
.arg("test")
.arg("--config")
.arg("tests/config/deno.json")
.arg(deno_config_path())
.arg("--no-lock")
.arg("--unstable")
// TODO(kt3k): This option is required to pass tls_test.ts,

View file

@ -12,6 +12,9 @@ if (import.meta.main) {
const { stdout, stderr, code } = await new Deno.Command(Deno.execPath(), {
args: [
"run",
"--config",
Deno.realPathSync("../config/deno.json"),
"--no-lock",
"--allow-read",
"--allow-run",
"--allow-ffi",
@ -20,8 +23,8 @@ if (import.meta.main) {
],
}).output();
assertEquals(code, 0);
assertEquals(new TextDecoder().decode(stderr), "");
assertEquals(code, 0);
const stdoutText = new TextDecoder().decode(stdout);
const stdoutLines = stdoutText.split("\n");

View file

@ -5,8 +5,8 @@ export {
assertEquals,
assertRejects,
assertThrows,
} from "../test_util/std/assert/mod.ts";
export { fromFileUrl } from "../test_util/std/path/mod.ts";
} from "@std/assert/mod.ts";
export { fromFileUrl } from "@std/path/mod.ts";
import process from "node:process";
const targetDir = Deno.execPath().replace(/[^\/\\]+$/, "");

View file

@ -2,8 +2,10 @@
use std::process::Command;
use test_util::deno_cmd;
use test_util::deno_config_path;
use test_util::env_vars_for_npm_tests;
use test_util::http_server;
use test_util::napi_tests_path;
#[cfg(debug_assertions)]
const BUILD_VARIANT: &str = "debug";
@ -57,13 +59,17 @@ fn napi_tests() {
let _http_guard = http_server();
let output = deno_cmd()
.current_dir(test_util::napi_tests_path())
.current_dir(napi_tests_path())
.env("RUST_BACKTRACE", "1")
.arg("test")
.arg("--allow-read")
.arg("--allow-env")
.arg("--allow-ffi")
.arg("--allow-run")
.arg("--config")
.arg(deno_config_path())
.arg("--no-lock")
.arg(".")
.envs(env_vars_for_npm_tests())
.spawn()
.unwrap()