ping/
ping.rs

1#[cfg(unix)]
2use anticipate::{repl::spawn_bash, ControlCode, Error, Expect};
3
4#[cfg(unix)]
5fn main() -> Result<(), Error> {
6    let mut p = spawn_bash()?;
7    p.send_line("ping 8.8.8.8")?;
8    p.expect("bytes of data")?;
9    p.send(ControlCode::try_from("^Z").unwrap())?;
10    p.expect_prompt()?;
11    // bash writes 'ping 8.8.8.8' to stdout again to state which job was put into background
12    p.send_line("bg")?;
13    p.expect("ping 8.8.8.8")?;
14    p.expect_prompt()?;
15    p.send_line("sleep 0.5")?;
16    p.expect_prompt()?;
17    // bash writes 'ping 8.8.8.8' to stdout again to state which job was put into foreground
18    p.send_line("fg")?;
19    p.expect("ping 8.8.8.8")?;
20    p.send(ControlCode::try_from("^D").unwrap())?;
21    p.expect("packet loss")?;
22
23    Ok(())
24}
25
26#[cfg(windows)]
27fn main() {
28    panic!("An example doesn't supported on windows")
29}