chiark / gitweb /
tests: refactor connect_player
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 25 Feb 2021 00:20:52 +0000 (00:20 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 25 Feb 2021 00:22:15 +0000 (00:22 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest.rs
apitest/at-otter.rs

index bbf4ec3f63a0956bb85fd650492e72120b9674cc..b62c96c626207dacc4e6cb28c2304c82eba4e86b 100644 (file)
@@ -42,6 +42,7 @@ pub use std::iter;
 pub use std::mem;
 pub use std::net::TcpStream;
 pub use std::ops::{Deref, DerefMut};
+pub use std::os::unix::net::UnixStream;
 pub use std::os::unix::process::CommandExt;
 pub use std::os::unix::fs::DirBuilderExt;
 pub use std::os::linux::fs::MetadataExt; // todo why linux for st_mode??
index 2f370e5c6466a8b07c260a94aa7e88474c41e677..c4f18bced0e38ba2330c5e6edc21a7fbd822ddeb 100644 (file)
@@ -21,11 +21,14 @@ struct Player {
   url: String,
 }
 
+struct Session {
+  pub dom: scraper::html::Html,
+  pub updates: UnixStream,
+}
+
 impl Ctx {
   #[throws(AE)]
-  fn connect_player(&self, player: &Player)
-                    -> (scraper::html::Html, impl std::io::Read)
-  {
+  fn connect_player(&self, player: &Player) -> Session {
     let client = reqwest::blocking::Client::new();
 
     let resp = client.get(&player.url).send()?;
@@ -70,14 +73,14 @@ impl Ctx {
         .subst("@url@/_/updates?ctoken=@ctoken@&gen=@gen@")?
     ).send()?;
 
-    let (mut writer, reader) = std::os::unix::net::UnixStream::pair()?;
+    let (mut writer, reader) = UnixStream::pair()?;
     thread::spawn(move ||{
       eprintln!("copy_to'ing");
       sse.copy_to(&mut writer).unwrap();
       eprintln!("copy_to'd!"); 
     });
 
-    (session, reader)
+    Session { dom: session, updates: reader }
   }
 }