Add common stuff and week 1 materials

This commit is contained in:
osukhoroslov committed 2026-09-07 14:27:33 +03:00
1 parent 5ca5489c8e
commit bc8d2d44b6
17 files changed
+1889

No files matched your search

@@ -0,0 +1,110 @@
use anysystem::test::TestResult;
use anysystem::Message;
use crate::common::*;
pub fn test_run(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
let msg = Message::new("PING", r#"{"value": "Hello!"}"#);
sys.send_local_message("client", msg);
sys.step_until_no_events();
Ok(true)
}
pub fn test_result(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
let data = r#"{"value": "Hello!"}"#;
sys.send_local_message("client", Message::new("PING", data));
sys.step_until_no_events();
check(sys.read_local_messages("client"), data)
}
pub fn test_result_unreliable(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
sys.network().set_drop_rate(0.5);
let data = r#"{"value": "Hello!"}"#;
sys.send_local_message("client", Message::new("PING", data));
sys.step_until_no_events();
check(sys.read_local_messages("client"), data)
}
pub fn test_10_results_unreliable(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
sys.network().set_drop_rate(0.5);
let data = r#"{"value": "Hello!"}"#;
for _ in 0..10 {
sys.send_local_message("client", Message::new("PING", data));
sys.step_until_no_events();
check(sys.read_local_messages("client"), data)?;
}
Ok(true)
}
pub fn test_drop_ping(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
sys.network().set_drop_rate(1.0);
let data = r#"{"value": "Hello!"}"#;
sys.send_local_message("client", Message::new("PING", data));
sys.steps(10);
sys.network().set_drop_rate(0.0);
sys.step_until_no_events();
check(sys.read_local_messages("client"), data)
}
pub fn test_drop_pong(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
let data = r#"{"value": "Hello!"}"#;
sys.send_local_message("client", Message::new("PING", data));
sys.network().set_drop_rate(1.0);
sys.steps(10);
sys.network().set_drop_rate(0.0);
sys.step_until_no_events();
check(sys.read_local_messages("client"), data)
}
pub fn test_drop_ping_2(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
sys.network().drop_outgoing("client-node");
let data = r#"{"value": "Hello!"}"#;
sys.send_local_message("client", Message::new("PING", data));
sys.steps(10);
sys.network().pass_outgoing("client-node");
sys.step_until_no_events();
check(sys.read_local_messages("client"), data)
}
pub fn test_drop_pong_2(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
sys.network().drop_outgoing("server-node");
let data = r#"{"value": "Hello!"}"#;
sys.send_local_message("client", Message::new("PING", data));
sys.steps(10);
sys.network().pass_outgoing("server-node");
sys.step_until_no_events();
check(sys.read_local_messages("client"), data)
}
pub fn test_10_unique_results(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
sys.network().set_delays(1.0, 2.0);
for i in 0..10 {
let data = format!(r#"{{"value": "Hello{i}!"}}"#);
sys.send_local_message("client", Message::new("PING", &data));
let messages = sys.step_until_local_message("client")?;
check(messages, &data)?;
}
Ok(true)
}
pub fn test_10_unique_results_unreliable(config: &TestConfig) -> TestResult {
let mut sys = build_system(config);
sys.network().set_delays(1.0, 2.0);
sys.network().set_drop_rate(0.5);
for i in 0..10 {
let data = format!(r#"{{"value": "Hello{i}!"}}"#);
sys.send_local_message("client", Message::new("PING", &data));
let messages = sys.step_until_local_message("client")?;
check(messages, &data)?;
}
Ok(true)
}