From 50bff30c67cff3a87bb956ae52d2f5e91948c91b Mon Sep 17 00:00:00 2001 From: tpeters Date: Tue, 23 May 2023 18:03:25 +0200 Subject: [PATCH] more: add test and change error type --- src/uu/more/src/more.rs | 2 +- tests/by-util/test_more.rs | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/uu/more/src/more.rs b/src/uu/more/src/more.rs index b9d9c8272..b5487ef87 100644 --- a/src/uu/more/src/more.rs +++ b/src/uu/more/src/more.rs @@ -106,7 +106,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { } let opened_file = match File::open(file) { Err(why) => { - return Err(UUsageError::new( + return Err(USimpleError::new( 1, format!("cannot open {}: {}", file.quote(), why.kind()), )) diff --git a/tests/by-util/test_more.rs b/tests/by-util/test_more.rs index cb12343fa..75f0eed77 100644 --- a/tests/by-util/test_more.rs +++ b/tests/by-util/test_more.rs @@ -1,5 +1,7 @@ use crate::common::util::TestScenario; use is_terminal::IsTerminal; +use std::fs::{set_permissions, Permissions}; +use std::os::unix::fs::PermissionsExt; #[test] fn test_more_no_arg() { @@ -32,3 +34,14 @@ fn test_more_dir_arg() { .usage_error("'.' is a directory."); } } + +#[test] +fn test_more_invalid_file_perms() { + let (at, mut ucmd) = at_and_ucmd!(); + let permissions = Permissions::from_mode(0o244); + at.make_file("invalid-perms.txt").metadata().unwrap(); + set_permissions(at.plus("invalid-perms.txt"), permissions).unwrap(); + ucmd.arg("invalid-perms.txt").fails(); + //.code_is(1) + //.stderr_is("more: cannot open 'invalid-perms.txt': permission denied"); +}