Merge pull request #2962 from cgwalters/os-init-remount

os-init: Create a mount namespace
This commit is contained in:
Eric Curtin 2023-08-02 20:41:32 +01:00 committed by GitHub
commit 09160c1a2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 3 deletions

View File

@ -38,9 +38,8 @@ ot_admin_builtin_os_init (int argc, char **argv, OstreeCommandInvocation *invoca
g_autoptr (OstreeSysroot) sysroot = NULL;
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER
| OSTREE_ADMIN_BUILTIN_FLAG_UNLOCKED,
invocation, &sysroot, cancellable, error))
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER, invocation, &sysroot,
cancellable, error))
return FALSE;
if (!ostree_sysroot_ensure_initialized (sysroot, cancellable, error))

View File

@ -24,6 +24,7 @@ const TESTS: &[StaticTest] = &[
test!(sysroot::itest_sysroot_ro),
test!(sysroot::itest_immutable_bit),
test!(sysroot::itest_tmpfiles),
test!(sysroot::itest_osinit_unshare),
test!(repobin::itest_basic),
test!(repobin::itest_nofifo),
test!(repobin::itest_mtime),

View File

@ -6,6 +6,7 @@ use std::path::Path;
use anyhow::Result;
use ostree_ext::prelude::*;
use ostree_ext::{gio, ostree};
use xshell::cmd;
use crate::test::*;
@ -55,3 +56,14 @@ pub(crate) fn itest_tmpfiles() -> Result<()> {
assert_eq!(metadata.permissions().mode() & !libc::S_IFMT, 0o755);
Ok(())
}
pub(crate) fn itest_osinit_unshare() -> Result<()> {
if skip_non_ostree_host() {
return Ok(());
}
let sh = xshell::Shell::new()?;
cmd!(sh, "ostree admin os-init ostreetestsuite").run()?;
let metadata = Path::new("/run/ostree").metadata()?;
assert_eq!(metadata.permissions().mode() & !libc::S_IFMT, 0o755);
Ok(())
}