mirror of
https://github.com/uutils/coreutils.git
synced 2025-12-23 08:47:37 +00:00
base32, base64, basenc: Simplifying the base encoding uu_app and adding basic buffer tests (#9409)
Some checks are pending
CICD / Style/cargo-deny (push) Waiting to run
CICD / Style/deps (push) Waiting to run
CICD / Documentation/warnings (push) Waiting to run
CICD / MinRustV (push) Waiting to run
CICD / Dependencies (push) Waiting to run
CICD / Build/Makefile (push) Blocked by required conditions
CICD / Build/stable (push) Blocked by required conditions
CICD / Build/nightly (push) Blocked by required conditions
CICD / Binary sizes (push) Blocked by required conditions
CICD / Build (push) Blocked by required conditions
CICD / Tests/BusyBox test suite (push) Blocked by required conditions
CICD / Tests/Toybox test suite (push) Blocked by required conditions
CICD / Code Coverage (push) Waiting to run
CICD / Separate Builds (push) Waiting to run
CICD / Test all features separately (push) Blocked by required conditions
CICD / Build/SELinux (push) Blocked by required conditions
CICD / Build/SELinux-Stubs (Non-Linux) (push) Blocked by required conditions
CICD / Safe Traversal Security Check (push) Blocked by required conditions
GnuTests / Run GNU tests (native) (push) Waiting to run
GnuTests / Run GNU tests (SELinux) (push) Waiting to run
GnuTests / Aggregate GNU test results (push) Blocked by required conditions
Android / Test builds (push) Waiting to run
Benchmarks / Run benchmarks (CodSpeed) (push) Waiting to run
Code Quality / Style/format (push) Waiting to run
Code Quality / Style/lint (push) Waiting to run
Code Quality / Style/spelling (push) Waiting to run
Code Quality / Style/toml (push) Waiting to run
Code Quality / Style/Python (push) Waiting to run
Code Quality / Pre-commit hooks (push) Waiting to run
Devcontainer / Verify devcontainer (push) Waiting to run
FreeBSD / Style and Lint (push) Waiting to run
FreeBSD / Tests (push) Waiting to run
OpenBSD / Style and Lint (push) Waiting to run
OpenBSD / Tests (push) Waiting to run
WSL2 / Test (push) Waiting to run
Some checks are pending
CICD / Style/cargo-deny (push) Waiting to run
CICD / Style/deps (push) Waiting to run
CICD / Documentation/warnings (push) Waiting to run
CICD / MinRustV (push) Waiting to run
CICD / Dependencies (push) Waiting to run
CICD / Build/Makefile (push) Blocked by required conditions
CICD / Build/stable (push) Blocked by required conditions
CICD / Build/nightly (push) Blocked by required conditions
CICD / Binary sizes (push) Blocked by required conditions
CICD / Build (push) Blocked by required conditions
CICD / Tests/BusyBox test suite (push) Blocked by required conditions
CICD / Tests/Toybox test suite (push) Blocked by required conditions
CICD / Code Coverage (push) Waiting to run
CICD / Separate Builds (push) Waiting to run
CICD / Test all features separately (push) Blocked by required conditions
CICD / Build/SELinux (push) Blocked by required conditions
CICD / Build/SELinux-Stubs (Non-Linux) (push) Blocked by required conditions
CICD / Safe Traversal Security Check (push) Blocked by required conditions
GnuTests / Run GNU tests (native) (push) Waiting to run
GnuTests / Run GNU tests (SELinux) (push) Waiting to run
GnuTests / Aggregate GNU test results (push) Blocked by required conditions
Android / Test builds (push) Waiting to run
Benchmarks / Run benchmarks (CodSpeed) (push) Waiting to run
Code Quality / Style/format (push) Waiting to run
Code Quality / Style/lint (push) Waiting to run
Code Quality / Style/spelling (push) Waiting to run
Code Quality / Style/toml (push) Waiting to run
Code Quality / Style/Python (push) Waiting to run
Code Quality / Pre-commit hooks (push) Waiting to run
Devcontainer / Verify devcontainer (push) Waiting to run
FreeBSD / Style and Lint (push) Waiting to run
FreeBSD / Tests (push) Waiting to run
OpenBSD / Style and Lint (push) Waiting to run
OpenBSD / Tests (push) Waiting to run
WSL2 / Test (push) Waiting to run
* Simplifying the base encoding uu_app and adding basic buffer tests * Added an ignore for the spell checker on base encoding output
This commit is contained in:
parent
d3d16d9adb
commit
a7e4e91fb1
5 changed files with 19 additions and 36 deletions
|
|
@ -10,20 +10,11 @@ use uucore::{encoding::Format, error::UResult, translate};
|
|||
|
||||
#[uucore::main]
|
||||
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
||||
let format = Format::Base32;
|
||||
let (about, usage) = get_info();
|
||||
let config = base_common::parse_base_cmd_args(args, about, usage)?;
|
||||
let config = base_common::parse_base_cmd_args(args, uu_app())?;
|
||||
let mut input = base_common::get_input(&config)?;
|
||||
base_common::handle_input(&mut input, format, config)
|
||||
base_common::handle_input(&mut input, Format::Base32, config)
|
||||
}
|
||||
|
||||
pub fn uu_app() -> Command {
|
||||
let (about, usage) = get_info();
|
||||
base_common::base_app(about, usage)
|
||||
}
|
||||
|
||||
fn get_info() -> (&'static str, &'static str) {
|
||||
let about: &'static str = Box::leak(translate!("base32-about").into_boxed_str());
|
||||
let usage: &'static str = Box::leak(translate!("base32-usage").into_boxed_str());
|
||||
(about, usage)
|
||||
base_common::base_app(translate!("base32-about"), translate!("base32-usage"))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,21 +97,16 @@ impl Config {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn parse_base_cmd_args(
|
||||
args: impl uucore::Args,
|
||||
about: &'static str,
|
||||
usage: &str,
|
||||
) -> UResult<Config> {
|
||||
let command = base_app(about, usage);
|
||||
pub fn parse_base_cmd_args(args: impl uucore::Args, command: Command) -> UResult<Config> {
|
||||
let matches = uucore::clap_localization::handle_clap_result(command, args)?;
|
||||
Config::from(&matches)
|
||||
}
|
||||
|
||||
pub fn base_app(about: &'static str, usage: &str) -> Command {
|
||||
pub fn base_app(about: String, usage: String) -> Command {
|
||||
let cmd = Command::new(uucore::util_name())
|
||||
.version(uucore::crate_version!())
|
||||
.about(about)
|
||||
.override_usage(format_usage(usage))
|
||||
.override_usage(format_usage(&usage))
|
||||
.infer_long_args(true);
|
||||
uucore::clap_localization::configure_localized_command(cmd)
|
||||
// Format arguments.
|
||||
|
|
|
|||
|
|
@ -10,20 +10,11 @@ use uucore::{encoding::Format, error::UResult};
|
|||
|
||||
#[uucore::main]
|
||||
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
||||
let format = Format::Base64;
|
||||
let (about, usage) = get_info();
|
||||
let config = base_common::parse_base_cmd_args(args, about, usage)?;
|
||||
let config = base_common::parse_base_cmd_args(args, uu_app())?;
|
||||
let mut input = base_common::get_input(&config)?;
|
||||
base_common::handle_input(&mut input, format, config)
|
||||
base_common::handle_input(&mut input, Format::Base64, config)
|
||||
}
|
||||
|
||||
pub fn uu_app() -> Command {
|
||||
let (about, usage) = get_info();
|
||||
base_common::base_app(about, usage)
|
||||
}
|
||||
|
||||
fn get_info() -> (&'static str, &'static str) {
|
||||
let about: &'static str = Box::leak(translate!("base64-about").into_boxed_str());
|
||||
let usage: &'static str = Box::leak(translate!("base64-usage").into_boxed_str());
|
||||
(about, usage)
|
||||
base_common::base_app(translate!("base64-about"), translate!("base64-usage"))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,11 +44,8 @@ fn get_encodings() -> Vec<(&'static str, Format, String)> {
|
|||
}
|
||||
|
||||
pub fn uu_app() -> Command {
|
||||
let about: &'static str = Box::leak(translate!("basenc-about").into_boxed_str());
|
||||
let usage: &'static str = Box::leak(translate!("basenc-usage").into_boxed_str());
|
||||
|
||||
let encodings = get_encodings();
|
||||
let mut command = base_common::base_app(about, usage);
|
||||
let mut command = base_common::base_app(translate!("basenc-about"), translate!("basenc-usage"));
|
||||
|
||||
for encoding in &encodings {
|
||||
let raw_arg = Arg::new(encoding.0)
|
||||
|
|
|
|||
|
|
@ -150,3 +150,12 @@ fn test_base32_file_not_found() {
|
|||
.fails()
|
||||
.stderr_only("base32: a.txt: No such file or directory\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_encode_large_input_is_buffered() {
|
||||
let input = "A".repeat(6000);
|
||||
new_ucmd!()
|
||||
.pipe_in(input)
|
||||
.succeeds()
|
||||
.stdout_contains("BIFAUCQK"); // spell-checker:disable-line
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue