annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
1 // This integration test requires presence of systemd-socket-activate
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
2
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
3 use std::io;
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
4 use std::ffi::OsStr;
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
5 use std::process::{Command, Child};
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
6
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
7 mod comm;
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
8
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
9 enum Test {}
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
10
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
11 impl comm::Test for Test {
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
12 const SOCKET_ADDR: &'static str = "systemd://secret_socket_of_satoshi_nakamoto";
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
13
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
14 fn spawn_slave(program_name: &OsStr) -> io::Result<Child> {
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
15 Command::new("systemd-socket-activate")
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
16 .arg("-l")
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
17 .arg("127.0.0.1:4242")
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
18 .arg("--fdname=secret_socket_of_satoshi_nakamoto")
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
19 .arg("--setenv=SYSTEMD_SOCKET_INTEGRATION_TEST=slave")
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
20 .arg(program_name)
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
21 .spawn()
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
22 }
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
23 }
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
24
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
25 #[test]
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
26 fn main() {
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
27 comm::main::<Test>();
ef8bf41097ac Added integration tests
Martin Habovstiak <martin.habovstiak@gmail.com>
parents:
diff changeset
28 }