From 1811318097b57c136913bd95bb9e16d820cc1a1a Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Thu, 14 Mar 2019 19:17:52 -0400 Subject: core: Behavior shouldn't be generic We always pass around Box<[u8]>, and adding this generic is an unnecessary complication. Add deno_core_http_bench_test to test.py sharedQueue works on deno_core_http_bench --- core/test_util.rs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 core/test_util.rs (limited to 'core/test_util.rs') diff --git a/core/test_util.rs b/core/test_util.rs new file mode 100644 index 000000000..80025c2be --- /dev/null +++ b/core/test_util.rs @@ -0,0 +1,51 @@ +use crate::isolate::Behavior; +use crate::isolate::Op; +use crate::libdeno::deno_buf; +use crate::libdeno::deno_mod; +use std::collections::HashMap; + +pub struct TestBehavior { + pub dispatch_count: usize, + pub resolve_count: usize, + pub mod_map: HashMap, +} + +impl TestBehavior { + pub fn new() -> Self { + Self { + dispatch_count: 0, + resolve_count: 0, + mod_map: HashMap::new(), + } + } + + pub fn register(&mut self, name: &str, id: deno_mod) { + self.mod_map.insert(name.to_string(), id); + } +} + +impl Behavior for TestBehavior { + fn startup_snapshot(&mut self) -> Option { + None + } + + fn dispatch( + &mut self, + control: &[u8], + _zero_copy_buf: deno_buf, + ) -> (bool, Box) { + assert_eq!(control.len(), 1); + assert_eq!(control[0], 42); + self.dispatch_count += 1; + let buf = vec![43u8].into_boxed_slice(); + (false, Box::new(futures::future::ok(buf))) + } + + fn resolve(&mut self, specifier: &str, _referrer: deno_mod) -> deno_mod { + self.resolve_count += 1; + match self.mod_map.get(specifier) { + Some(id) => *id, + None => 0, + } + } +} -- cgit v1.2.3