forked from course/hse-2026
Add common stuff and week 1 materials
This commit is contained in:
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)
|
||||
}
|
||||
Reference in new issue
Block a user