rustd-resolved 0.2.1

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

use std::path::Path;

#[test]
fn native_daemon_target_is_built_as_rustd_resolved() {
    let path = Path::new(env!("CARGO_BIN_EXE_rustd-resolved"));
    let file_name = path
        .file_name()
        .and_then(|name| name.to_str())
        .expect("native daemon target must have a UTF-8 file name");

    assert!(
        file_name == "rustd-resolved" || file_name == "rustd-resolved.exe",
        "unexpected native daemon target name: {file_name}"
    );
}

#[test]
fn install_keeps_native_and_compatibility_entry_points() {
    let makefile = include_str!("../Makefile");

    for required in [
        "target/release/rustd-resolved",
        "$(LIBDIR)/libnss_resolve.so.2",
        "$(LIBEXECDIR)/rustd-resolved",
        "$(LIBEXECDIR)/systemd-resolved",
        "$(PREFIX)/bin/rustd-resolvectl",
        "$(PREFIX)/bin/resolvectl",
        "$(PREFIX)/bin/systemd-resolve",
        "$(SBINDIR)/resolvconf",
        "$(UNITDIR)/rustd-resolved.service",
        "$(UNITDIR)/systemd-resolved.service",
    ] {
        assert!(
            makefile.contains(required),
            "installation contract is missing {required}"
        );
    }
}