test_runner/socket.rs
1use ctru::prelude::*;
2
3use super::TestRunner;
4
5/// Show test output via a network socket to `3dslink`. This runner is only useful
6/// on real hardware, since `3dslink` doesn't work with emulators.
7///
8/// See [`Soc::redirect_to_3dslink`] for more details.
9///
10/// [`Soc::redirect_to_3dslink`]: ctru::services::soc::Soc::redirect_to_3dslink
11pub struct SocketRunner {
12 soc: Soc,
13}
14
15impl TestRunner for SocketRunner {
16 type Context<'this> = &'this Soc;
17
18 fn new() -> Self {
19 let mut soc = Soc::new().expect("failed to initialize network service");
20 soc.redirect_to_3dslink(true, true)
21 .expect("failed to redirect to socket");
22 Self { soc }
23 }
24
25 fn setup(&mut self) -> Self::Context<'_> {
26 &self.soc
27 }
28}