summaryrefslogtreecommitdiff
path: root/tests/integration/packaging.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/packaging.rs')
-rw-r--r--tests/integration/packaging.rs49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/integration/packaging.rs b/tests/integration/packaging.rs
new file mode 100644
index 0000000..6a86bc5
--- /dev/null
+++ b/tests/integration/packaging.rs
@@ -0,0 +1,49 @@
+use std::path::Path;
+
+#[test]
+fn docker_override_exists_and_valid() {
+ let path = Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/systemd/docker.conf");
+ assert!(path.exists(), "docker.conf template missing");
+ let content = std::fs::read_to_string(&path).unwrap();
+ assert!(
+ content.contains("SupplementaryGroups=docker"),
+ "docker.conf must grant docker group"
+ );
+ assert!(
+ content.contains("ReadWritePaths=/var/run/docker.sock"),
+ "docker.conf must allow docker socket access"
+ );
+ assert!(
+ content.contains("[Service]"),
+ "docker.conf must be a systemd unit override"
+ );
+}
+
+#[test]
+fn podman_override_exists_and_valid() {
+ let path = Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/systemd/podman.conf");
+ assert!(path.exists(), "podman.conf template missing");
+ let content = std::fs::read_to_string(&path).unwrap();
+ assert!(
+ content.contains("RestrictNamespaces=no"),
+ "podman.conf must disable RestrictNamespaces"
+ );
+ assert!(
+ content.contains("XDG_RUNTIME_DIR=/run/user/%U"),
+ "podman.conf must set XDG_RUNTIME_DIR with %U"
+ );
+ assert!(
+ content.contains("[Service]"),
+ "podman.conf must be a systemd unit override"
+ );
+}
+
+#[test]
+fn override_templates_are_not_empty() {
+ let dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("examples/systemd");
+ for name in ["docker.conf", "podman.conf"] {
+ let path = dir.join(name);
+ let meta = std::fs::metadata(&path).unwrap();
+ assert!(meta.len() > 0, "{name} must not be empty");
+ }
+}