view tests/systemd.rs @ 17:dfb727367934

Allow specifying systemd name directly When an application has systemd name by parsing a configuration directly it can use the function added in this change to construct `SocketAddr` without having to allocate an intermediate string.
author Martin Habovstiak <martin.habovstiak@gmail.com>
date Tue, 22 Dec 2020 14:15:49 +0100
parents bc76507dd878
children cfef4593e207
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(target_os = "linux", feature = "enable_systemd")), should_panic)]
fn main() {
    comm::main::<Test>();
}