view tests/systemd.rs @ 15:08b37039504b

Improved tests * Use `localhost` for connecting which makes sure to resolve to the same address as `bind` does. * Check for slave crashing before attempting to connect. * Improve error message.
author Martin Habovstiak <martin.habovstiak@gmail.com>
date Tue, 22 Dec 2020 13:56:56 +0100
parents f740dadd2948
children bc76507dd878
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]
#[cfg_attr(not(all(linux, feature = "enable_systemd")), should_panic)]
fn main() {
    comm::main::<Test>();
}