rustd-resolved 0.2.1

A compatibility-oriented reimplementation of systemd-resolved
// SPDX-License-Identifier: LGPL-2.1-or-later

use std::process::{Command, Output};

fn version(binary: &str) -> Output {
    Command::new(binary)
        .arg("--version")
        .output()
        .expect("run version command")
}

fn assert_equivalent(native: &str, compatibility: &str) {
    let native = version(native);
    let compatibility = version(compatibility);

    assert_eq!(native.status, compatibility.status);
    assert_eq!(native.stdout, compatibility.stdout);
    assert_eq!(native.stderr, compatibility.stderr);
    assert!(native.status.success());
}

#[test]
fn native_daemon_name_preserves_compatibility_behavior() {
    assert_equivalent(
        env!("CARGO_BIN_EXE_rustd-resolved"),
        env!("CARGO_BIN_EXE_systemd-resolved"),
    );
}

#[test]
fn native_client_name_preserves_compatibility_behavior() {
    assert_equivalent(
        env!("CARGO_BIN_EXE_rustd-resolvectl"),
        env!("CARGO_BIN_EXE_resolvectl"),
    );
}