view tests/systemd.rs @ 6:a7893294e9b2

Make the crate compilable on non-linux systems This makes the crate compile on other operating systems. Since systemd is only supported on Linux, it simply disables systemd features on other systems. The API is still the same, just parsing `systemd://` string will return an error.
author Martin Habovstiak <martin.habovstiak@gmail.com>
date Fri, 27 Nov 2020 16:15:57 +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>();
}