No successful run was found on main (8983b90) during the generation of this report, so 677fd95 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.
Benchmarks
Passed
du_max_depth_balanced_tree[(6, 4, 10)]
src/uu/du/benches/du_bench.rs
+1%
33.3 ms33 ms
sort_reverse_locale[500000]
src/uu/sort/benches/sort_bench.rs
+1%
363.9 ms361.5 ms
du_all_balanced_tree[(4, 3, 10)]
src/uu/du/benches/du_bench.rs
+1%
1.6 ms1.6 ms
tsort_input_parsing_heavy[5000]
src/uu/tsort/benches/tsort_bench.rs
+1%
120.3 ms119.7 ms
sort_ascii_only[500000]
src/uu/sort/benches/sort_bench.rs
0%
355.4 ms353.6 ms
du_human_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
0%
10.5 ms10.4 ms
cp_large_file[16]
src/uu/cp/benches/cp_bench.rs
0%
343.7 µs342.4 µs
sort_key_field[500000]
src/uu/sort/benches/sort_bench.rs
0%
700.1 ms698.9 ms
du_summarize_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
0%
8.4 ms8.4 ms
du_all_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
0%
18.2 ms18.2 ms
du_deep_tree[(100, 3)]
src/uu/du/benches/du_bench.rs
0%
1.2 ms1.2 ms
cp_preserve_metadata[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
74.9 ms74.8 ms
sort_german_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
39.1 ms39.1 ms
sort_numeric[500000]
src/uu/sort/benches/sort_bench.rs
0%
1.2 s1.2 s
sort_german_c_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
38.4 ms38.4 ms
ls_recursive_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
0%
56.4 ms56.3 ms
cp_recursive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
72.2 ms72.2 ms
tsort_complex_dag[50000]
src/uu/tsort/benches/tsort_bench.rs
0%
84.6 ms84.6 ms
cp_recursive_wide_tree[(6000, 800)]
src/uu/cp/benches/cp_bench.rs
0%
189.1 ms189.1 ms
ls_recursive_long_all_mixed_tree
src/uu/ls/benches/ls_bench.rs
0%
2.8 ms2.8 ms
du_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
0%
11.3 ms11.3 ms
split_numeric_suffix
src/uu/split/benches/split_bench.rs
0%
5.9 ms5.9 ms
uniq_heavy_duplicates[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.9 ms1.9 ms
ls_recursive_mixed_tree
src/uu/ls/benches/ls_bench.rs
0%
1.4 ms1.4 ms
sort_numeric
src/uu/sort/benches/sort_locale_bench.rs
0%
23.2 ms23.2 ms
cut_characters
src/uu/cut/benches/cut_bench.rs
0%
7.5 ms7.5 ms
rm_single_file
src/uu/rm/benches/rm_bench.rs
0%
106.5 ms106.5 ms
cut_bytes
src/uu/cut/benches/cut_bench.rs
0%
8.5 ms8.5 ms
uniq_with_count[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.9 ms1.9 ms
mv_force_overwrite
src/uu/mv/benches/mv_bench.rs
0%
125.1 ms125.1 ms
ls_recursive_long_all_wide_tree[(15000, 1500)]
src/uu/ls/benches/ls_bench.rs
0%
142.4 ms142.4 ms
cut_fields_tab
src/uu/cut/benches/cut_bench.rs
0%
34.1 ms34.1 ms
numfmt_padding[(10000, 50)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
47.8 ms47.8 ms
seq_with_step
src/uu/seq/benches/seq_bench.rs
0%
13.3 ms13.3 ms
mv_directory
src/uu/mv/benches/mv_bench.rs
0%
3.5 ms3.5 ms
numfmt_round_modes[("up", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.6 ms34.6 ms
sort_mixed_data[500000]
src/uu/sort/benches/sort_bench.rs
0%
327.3 ms327.3 ms
wc_lines_extreme_line_lengths[(100000, 200)]
src/uu/wc/benches/wc_bench.rs
0%
1.6 ms1.6 ms
numfmt_round_modes[("towards-zero", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.7 ms34.7 ms
sort_accented_data[500000]
src/uu/sort/benches/sort_bench.rs
0%
362.4 ms362.4 ms
numfmt_from_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
33.4 ms33.4 ms
cksum_default
src/uu/cksum/benches/cksum_bench.rs
0%
17.7 ms17.7 ms
seq_integers
src/uu/seq/benches/seq_bench.rs
0%
26.1 ms26.1 ms
seq_custom_separator
src/uu/seq/benches/seq_bench.rs
0%
28.7 ms28.7 ms
numfmt_round_modes[("down", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.6 ms34.6 ms
hashsum_md5_check
src/uu/hashsum/benches/hashsum_bench.rs
0%
32 ms32 ms
seq_formatted
src/uu/seq/benches/seq_bench.rs
0%
97.2 ms97.2 ms
fold_many_lines[100000]
src/uu/fold/benches/fold_bench.rs
0%
116.2 ms116.2 ms
cut_fields_custom_delim
src/uu/cut/benches/cut_bench.rs
0%
40.7 ms40.7 ms
unexpand_many_lines[100000]
src/uu/unexpand/benches/unexpand_bench.rs
0%
262 ms262 ms
unexpand_large_file[10]
src/uu/unexpand/benches/unexpand_bench.rs
0%
549.3 ms549.3 ms
wc_words_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
0%
11.4 s11.4 s
cksum_shake128
src/uu/cksum/benches/cksum_bench.rs
0%
1.5 s1.5 s
cksum_shake256
src/uu/cksum/benches/cksum_bench.rs
0%
1.9 s1.9 s
numfmt_large_numbers_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
32.9 ms32.9 ms
cksum_sha2
src/uu/cksum/benches/cksum_bench.rs
0%
1.7 s1.7 s
cksum_sha224
src/uu/cksum/benches/cksum_bench.rs
0%
1.7 s1.7 s
cksum_sha384
src/uu/cksum/benches/cksum_bench.rs
0%
1.1 s1.1 s
cksum_sha512
src/uu/cksum/benches/cksum_bench.rs
0%
1.1 s1.1 s
cksum_sha3
src/uu/cksum/benches/cksum_bench.rs
0%
1.8 s1.8 s
cksum_sm3
src/uu/cksum/benches/cksum_bench.rs
0%
1.6 s1.6 s
cksum_sha256
src/uu/cksum/benches/cksum_bench.rs
0%
1.7 s1.7 s
expand_many_lines[100000]
src/uu/expand/benches/expand_bench.rs
0%
148.1 ms148.1 ms
wc_bytes_lines_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
0%
120.2 ms120.2 ms
cksum_sha1
src/uu/cksum/benches/cksum_bench.rs
0%
722.9 ms722.9 ms
cksum_md5
src/uu/cksum/benches/cksum_bench.rs
0%
317.8 ms317.8 ms
cksum_blake2b
src/uu/cksum/benches/cksum_bench.rs
0%
192.9 ms192.9 ms
cksum_bsd
src/uu/cksum/benches/cksum_bench.rs
0%
128.1 ms128.1 ms
cksum_blake3
src/uu/cksum/benches/cksum_bench.rs
0%
95.7 ms95.7 ms
expand_custom_tabstops[50000]
src/uu/expand/benches/expand_bench.rs
0%
36.6 ms36.6 ms
hashsum_sha256_check
src/uu/hashsum/benches/hashsum_bench.rs
0%
173.6 ms173.6 ms
cksum_sysv
src/uu/cksum/benches/cksum_bench.rs
0%
48 ms48 ms
cksum_raw_output
src/uu/cksum/benches/cksum_bench.rs
0%
17.8 ms17.8 ms
nl_large_file[10]
src/uu/nl/benches/nl_bench.rs
0%
100.9 ms100.9 ms
nl_many_lines[100000]
src/uu/nl/benches/nl_bench.rs
0%
79.8 ms79.8 ms
cksum_crc
src/uu/cksum/benches/cksum_bench.rs
0%
17.8 ms17.8 ms
fold_custom_width[50000]
src/uu/fold/benches/fold_bench.rs
0%
43.4 ms43.4 ms
wc_default_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
50.4 ms50.4 ms
numfmt_to_si_precision[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
35.5 ms35.5 ms
wc_words_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
47.9 ms47.9 ms
tsort_tree_dag[(10, 3)]
src/uu/tsort/benches/tsort_bench.rs
0%
34.4 ms34.4 ms
wc_lines_variable_length[(50, 500)]
src/uu/wc/benches/wc_bench.rs
0%
3.4 ms3.4 ms
cksum_crc32b
src/uu/cksum/benches/cksum_bench.rs
0%
14.1 ms14.1 ms
cksum_multiple_files
src/uu/cksum/benches/cksum_bench.rs
0%
26.6 ms26.6 ms
sort_mixed_c_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
38.3 ms38.3 ms
wc_lines_large_line_count[500000]
src/uu/wc/benches/wc_bench.rs
0%
2.9 ms2.9 ms
numfmt_to_iec[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.2 ms34.2 ms
numfmt_to_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.2 ms34.2 ms
rm_recursive_tree
src/uu/rm/benches/rm_bench.rs
0%
13.6 ms13.6 ms
sort_long_line[160000]
src/uu/sort/benches/sort_bench.rs
0%
1.6 ms1.6 ms
ls_recursive_wide_tree[(10000, 1000)]
src/uu/ls/benches/ls_bench.rs
0%
53 ms53 ms
tsort_wide_dag[100000]
src/uu/tsort/benches/tsort_bench.rs
0%
134.6 ms134.6 ms
rm_force_files
src/uu/rm/benches/rm_bench.rs
0%
2.1 ms2.1 ms
sort_case_sensitive[500000]
src/uu/sort/benches/sort_bench.rs
0%
174.2 ms174.2 ms
split_lines
src/uu/split/benches/split_bench.rs
0%
5.7 ms5.7 ms
tsort_linear_chain[1000000]
src/uu/tsort/benches/tsort_bench.rs
0%
1.5 s1.5 s
sort_ascii_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
43 ms43.1 ms
rm_multiple_files
src/uu/rm/benches/rm_bench.rs
0%
2.3 ms2.3 ms
ls_recursive_long_all_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
0%
136.3 ms136.3 ms
hashsum_sha256
src/uu/hashsum/benches/hashsum_bench.rs
0%
173.6 ms173.6 ms
uniq_case_insensitive[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.7 ms1.7 ms
sort_ascii_c_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
21.5 ms21.5 ms
hashsum_sha1
src/uu/hashsum/benches/hashsum_bench.rs
0%
72.5 ms72.5 ms
ls_recursive_deep_tree[(200, 2)]
src/uu/ls/benches/ls_bench.rs
0%
2.2 ms2.2 ms
wc_chars_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
994.5 µs994.6 µs
hashsum_sha512
src/uu/hashsum/benches/hashsum_bench.rs
0%
110.8 ms110.8 ms
sort_case_insensitive[500000]
src/uu/sort/benches/sort_bench.rs
0%
278.6 ms278.6 ms
mv_single_file
src/uu/mv/benches/mv_bench.rs
0%
129.6 ms129.6 ms
hashsum_md5
src/uu/hashsum/benches/hashsum_bench.rs
0%
32 ms32 ms
sort_unique_locale[500000]
src/uu/sort/benches/sort_bench.rs
0%
494 ms494.1 ms
split_number_chunks
src/uu/split/benches/split_bench.rs
0%
275.6 µs275.7 µs
sort_reverse_mixed
src/uu/sort/benches/sort_locale_bench.rs
0%
39.1 ms39.1 ms
ls_recursive_long_all_deep_tree[(100, 4)]
src/uu/ls/benches/ls_bench.rs
0%
3.2 ms3.2 ms
cp_archive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
77.8 ms77.9 ms
sort_mixed_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
38.8 ms38.8 ms
wc_bytes_synthetic[500]
src/uu/wc/benches/wc_bench.rs
0%
164.2 µs164.2 µs
b64_decode_synthetic
src/uu/base64/benches/base64_bench.rs
0%
149.2 µs149.3 µs
b64_encode_synthetic
src/uu/base64/benches/base64_bench.rs
0%
146 µs146.1 µs
b64_decode_ignore_garbage_synthetic
src/uu/base64/benches/base64_bench.rs
0%
149.8 µs149.9 µs
split_bytes
src/uu/split/benches/split_bench.rs
0%
505.4 µs505.6 µs
sort_unique_mixed
src/uu/sort/benches/sort_locale_bench.rs
0%
39.3 ms39.3 ms
sort_dictionary_order[500000]
src/uu/sort/benches/sort_bench.rs
0%
1.1 s1.1 s
mv_multiple_to_dir
src/uu/mv/benches/mv_bench.rs
0%
13.1 ms13.1 ms
cp_recursive_deep_tree[(120, 4)]
src/uu/cp/benches/cp_bench.rs
0%
13.6 ms13.6 ms
du_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
-1%
9.2 ms9.3 ms
Commits
Click on a commit to change the comparison range
Base
main
677fd95
+0.01%
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
4c9058a
1 month ago
by naoNao89
-31.87%
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
faf10db
1 month ago
by naoNao89
0%
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.
dc369f8
1 month ago
by naoNao89
0%
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
7a9cd6b
1 month ago
by naoNao89
0%
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
fde8525
1 month ago
by naoNao89
+31.87%
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
670b14b
1 month ago
by naoNao89
+0.02%
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.