Skip to content

Commit

Permalink
feat(plugin): add tests for plugin args (#10529)
Browse files Browse the repository at this point in the history
  • Loading branch information
cvng authored May 8, 2021
1 parent d5f39fd commit a051a7f
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 6 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions test_plugin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ crate-type = ["cdylib"]
[dependencies]
deno_core = { path = "../core" }
futures = "0.3.9"
serde = "1"

[dev-dependencies]
test_util = { path = "../test_util" }
14 changes: 12 additions & 2 deletions test_plugin/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ use deno_core::OpState;
use deno_core::Resource;
use deno_core::ResourceId;
use deno_core::ZeroCopyBuf;
use serde::Deserialize;

#[no_mangle]
pub fn init() -> Extension {
Expand All @@ -32,13 +33,20 @@ pub fn init() -> Extension {
.build()
}

#[derive(Debug, Deserialize)]
struct TestArgs {
val: String,
}

fn op_test_sync(
_state: &mut OpState,
_args: (),
args: TestArgs,
zero_copy: Option<ZeroCopyBuf>,
) -> Result<String, AnyError> {
println!("Hello from sync plugin op.");

println!("args: {:?}", args);

if let Some(buf) = zero_copy {
let buf_str = std::str::from_utf8(&buf[..])?;
println!("zero_copy: {}", buf_str);
Expand All @@ -49,11 +57,13 @@ fn op_test_sync(

async fn op_test_async(
_state: Rc<RefCell<OpState>>,
_args: (),
args: TestArgs,
zero_copy: Option<ZeroCopyBuf>,
) -> Result<String, AnyError> {
println!("Hello from async plugin op.");

println!("args: {:?}", args);

if let Some(buf) = zero_copy {
let buf_str = std::str::from_utf8(&buf[..])?;
println!("zero_copy: {}", buf_str);
Expand Down
19 changes: 18 additions & 1 deletion test_plugin/tests/integration_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,24 @@ fn basic() {
}
println!("{:?}", output.status);
assert!(output.status.success());
let expected = "Plugin rid: 3\nHello from sync plugin op.\nzero_copy: test\nop_test_sync returned: test\nHello from async plugin op.\nzero_copy: 123\nop_test_async returned: test\nHello from resource_table.add plugin op.\nTestResource rid: 4\nHello from resource_table.get plugin op.\nTestResource get value: hello plugin!\nHello from sync plugin op.\nOps completed count is correct!\nOps dispatched count is correct!\n";
let expected = "\
Plugin rid: 3\n\
Hello from sync plugin op.\n\
args: TestArgs { val: \"1\" }\n\
zero_copy: test\n\
op_test_sync returned: test\n\
Hello from async plugin op.\n\
args: TestArgs { val: \"1\" }\n\
zero_copy: 123\n\
op_test_async returned: test\n\
Hello from resource_table.add plugin op.\n\
TestResource rid: 4\n\
Hello from resource_table.get plugin op.\n\
TestResource get value: hello plugin!\n\
Hello from sync plugin op.\n\
args: TestArgs { val: \"1\" }\n\
Ops completed count is correct!\n\
Ops dispatched count is correct!\n";
assert_eq!(stdout, expected);
assert_eq!(stderr, "");
}
6 changes: 3 additions & 3 deletions test_plugin/tests/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ if (
function runTestSync() {
const result = Deno.core.opSync(
"op_test_sync",
null,
{ val: "1" },
new Uint8Array([116, 101, 115, 116]),
);

Expand All @@ -56,7 +56,7 @@ function runTestSync() {
async function runTestAsync() {
const promise = Deno.core.opAsync(
"op_test_async",
null,
{ val: "1" },
new Uint8Array([49, 50, 51]),
);

Expand Down Expand Up @@ -95,7 +95,7 @@ function runTestResourceTable() {
function runTestOpCount() {
const start = Deno.metrics();

Deno.core.opSync("op_test_sync");
Deno.core.opSync("op_test_sync", { val: "1" });

const end = Deno.metrics();

Expand Down

0 comments on commit a051a7f

Please sign in to comment.