Skip to content

Commit 9f5fa0e

Browse files
authored
Merge pull request #991 from cgwalters/more-cfg-test
tree-wide: Move everything else under #[cfg(test)]
2 parents f84dd0e + 203a4fc commit 9f5fa0e

File tree

7 files changed

+338
-304
lines changed

7 files changed

+338
-304
lines changed

lib/src/deploy.rs

Lines changed: 85 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -817,44 +817,6 @@ pub(crate) fn switch_origin_inplace(root: &Dir, imgref: &ImageReference) -> Resu
817817
Ok(newest_deployment)
818818
}
819819

820-
#[test]
821-
fn test_switch_inplace() -> Result<()> {
822-
use cap_std::fs::DirBuilderExt;
823-
824-
let td = cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
825-
let mut builder = cap_std::fs::DirBuilder::new();
826-
let builder = builder.recursive(true).mode(0o755);
827-
let deploydir = "sysroot/ostree/deploy/default/deploy";
828-
let target_deployment = "af36eb0086bb55ac601600478c6168f834288013d60f8870b7851f44bf86c3c5.0";
829-
td.ensure_dir_with(
830-
format!("sysroot/ostree/deploy/default/deploy/{target_deployment}"),
831-
builder,
832-
)?;
833-
let deploydir = &td.open_dir(deploydir)?;
834-
let orig_imgref = ImageReference {
835-
image: "quay.io/exampleos/original:sometag".into(),
836-
transport: "registry".into(),
837-
signature: None,
838-
};
839-
{
840-
let origin = origin_from_imageref(&orig_imgref)?;
841-
deploydir.atomic_write(
842-
format!("{target_deployment}.origin"),
843-
origin.to_data().as_bytes(),
844-
)?;
845-
}
846-
847-
let target_imgref = ImageReference {
848-
image: "quay.io/someother/otherimage:latest".into(),
849-
transport: "registry".into(),
850-
signature: None,
851-
};
852-
853-
let replaced = switch_origin_inplace(&td, &target_imgref).unwrap();
854-
assert_eq!(replaced, target_deployment);
855-
Ok(())
856-
}
857-
858820
/// A workaround for https://github.com/ostreedev/ostree/issues/3193
859821
/// as generated by anaconda.
860822
#[context("Updating /etc/fstab for anaconda+composefs")]
@@ -935,56 +897,100 @@ pub(crate) fn fixup_etc_fstab(root: &Dir) -> Result<()> {
935897
Ok(())
936898
}
937899

938-
#[test]
939-
fn test_fixup_etc_fstab_default() -> Result<()> {
940-
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
941-
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n";
942-
tempdir.create_dir_all("etc")?;
943-
tempdir.atomic_write("etc/fstab", default)?;
944-
fixup_etc_fstab(&tempdir).unwrap();
945-
assert_eq!(tempdir.read_to_string("etc/fstab")?, default);
946-
Ok(())
947-
}
900+
#[cfg(test)]
901+
mod tests {
902+
use super::*;
903+
904+
#[test]
905+
fn test_switch_inplace() -> Result<()> {
906+
use cap_std::fs::DirBuilderExt;
907+
908+
let td = cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
909+
let mut builder = cap_std::fs::DirBuilder::new();
910+
let builder = builder.recursive(true).mode(0o755);
911+
let deploydir = "sysroot/ostree/deploy/default/deploy";
912+
let target_deployment =
913+
"af36eb0086bb55ac601600478c6168f834288013d60f8870b7851f44bf86c3c5.0";
914+
td.ensure_dir_with(
915+
format!("sysroot/ostree/deploy/default/deploy/{target_deployment}"),
916+
builder,
917+
)?;
918+
let deploydir = &td.open_dir(deploydir)?;
919+
let orig_imgref = ImageReference {
920+
image: "quay.io/exampleos/original:sometag".into(),
921+
transport: "registry".into(),
922+
signature: None,
923+
};
924+
{
925+
let origin = origin_from_imageref(&orig_imgref)?;
926+
deploydir.atomic_write(
927+
format!("{target_deployment}.origin"),
928+
origin.to_data().as_bytes(),
929+
)?;
930+
}
931+
932+
let target_imgref = ImageReference {
933+
image: "quay.io/someother/otherimage:latest".into(),
934+
transport: "registry".into(),
935+
signature: None,
936+
};
948937

949-
#[test]
950-
fn test_fixup_etc_fstab_multi() -> Result<()> {
951-
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
952-
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
938+
let replaced = switch_origin_inplace(&td, &target_imgref).unwrap();
939+
assert_eq!(replaced, target_deployment);
940+
Ok(())
941+
}
942+
943+
#[test]
944+
fn test_fixup_etc_fstab_default() -> Result<()> {
945+
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
946+
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n";
947+
tempdir.create_dir_all("etc")?;
948+
tempdir.atomic_write("etc/fstab", default)?;
949+
fixup_etc_fstab(&tempdir).unwrap();
950+
assert_eq!(tempdir.read_to_string("etc/fstab")?, default);
951+
Ok(())
952+
}
953+
954+
#[test]
955+
fn test_fixup_etc_fstab_multi() -> Result<()> {
956+
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
957+
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
953958
UUID=6907-17CA /boot/efi vfat umask=0077,shortname=winnt 0 2\n";
954-
tempdir.create_dir_all("etc")?;
955-
tempdir.atomic_write("etc/fstab", default)?;
956-
fixup_etc_fstab(&tempdir).unwrap();
957-
assert_eq!(tempdir.read_to_string("etc/fstab")?, default);
958-
Ok(())
959-
}
959+
tempdir.create_dir_all("etc")?;
960+
tempdir.atomic_write("etc/fstab", default)?;
961+
fixup_etc_fstab(&tempdir).unwrap();
962+
assert_eq!(tempdir.read_to_string("etc/fstab")?, default);
963+
Ok(())
964+
}
960965

961-
#[test]
962-
fn test_fixup_etc_fstab_ro() -> Result<()> {
963-
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
964-
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
966+
#[test]
967+
fn test_fixup_etc_fstab_ro() -> Result<()> {
968+
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
969+
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
965970
UUID=1eef9f42-40e3-4bd8-ae20-e9f2325f8b52 / xfs ro 0 0\n\
966971
UUID=6907-17CA /boot/efi vfat umask=0077,shortname=winnt 0 2\n";
967-
tempdir.create_dir_all("etc")?;
968-
tempdir.atomic_write("etc/fstab", default)?;
969-
fixup_etc_fstab(&tempdir).unwrap();
970-
assert_eq!(tempdir.read_to_string("etc/fstab")?, default);
971-
Ok(())
972-
}
972+
tempdir.create_dir_all("etc")?;
973+
tempdir.atomic_write("etc/fstab", default)?;
974+
fixup_etc_fstab(&tempdir).unwrap();
975+
assert_eq!(tempdir.read_to_string("etc/fstab")?, default);
976+
Ok(())
977+
}
973978

974-
#[test]
975-
fn test_fixup_etc_fstab_rw() -> Result<()> {
976-
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
977-
// This case uses `defaults`
978-
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
979+
#[test]
980+
fn test_fixup_etc_fstab_rw() -> Result<()> {
981+
let tempdir = cap_std_ext::cap_tempfile::tempdir(cap_std::ambient_authority())?;
982+
// This case uses `defaults`
983+
let default = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
979984
UUID=1eef9f42-40e3-4bd8-ae20-e9f2325f8b52 / xfs defaults 0 0\n\
980985
UUID=6907-17CA /boot/efi vfat umask=0077,shortname=winnt 0 2\n";
981-
let modified = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
986+
let modified = "UUID=f7436547-20ac-43cb-aa2f-eac9632183f6 /boot auto ro 0 0\n\
982987
# Updated by bootc-fstab-edit.service\n\
983988
UUID=1eef9f42-40e3-4bd8-ae20-e9f2325f8b52 / xfs defaults,ro 0 0\n\
984989
UUID=6907-17CA /boot/efi vfat umask=0077,shortname=winnt 0 2\n";
985-
tempdir.create_dir_all("etc")?;
986-
tempdir.atomic_write("etc/fstab", default)?;
987-
fixup_etc_fstab(&tempdir).unwrap();
988-
assert_eq!(tempdir.read_to_string("etc/fstab")?, modified);
989-
Ok(())
990+
tempdir.create_dir_all("etc")?;
991+
tempdir.atomic_write("etc/fstab", default)?;
992+
fixup_etc_fstab(&tempdir).unwrap();
993+
assert_eq!(tempdir.read_to_string("etc/fstab")?, modified);
994+
Ok(())
995+
}
990996
}

lib/src/install.rs

Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,54 +1892,58 @@ pub(crate) async fn install_to_existing_root(opts: InstallToExistingRootOpts) ->
18921892

18931893
install_to_filesystem(opts, true).await
18941894
}
1895+
#[cfg(test)]
1896+
mod tests {
1897+
use super::*;
1898+
1899+
#[test]
1900+
fn install_opts_serializable() {
1901+
let c: InstallToDiskOpts = serde_json::from_value(serde_json::json!({
1902+
"device": "/dev/vda"
1903+
}))
1904+
.unwrap();
1905+
assert_eq!(c.block_opts.device, "/dev/vda");
1906+
}
18951907

1896-
#[test]
1897-
fn install_opts_serializable() {
1898-
let c: InstallToDiskOpts = serde_json::from_value(serde_json::json!({
1899-
"device": "/dev/vda"
1900-
}))
1901-
.unwrap();
1902-
assert_eq!(c.block_opts.device, "/dev/vda");
1903-
}
1904-
1905-
#[test]
1906-
fn test_mountspec() {
1907-
let mut ms = MountSpec::new("/dev/vda4", "/boot");
1908-
assert_eq!(ms.to_fstab(), "/dev/vda4 /boot auto defaults 0 0");
1909-
ms.push_option("ro");
1910-
assert_eq!(ms.to_fstab(), "/dev/vda4 /boot auto ro 0 0");
1911-
ms.push_option("relatime");
1912-
assert_eq!(ms.to_fstab(), "/dev/vda4 /boot auto ro,relatime 0 0");
1913-
}
1908+
#[test]
1909+
fn test_mountspec() {
1910+
let mut ms = MountSpec::new("/dev/vda4", "/boot");
1911+
assert_eq!(ms.to_fstab(), "/dev/vda4 /boot auto defaults 0 0");
1912+
ms.push_option("ro");
1913+
assert_eq!(ms.to_fstab(), "/dev/vda4 /boot auto ro 0 0");
1914+
ms.push_option("relatime");
1915+
assert_eq!(ms.to_fstab(), "/dev/vda4 /boot auto ro,relatime 0 0");
1916+
}
19141917

1915-
#[test]
1916-
fn test_gather_root_args() {
1917-
// A basic filesystem using a UUID
1918-
let inspect = Filesystem {
1919-
source: "/dev/vda4".into(),
1920-
target: "/".into(),
1921-
fstype: "xfs".into(),
1922-
maj_min: "252:4".into(),
1923-
options: "rw".into(),
1924-
uuid: Some("965eb3c7-5a3f-470d-aaa2-1bcf04334bc6".into()),
1925-
children: None,
1926-
};
1927-
let r = find_root_args_to_inherit(&[], &inspect).unwrap();
1928-
assert_eq!(r.mount_spec, "UUID=965eb3c7-5a3f-470d-aaa2-1bcf04334bc6");
1929-
1930-
// In this case we take the root= from the kernel cmdline
1931-
let r = find_root_args_to_inherit(
1932-
&[
1933-
"root=/dev/mapper/root",
1934-
"rw",
1935-
"someother=karg",
1936-
"rd.lvm.lv=root",
1937-
"systemd.debug=1",
1938-
],
1939-
&inspect,
1940-
)
1941-
.unwrap();
1942-
assert_eq!(r.mount_spec, "/dev/mapper/root");
1943-
assert_eq!(r.kargs.len(), 1);
1944-
assert_eq!(r.kargs[0], "rd.lvm.lv=root");
1918+
#[test]
1919+
fn test_gather_root_args() {
1920+
// A basic filesystem using a UUID
1921+
let inspect = Filesystem {
1922+
source: "/dev/vda4".into(),
1923+
target: "/".into(),
1924+
fstype: "xfs".into(),
1925+
maj_min: "252:4".into(),
1926+
options: "rw".into(),
1927+
uuid: Some("965eb3c7-5a3f-470d-aaa2-1bcf04334bc6".into()),
1928+
children: None,
1929+
};
1930+
let r = find_root_args_to_inherit(&[], &inspect).unwrap();
1931+
assert_eq!(r.mount_spec, "UUID=965eb3c7-5a3f-470d-aaa2-1bcf04334bc6");
1932+
1933+
// In this case we take the root= from the kernel cmdline
1934+
let r = find_root_args_to_inherit(
1935+
&[
1936+
"root=/dev/mapper/root",
1937+
"rw",
1938+
"someother=karg",
1939+
"rd.lvm.lv=root",
1940+
"systemd.debug=1",
1941+
],
1942+
&inspect,
1943+
)
1944+
.unwrap();
1945+
assert_eq!(r.mount_spec, "/dev/mapper/root");
1946+
assert_eq!(r.kargs.len(), 1);
1947+
assert_eq!(r.kargs[0], "rd.lvm.lv=root");
1948+
}
19451949
}

lib/src/install/osconfig.rs

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -50,37 +50,42 @@ pub(crate) fn inject_root_ssh_authorized_keys(
5050
Ok(())
5151
}
5252

53-
#[test]
54-
fn test_inject_root_ssh_symlinked() -> Result<()> {
55-
let root = &cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
53+
#[cfg(test)]
54+
mod tests {
55+
use super::*;
5656

57-
// The code expects this to exist, reasonably so
58-
root.create_dir("etc")?;
59-
// Test with a symlink
60-
root.symlink("var/roothome", "root")?;
61-
inject_root_ssh_authorized_keys(root, None, "ssh-ed25519 ABCDE example@demo\n").unwrap();
57+
#[test]
58+
fn test_inject_root_ssh_symlinked() -> Result<()> {
59+
let root = &cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
6260

63-
let content = root.read_to_string(format!("etc/tmpfiles.d/{ROOT_SSH_TMPFILE}"))?;
64-
assert_eq!(
61+
// The code expects this to exist, reasonably so
62+
root.create_dir("etc")?;
63+
// Test with a symlink
64+
root.symlink("var/roothome", "root")?;
65+
inject_root_ssh_authorized_keys(root, None, "ssh-ed25519 ABCDE example@demo\n").unwrap();
66+
67+
let content = root.read_to_string(format!("etc/tmpfiles.d/{ROOT_SSH_TMPFILE}"))?;
68+
assert_eq!(
6569
content,
6670
"f~ /var/roothome/.ssh/authorized_keys 600 root root - c3NoLWVkMjU1MTkgQUJDREUgZXhhbXBsZUBkZW1vCg==\n"
6771
);
6872

69-
Ok(())
70-
}
73+
Ok(())
74+
}
7175

72-
#[test]
73-
fn test_inject_root_ssh_dir() -> Result<()> {
74-
let root = &cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
76+
#[test]
77+
fn test_inject_root_ssh_dir() -> Result<()> {
78+
let root = &cap_std_ext::cap_tempfile::TempDir::new(cap_std::ambient_authority())?;
7579

76-
root.create_dir("etc")?;
77-
root.create_dir("root")?;
78-
inject_root_ssh_authorized_keys(root, None, "ssh-ed25519 ABCDE example@demo\n").unwrap();
80+
root.create_dir("etc")?;
81+
root.create_dir("root")?;
82+
inject_root_ssh_authorized_keys(root, None, "ssh-ed25519 ABCDE example@demo\n").unwrap();
7983

80-
let content = root.read_to_string(format!("etc/tmpfiles.d/{ROOT_SSH_TMPFILE}"))?;
81-
assert_eq!(
84+
let content = root.read_to_string(format!("etc/tmpfiles.d/{ROOT_SSH_TMPFILE}"))?;
85+
assert_eq!(
8286
content,
8387
"f~ /root/.ssh/authorized_keys 600 root root - c3NoLWVkMjU1MTkgQUJDREUgZXhhbXBsZUBkZW1vCg==\n"
8488
);
85-
Ok(())
89+
Ok(())
90+
}
8691
}

ostree-ext/src/container/encapsulate.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -416,15 +416,20 @@ pub async fn encapsulate<S: AsRef<str>>(
416416
build_impl(repo, ostree_ref.as_ref(), config, opts, dest).await
417417
}
418418

419-
#[test]
420-
fn test_parse_ocipath() {
421-
let default = "/foo/bar";
422-
let untagged = "/foo/bar:baz";
423-
let tagged = "/foo/bar:baz:latest";
424-
assert_eq!(parse_oci_path_and_tag(default), ("/foo/bar", None));
425-
assert_eq!(
426-
parse_oci_path_and_tag(tagged),
427-
("/foo/bar", Some("baz:latest"))
428-
);
429-
assert_eq!(parse_oci_path_and_tag(untagged), ("/foo/bar", Some("baz")));
419+
#[cfg(test)]
420+
mod tests {
421+
use super::*;
422+
423+
#[test]
424+
fn test_parse_ocipath() {
425+
let default = "/foo/bar";
426+
let untagged = "/foo/bar:baz";
427+
let tagged = "/foo/bar:baz:latest";
428+
assert_eq!(parse_oci_path_and_tag(default), ("/foo/bar", None));
429+
assert_eq!(
430+
parse_oci_path_and_tag(tagged),
431+
("/foo/bar", Some("baz:latest"))
432+
);
433+
assert_eq!(parse_oci_path_and_tag(untagged), ("/foo/bar", Some("baz")));
434+
}
430435
}

0 commit comments

Comments
 (0)