mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-29 03:57:44 +00:00
cksum: added tests for --raw and fixed fmt whitespace error
This commit is contained in:
parent
8c1fc8b287
commit
f03ef79bc8
2 changed files with 30 additions and 9 deletions
|
@ -6,15 +6,15 @@
|
||||||
// spell-checker:ignore (ToDO) fname, algo
|
// spell-checker:ignore (ToDO) fname, algo
|
||||||
use clap::{crate_version, value_parser, Arg, ArgAction, Command};
|
use clap::{crate_version, value_parser, Arg, ArgAction, Command};
|
||||||
use hex::encode;
|
use hex::encode;
|
||||||
|
use std::error::Error;
|
||||||
use std::ffi::OsStr;
|
use std::ffi::OsStr;
|
||||||
|
use std::fmt::Display;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::{self, stdin, stdout, BufReader, Read, Write};
|
use std::io::{self, stdin, stdout, BufReader, Read, Write};
|
||||||
use std::iter;
|
use std::iter;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::error::Error;
|
|
||||||
use std::fmt::Display;
|
|
||||||
use uucore::{
|
use uucore::{
|
||||||
error::{FromIo, UResult, UError},
|
error::{FromIo, UError, UResult},
|
||||||
format_usage, help_about, help_section, help_usage,
|
format_usage, help_about, help_section, help_usage,
|
||||||
sum::{
|
sum::{
|
||||||
div_ceil, Blake2b, Digest, DigestWriter, Md5, Sha1, Sha224, Sha256, Sha384, Sha512, Sm3,
|
div_ceil, Blake2b, Digest, DigestWriter, Md5, Sha1, Sha224, Sha256, Sha384, Sha512, Sm3,
|
||||||
|
@ -51,8 +51,7 @@ impl UError for CkSumError {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Error for CkSumError {
|
impl Error for CkSumError {}
|
||||||
}
|
|
||||||
|
|
||||||
impl Display for CkSumError {
|
impl Display for CkSumError {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
@ -152,7 +151,7 @@ fn cksum<'a, I>(mut options: Options, files: I) -> UResult<()>
|
||||||
where
|
where
|
||||||
I: Iterator<Item = &'a OsStr>,
|
I: Iterator<Item = &'a OsStr>,
|
||||||
{
|
{
|
||||||
let files_vec:Vec<_> = files.collect();
|
let files_vec: Vec<_> = files.collect();
|
||||||
if options.raw && files_vec.len() > 1 {
|
if options.raw && files_vec.len() > 1 {
|
||||||
return Err(Box::new(CkSumError::RawMultipleFiles));
|
return Err(Box::new(CkSumError::RawMultipleFiles));
|
||||||
}
|
}
|
||||||
|
|
|
@ -286,3 +286,25 @@ fn test_length_is_zero() {
|
||||||
.no_stderr()
|
.no_stderr()
|
||||||
.stdout_is_fixture("length_is_zero.expected");
|
.stdout_is_fixture("length_is_zero.expected");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_raw_single_file() {
|
||||||
|
new_ucmd!()
|
||||||
|
.arg("--raw")
|
||||||
|
.arg("lorem_ipsum.txt")
|
||||||
|
.succeeds()
|
||||||
|
.no_stderr()
|
||||||
|
.stdout_is_fixture("raw_single_file.expected");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_raw_multiple_files() {
|
||||||
|
new_ucmd!()
|
||||||
|
.arg("--raw")
|
||||||
|
.arg("lorem_ipsum.txt")
|
||||||
|
.arg("alice_in_wonderland.txt")
|
||||||
|
.fails()
|
||||||
|
.no_stdout()
|
||||||
|
.stderr_contains("cksum: the --raw option is not supported with multiple files")
|
||||||
|
.code_is(1);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue