mirror of
https://github.com/fluencelabs/aquavm
synced 2025-03-15 04:30:48 +00:00
chore(testing-framework): a new behavior to print service call parameters/result out to console (#723)
This commit is contained in:
parent
523dd6b219
commit
1b7de5e659
@ -29,9 +29,9 @@ fn fail_with_rebubble_error() {
|
||||
(match 1 2 (null) )
|
||||
(fail :error:)
|
||||
)
|
||||
(call "peer_id" ("m" "f1") [:error:] scalar1) ; behaviour = echo
|
||||
(call "peer_id" ("m" "f1") [:error:] scalar1) ; dbg_behaviour = echo
|
||||
)
|
||||
(call "peer_id" ("m" "f2") [:error:] scalar2) ; behaviour = echo
|
||||
(call "peer_id" ("m" "f2") [:error:] scalar2) ; dbg_behaviour = echo
|
||||
)
|
||||
"#
|
||||
.to_string();
|
||||
|
@ -66,10 +66,7 @@ impl Behavior {
|
||||
use Behavior::*;
|
||||
|
||||
match self {
|
||||
Echo => {
|
||||
println!("echo_call_service() {:#?}", params);
|
||||
echo_call_service()(params)
|
||||
}
|
||||
Echo => echo_call_service()(params),
|
||||
Unit => unit_call_service()(params),
|
||||
Function => CallServiceResult::ok(params.function_name.into()),
|
||||
Service => CallServiceResult::ok(params.service_id.into()),
|
||||
|
@ -54,6 +54,9 @@ pub enum ServiceDefinition {
|
||||
/// Some known service by name: "echo", "unit" (more to follow).
|
||||
#[strum_discriminants(strum(serialize = "behaviour"))]
|
||||
Behaviour(Behavior),
|
||||
/// Same services as defined by the enum element above with dbg! applied to the arguments.
|
||||
#[strum_discriminants(strum(serialize = "dbg_behaviour"))]
|
||||
DbgBehaviour(Behavior),
|
||||
/// Maps first argument to a value
|
||||
#[strum_discriminants(strum(serialize = "map"))]
|
||||
Map(HashMap<String, JValue>),
|
||||
@ -103,6 +106,7 @@ impl ServiceDefinition {
|
||||
call_map,
|
||||
} => call_seq_error(call_number_seq, call_map),
|
||||
ServiceDefinition::Behaviour(name) => name.call(params),
|
||||
ServiceDefinition::DbgBehaviour(name) => dbg!(name.call(dbg!(params))),
|
||||
ServiceDefinition::Map(map) => call_map_service(map, params),
|
||||
}
|
||||
}
|
||||
|
@ -90,6 +90,13 @@ pub fn parse_kw(inp: &str) -> IResult<&str, ServiceDefinition, ParseError> {
|
||||
.map(ServiceDefinition::seq_error)
|
||||
},
|
||||
),
|
||||
map(
|
||||
preceded(
|
||||
pair(tag(ServiceTagName::DbgBehaviour.as_ref()), equal()),
|
||||
cut(parse_behaviour),
|
||||
),
|
||||
ServiceDefinition::DbgBehaviour,
|
||||
),
|
||||
map(
|
||||
preceded(
|
||||
pair(tag(ServiceTagName::Behaviour.as_ref()), equal()),
|
||||
@ -230,6 +237,12 @@ mod tests {
|
||||
assert_eq!(res, Ok(ServiceDefinition::Behaviour(Behavior::Echo)),);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_dbg_behaviour() {
|
||||
let res = ServiceDefinition::from_str(r#"dbg_behaviour=echo"#);
|
||||
assert_eq!(res, Ok(ServiceDefinition::DbgBehaviour(Behavior::Echo)),);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_map() {
|
||||
let res = ServiceDefinition::from_str(r#"map = {"42": [], "a": 2}"#);
|
||||
|
@ -771,14 +771,12 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_behaviour_service() {
|
||||
let peer_name = "peer1";
|
||||
fn run_behaviour_service(peer_name: &str, air_script: &str) {
|
||||
let exec = AirScriptExecutor::<NativeAirRunner>::new(
|
||||
TestRunParameters::from_init_peer_id(peer_name),
|
||||
vec![],
|
||||
std::iter::empty(),
|
||||
r#"(call "peer1" ("service" "func") [1 22] arg) ; behaviour=service"#,
|
||||
air_script,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
@ -802,14 +800,28 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_behaviour_function() {
|
||||
fn test_behaviour_service() {
|
||||
let peer_name = "peer1";
|
||||
let air_script =
|
||||
&format!(r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; behaviour=service"#);
|
||||
run_behaviour_service(peer_name, air_script)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_dbg_behaviour_service() {
|
||||
let peer_name = "peer1";
|
||||
let air_script = &format!(
|
||||
r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; dbg_behaviour=service"#
|
||||
);
|
||||
run_behaviour_service(peer_name, air_script)
|
||||
}
|
||||
|
||||
fn run_behaviour_function(peer_name: &str, air_script: &str) {
|
||||
let exec = AirScriptExecutor::<NativeAirRunner>::new(
|
||||
TestRunParameters::from_init_peer_id(peer_name),
|
||||
vec![],
|
||||
std::iter::empty(),
|
||||
r#"(call "peer1" ("service" "func") [1 22] arg) ; behaviour=function"#,
|
||||
air_script,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
@ -833,14 +845,28 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_behaviour_arg() {
|
||||
fn test_behaviour_function() {
|
||||
let peer_name = "peer1";
|
||||
let air_script =
|
||||
&format!(r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; behaviour=function"#);
|
||||
run_behaviour_function(peer_name, air_script)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_dbg_behaviour_function() {
|
||||
let peer_name = "peer1";
|
||||
let air_script = &format!(
|
||||
r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; dbg_behaviour=function"#
|
||||
);
|
||||
run_behaviour_function(peer_name, air_script)
|
||||
}
|
||||
|
||||
fn run_behaviour_arg(peer_name: &str, air_script: &str) {
|
||||
let exec = AirScriptExecutor::<NativeAirRunner>::new(
|
||||
TestRunParameters::from_init_peer_id(peer_name),
|
||||
vec![],
|
||||
std::iter::empty(),
|
||||
r#"(call "peer1" ("service" "func") [1 22] arg) ; behaviour=arg.1"#,
|
||||
air_script,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
@ -864,15 +890,31 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_behaviour_tetraplet() {
|
||||
fn test_behaviour_arg() {
|
||||
let peer_name = "peer1";
|
||||
let air_script =
|
||||
&format!(r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; behaviour=arg.1"#);
|
||||
|
||||
run_behaviour_arg(peer_name, air_script)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_dbg_behaviour_arg() {
|
||||
let peer_name = "peer1";
|
||||
let air_script =
|
||||
&format!(r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; dbg_behaviour=arg.1"#);
|
||||
|
||||
run_behaviour_arg(peer_name, air_script)
|
||||
}
|
||||
|
||||
fn run_behaviour_tetraplet(peer_name: &str, air_script: &str) {
|
||||
let (_peer_pk, peer_id) = derive_dummy_keypair(peer_name);
|
||||
|
||||
let exec = AirScriptExecutor::<NativeAirRunner>::new(
|
||||
TestRunParameters::from_init_peer_id(peer_name),
|
||||
vec![],
|
||||
std::iter::empty(),
|
||||
&format!(r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; behaviour=tetraplet"#),
|
||||
air_script,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
@ -904,4 +946,21 @@ mod tests {
|
||||
)]),
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_behaviour_tetraplet() {
|
||||
let peer_name = "peer1";
|
||||
let air_script =
|
||||
&format!(r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; behaviour=tetraplet"#);
|
||||
run_behaviour_tetraplet(peer_name, air_script)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_dbg_behaviour_tetraplet() {
|
||||
let peer_name = "peer1";
|
||||
let air_script = &format!(
|
||||
r#"(call "{peer_name}" ("service" "func") [1 22] arg) ; dbg_behaviour=tetraplet"#
|
||||
);
|
||||
run_behaviour_tetraplet(peer_name, air_script)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user