* Add SMACK support for ls utility
* More idiomatic match statement
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
* More idiomatic match statement for getting label
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
* ls: fix smack formatting and cache is_smack_enabled result
* ls: use translate!() macro for SELinux warning messages
* Move SMACK locale strings to ls-specific locale file to avoid performance regression
---------
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
* Adding fixes for i-3 GNU tests related to tty output when file is not writeable
* Removed translation zero stripping hack and fixed clippy and spelling errors
* Removed unused windows import
* Addressing comments and cleaning up tests
* Spellcheck fixes
* Replacing helper function in other places too
* mv: address review comments - reorder enum, cache mode, safer defaults
* wc: align SIMD policy integration
- use SimdPolicy::detect with hardware feature labeling
- keep SIMD behavior respecting GLIBC_TUNABLES
- consolidate wc SIMD debug output and tests
* refactor(wc): simplify SIMD feature collection in debug output
- Changed multi-line SIMD feature vector creation to a single-line expression for improved readability and consistency with surrounding code.
- No functional changes; only stylistic refactoring in the wc debug logic.
* feat(wc): enhance debug output for SIMD hardware support limitations
Add new localization strings and logic to provide detailed debug information when SIMD support is limited by GLIBC_TUNABLES, including lists of disabled and enabled features. Refactor SIMD allowance check for better accuracy in detecting runtime support.
* refactor: consolidate SIMD feature handling in wc command
Refactor SIMD feature detection and reporting in the wc utility by introducing a WcSimdFeatures struct to group enabled, disabled, and runtime-disabled features. This replaces multiple separate functions with a single function, improving code organization and efficiency by reducing redundant iterations over feature lists. Also rename helper functions for clarity and update debug output logic accordingly.
* Update src/uu/wc/src/wc.rs
Co-authored-by: Dorian Péron <72708393+RenjiSann@users.noreply.github.com>
* Update src/uu/wc/locales/en-US.ftl
Co-authored-by: Dorian Péron <72708393+RenjiSann@users.noreply.github.com>
* Update src/uu/wc/locales/fr-FR.ftl
Co-authored-by: Dorian Péron <72708393+RenjiSann@users.noreply.github.com>
* feat(wc): import show_error for enhanced error reporting
Add the show_error import from uucore to enable better error handling in the wc utility, allowing for consistent error messages in line with the project's style.
---------
Co-authored-by: Dorian Péron <72708393+RenjiSann@users.noreply.github.com>
* stty: Add 101 unit tests and 16 integration tests to improve coverage
Add comprehensive test coverage for stty:
Unit tests (src/uu/stty/src/stty.rs):
- Flag struct methods and builder pattern (7 tests)
- Control character parsing and formatting (19 tests)
- All combination settings expansion (26 tests)
- Termios modification functions (13 tests)
- String-to-flag/combo/baud parsing (19 tests)
- TermiosFlag trait implementations (5 tests)
- Helper and utility functions (10 tests)
- Trait implementations (2 tests)
Integration tests (tests/by-util/test_stty.rs):
- Help and version output validation (2 tests)
- Invalid argument handling (3 tests)
- Control character overflow validation (2 tests)
- Grouped flag removal validation (1 test)
- File argument error handling (1 test)
- Conflicting print modes (1 test)
- Additional TTY-dependent tests (6 tests, ignored in CI)
Unit test coverage improved from 0% to 43.76% (207/473 lines).
Integration tests validate argument parsing and error handling.
Addresses #9061
* stty: Add essential unit tests and integration tests to improve coverage
- Added 11 essential unit tests for complex internal functions:
* Control character parsing (string_to_control_char)
* Control character formatting (control_char_to_string)
* Combination settings expansion (combo_to_flags)
* Terminal size parsing with overflow handling (parse_rows_cols)
* Sane control character defaults (get_sane_control_char)
- Added 16 integration tests for command behavior:
* Help/version output validation
* Invalid argument handling
* Control character overflow validation
* Grouped flag removal validation
* File argument error handling
* Conflicting print modes
* TTY-dependent tests (marked as ignored for CI)
Unit tests focus on complex parsing logic that's difficult to test via
integration tests. Integration tests validate actual command behavior.
Coverage improved from 0% to 43.76% (207/473 lines).
Fixes#9061
* stty: Add comprehensive unit and integration tests for error handling
- Add unit tests for parse_rows_cols() with edge cases and wraparound
- Add unit tests for string_to_baud() with platform-specific handling
- Add unit tests for string_to_combo() with all combo modes
- Add 17 integration tests for missing arguments and invalid inputs
- Enhance test_invalid_arg() with better error message assertions
- Update coverage script for improved reporting
Coverage improved from 22.26% to 23.14% regions.
* stty: Add Debug and PartialEq derives for test assertions
- Add #[derive(Debug, PartialEq)] to AllFlags enum
- Add PartialEq to Flag struct derives
- Enables assert_eq! macro usage in unit tests
* stty: Fix formatting and clippy warnings in tests
- Replace assert_eq! with assert! for boolean comparisons
- Fix line wrapping for long logical expressions
- Use inline format string syntax (e.g., {err} instead of {})
- All 25 unit tests pass
- No clippy warnings
* stty: Add inline spell-checker ignores for test strings
- Add spell-checker:ignore comments for test data (notachar, notabaud, susp)
- Add spell-checker:ignore comments for French error strings (Valeur, entier, invalide)
- Fixes cspell validation without modifying global config
* perf: gate PartialEq derive to test builds only
The PartialEq derive was being compiled into release builds even though
it's only used in test code. This caused a 3.33% performance regression
in the du_human_balanced_tree benchmark due to increased binary size
affecting CPU cache efficiency.
Changes:
- stty.rs: Gate PartialEq derive on Flag<T> with #[cfg_attr(test, derive(PartialEq))]
- flags.rs: Gate PartialEq derive on AllFlags enum with #[cfg_attr(test, derive(PartialEq))]
This eliminates the performance regression while keeping all test code
functional and unchanged.
---------
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
* feat(env): add signal handling options and logging
- Add default-signal, block-signal, and list-signal-handling options
- Support specifying, tracking, and reporting signal handling changes
- Update en-US and fr-FR locales to document new signal options
* feat: Add `__ALL__` signal option, improve signal argument parsing, and prevent ignoring uncatchable signals.
* fix: Preserve inherited SIGPIPE behavior using `RUST_SIGPIPE` environment variable and `uucore`'s new handler.
* style: reformat code, reorder imports, and remove trailing blank lines
* chore: update spell-checker ignore lists for technical terms
Added 'Sigmask' to ignore list in env.rs and 'sighandler' in test_env.rs to suppress false positives from spell-checker on legitimate specialized words.
* fix(env): Skip invalid signals instead of failing
Previously, the signal handling functions (`apply_default_signal`, `apply_ignore_signal`, and `apply_block_signal`) would return an error if `signal_from_value` got an invalid signal. This change modifies the code to skip invalid signals and continue processing, aligning with GNU env's behavior of ignoring undefined signals on certain platforms where `ALL_SIGNALS` may include invalid values. This improves compatibility and robustness.
* stty: Wrap parameters when using --all
Do the same as GNU stty when it has to prints the parameter, doing
proper text wrapping
* Adding integration tests for the COLUMNS env variable support in stty
* Adding integration tests for the COLUMNS env variable support in stty
---------
Co-authored-by: Marco Trevisan (Treviño) <mail@3v1n0.net>
* Implemented hex and octal parsing for row columns for stty
* Adding more test cases with different upper and lowercase values
* stty: use ExtendedParser for hex/octal row/col parsing