view tests/systemd.rs @ 4:66c0e10c89fc

Support resolving hostnames Until now the crate supported only IP addresses and systemd sockets. This was troublesome because it prevented the popular `localhost:1234` format. This commit changes the behavior so that if parsing of `std::net::SocketAddr` fails it attempts to parse it as `hostname:port`. `bind_*()` methods were also modified to be async because of this.
author Martin Habovstiak <martin.habovstiak@gmail.com>
date Fri, 27 Nov 2020 15:05:19 +0100
parents ef8bf41097ac
children 9731ff589d9c
line wrap: on
line source

// This integration test requires presence of systemd-socket-activate

use std::io;
use std::ffi::OsStr;
use std::process::{Command, Child};

mod comm;

enum Test {}

impl comm::Test for Test {
    const SOCKET_ADDR: &'static str = "systemd://secret_socket_of_satoshi_nakamoto";

    fn spawn_slave(program_name: &OsStr) -> io::Result<Child> {
        Command::new("systemd-socket-activate")
            .arg("-l")
            .arg("127.0.0.1:4242")
            .arg("--fdname=secret_socket_of_satoshi_nakamoto")
            .arg("--setenv=SYSTEMD_SOCKET_INTEGRATION_TEST=slave")
            .arg(program_name)
            .spawn()
    }
}

#[test]
fn main() {
    comm::main::<Test>();
}