mirror of
https://github.com/denoland/deno.git
synced 2024-12-29 10:39:10 -05:00
fec1b2a5a4
- Improves op performance. - Handle op-metadata (errors, promise IDs) explicitly in the op-layer vs per op-encoding (aka: out-of-payload). - Remove shared queue & custom "asyncHandlers", all async values are returned in batches via js_recv_cb. - The op-layer should be thought of as simple function calls with little indirection or translation besides the conceptually straightforward serde_v8 bijections. - Preserve concepts of json/bin/min as semantic groups of their inputs/outputs instead of their op-encoding strategy, preserving these groups will also facilitate partial transitions over to v8 Fast API for the "min" and "bin" groups
45 lines
1.5 KiB
Rust
45 lines
1.5 KiB
Rust
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
|
|
|
|
use std::process::Command;
|
|
use test_util::deno_cmd;
|
|
|
|
#[cfg(debug_assertions)]
|
|
const BUILD_VARIANT: &str = "debug";
|
|
|
|
#[cfg(not(debug_assertions))]
|
|
const BUILD_VARIANT: &str = "release";
|
|
|
|
#[test]
|
|
// TODO: re-enable after adapting plugins to new op-layer
|
|
// see:
|
|
// - https://github.com/denoland/deno/pull/9843
|
|
// - https://github.com/denoland/deno/pull/9850
|
|
#[ignore]
|
|
fn basic() {
|
|
let mut build_plugin_base = Command::new("cargo");
|
|
let mut build_plugin =
|
|
build_plugin_base.arg("build").arg("-p").arg("test_plugin");
|
|
if BUILD_VARIANT == "release" {
|
|
build_plugin = build_plugin.arg("--release");
|
|
}
|
|
let build_plugin_output = build_plugin.output().unwrap();
|
|
assert!(build_plugin_output.status.success());
|
|
let output = deno_cmd()
|
|
.arg("run")
|
|
.arg("--allow-plugin")
|
|
.arg("--unstable")
|
|
.arg("tests/test.js")
|
|
.arg(BUILD_VARIANT)
|
|
.output()
|
|
.unwrap();
|
|
let stdout = std::str::from_utf8(&output.stdout).unwrap();
|
|
let stderr = std::str::from_utf8(&output.stderr).unwrap();
|
|
if !output.status.success() {
|
|
println!("stdout {}", stdout);
|
|
println!("stderr {}", stderr);
|
|
}
|
|
assert!(output.status.success());
|
|
let expected = "Hello from plugin.\nzero_copy[0]: test\nzero_copy[1]: 123\nzero_copy[2]: cba\nPlugin Sync Response: test\nHello from plugin.\nzero_copy[0]: test\nzero_copy[1]: 123\nzero_copy[2]: cba\nPlugin Async Response: test\n";
|
|
assert_eq!(stdout, expected);
|
|
assert_eq!(stderr, "");
|
|
}
|