chroot: move logic so it can be triggered by tests

* move the command building logic before the `chroot` syscall so it
will be reachable by tests that don't have root permissions.
This commit is contained in:
Jan Scheer 2021-09-22 11:59:43 +02:00
parent 8db8d8ac4e
commit 8c0b7d1314
No known key found for this signature in database
GPG key ID: C62AD4C29E2B9828

View file

@ -77,11 +77,15 @@ pub fn uumain(args: impl uucore::Args) -> i32 {
_ => commands,
};
assert!(!command.is_empty());
let chroot_command = command[0];
let chroot_args = &command[1..];
// NOTE: Tests can only trigger code beyond this point if they're invoked with root permissions
set_context(newroot, &matches);
assert!(!command.is_empty());
let pstatus = Command::new(command[0])
.args(&command[1..])
let pstatus = Command::new(chroot_command)
.args(chroot_args)
.status()
.unwrap_or_else(|e| {
// TODO: Exit status: