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}