1 archived benchmarks were run. If they were deleted in another branch, consider rebasing to remove them from the report. .
Passed
du_human_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
0%
10.5 ms10.5 ms
du_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
0%
9.3 ms9.3 ms
du_max_depth_balanced_tree[(6, 4, 10)]
src/uu/du/benches/du_bench.rs
0%
33 ms33 ms
b64_encode_synthetic
src/uu/base64/benches/base64_bench.rs
0%
145.1 µs145.1 µs
cp_preserve_metadata[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
74.2 ms74.2 ms
sort_numeric[500000]
src/uu/sort/benches/sort_bench.rs
0%
1.2 s1.2 s
cp_archive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
77.1 ms77.1 ms
cp_large_file[16]
src/uu/cp/benches/cp_bench.rs
0%
297.7 µs297.6 µs
mv_force_overwrite
src/uu/mv/benches/mv_bench.rs
0%
121.8 ms121.8 ms
ls_recursive_deep_tree[(200, 2)]
src/uu/ls/benches/ls_bench.rs
0%
2.1 ms2.1 ms
rm_single_file
src/uu/rm/benches/rm_bench.rs
0%
106.9 ms106.9 ms
mv_single_file
src/uu/mv/benches/mv_bench.rs
0%
131.3 ms131.3 ms
sort_german_c_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
39 ms39 ms
tsort_tree_dag[(10, 3)]
src/uu/tsort/benches/tsort_bench.rs
0%
34.1 ms34.1 ms
split_number_chunks
src/uu/split/benches/split_bench.rs
0%
275.1 µs275 µs
ls_recursive_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
0%
55.8 ms55.8 ms
ls_recursive_long_all_deep_tree[(100, 4)]
src/uu/ls/benches/ls_bench.rs
0%
3.2 ms3.2 ms
hashsum_sha512
src/uu/hashsum/benches/hashsum_bench.rs
0%
111.7 ms111.7 ms
sort_case_sensitive[500000]
src/uu/sort/benches/sort_bench.rs
0%
173.7 ms173.7 ms
split_numeric_suffix
src/uu/split/benches/split_bench.rs
0%
6.1 ms6.1 ms
mv_directory
src/uu/mv/benches/mv_bench.rs
0%
3.1 ms3.1 ms
ls_recursive_mixed_tree
src/uu/ls/benches/ls_bench.rs
0%
1.4 ms1.4 ms
wc_lines_extreme_line_lengths[(100000, 200)]
src/uu/wc/benches/wc_bench.rs
0%
1.6 ms1.6 ms
sort_reverse_locale[500000]
src/uu/sort/benches/sort_bench.rs
0%
361 ms361 ms
wc_lines_variable_length[(50, 500)]
src/uu/wc/benches/wc_bench.rs
0%
3.4 ms3.4 ms
wc_bytes_synthetic[500]
src/uu/wc/benches/wc_bench.rs
0%
163.5 µs163.5 µs
sort_mixed_c_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
38.9 ms38.9 ms
sort_ascii_only[500000]
src/uu/sort/benches/sort_bench.rs
0%
353.1 ms353.1 ms
tsort_linear_chain[1000000]
src/uu/tsort/benches/tsort_bench.rs
0%
1.5 s1.5 s
wc_chars_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
993.7 µs993.7 µs
rm_multiple_files
src/uu/rm/benches/rm_bench.rs
0%
2.2 ms2.2 ms
cut_bytes
src/uu/cut/benches/cut_bench.rs
0%
8.4 ms8.4 ms
numfmt_round_modes[("up", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
32.8 ms32.8 ms
numfmt_to_si_precision[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
35.4 ms35.4 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 ms34 ms
numfmt_round_modes[("towards-zero", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.5 ms34.5 ms
wc_words_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
43.8 ms43.8 ms
hashsum_md5_check
src/uu/hashsum/benches/hashsum_bench.rs
0%
32 ms32 ms
rm_recursive_tree
src/uu/rm/benches/rm_bench.rs
0%
13.8 ms13.8 ms
numfmt_large_numbers_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.5 ms34.5 ms
nl_large_file[10]
src/uu/nl/benches/nl_bench.rs
0%
100.8 ms100.8 ms
wc_default_large_line_count[100000]
src/uu/wc/benches/wc_bench.rs
0%
48.9 ms48.9 ms
numfmt_padding[(10000, 50)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
47 ms47 ms
hashsum_md5
src/uu/hashsum/benches/hashsum_bench.rs
0%
32 ms32 ms
numfmt_round_modes[("down", 10000)]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34.6 ms34.6 ms
cut_fields_tab
src/uu/cut/benches/cut_bench.rs
0%
33.9 ms33.9 ms
wc_bytes_lines_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
0%
120.2 ms120.2 ms
sort_case_insensitive[500000]
src/uu/sort/benches/sort_bench.rs
0%
282.6 ms282.6 ms
hashsum_sha1
src/uu/hashsum/benches/hashsum_bench.rs
0%
72.5 ms72.5 ms
hashsum_sha256
src/uu/hashsum/benches/hashsum_bench.rs
0%
173.6 ms173.6 ms
hashsum_sha256_check
src/uu/hashsum/benches/hashsum_bench.rs
0%
173.6 ms173.6 ms
wc_words_synthetic[2000]
src/uu/wc/benches/wc_bench.rs
0%
10.3 s10.3 s
fold_many_lines[100000]
src/uu/fold/benches/fold_bench.rs
0%
125.4 ms125.4 ms
expand_many_lines[100000]
src/uu/expand/benches/expand_bench.rs
0%
100.9 ms100.9 ms
sort_accented_data[500000]
src/uu/sort/benches/sort_bench.rs
0%
361.9 ms361.9 ms
unexpand_large_file[10]
src/uu/unexpand/benches/unexpand_bench.rs
0%
548 ms548 ms
nl_many_lines[100000]
src/uu/nl/benches/nl_bench.rs
0%
79.7 ms79.7 ms
unexpand_many_lines[100000]
src/uu/unexpand/benches/unexpand_bench.rs
0%
261.4 ms261.4 ms
expand_custom_tabstops[50000]
src/uu/expand/benches/expand_bench.rs
0%
25.9 ms25.9 ms
numfmt_to_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
34 ms34 ms
cut_fields_custom_delim
src/uu/cut/benches/cut_bench.rs
0%
40.5 ms40.5 ms
numfmt_from_si[10000]
src/uu/numfmt/benches/numfmt_bench.rs
0%
33.2 ms33.2 ms
fold_custom_width[50000]
src/uu/fold/benches/fold_bench.rs
0%
46.6 ms46.6 ms
ls_recursive_long_all_balanced_tree[(6, 4, 15)]
src/uu/ls/benches/ls_bench.rs
0%
139.7 ms139.7 ms
cp_recursive_wide_tree[(6000, 800)]
src/uu/cp/benches/cp_bench.rs
0%
188.3 ms188.3 ms
seq_formatted
src/uu/seq/benches/seq_bench.rs
0%
99.7 ms99.7 ms
cut_characters
src/uu/cut/benches/cut_bench.rs
0%
7.5 ms7.5 ms
seq_custom_separator
src/uu/seq/benches/seq_bench.rs
0%
29.2 ms29.2 ms
sort_unique_locale[500000]
src/uu/sort/benches/sort_bench.rs
0%
482.4 ms482.4 ms
seq_integers
src/uu/seq/benches/seq_bench.rs
0%
26.7 ms26.7 ms
ls_recursive_wide_tree[(10000, 1000)]
src/uu/ls/benches/ls_bench.rs
0%
51.3 ms51.3 ms
sort_key_field[500000]
src/uu/sort/benches/sort_bench.rs
0%
716.9 ms716.9 ms
seq_with_step
src/uu/seq/benches/seq_bench.rs
0%
13.6 ms13.6 ms
split_bytes
src/uu/split/benches/split_bench.rs
0%
499.1 µs499.1 µs
sort_ascii_c_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
22.5 ms22.5 ms
uniq_heavy_duplicates[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.9 ms1.9 ms
uniq_with_count[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.8 ms1.8 ms
sort_ascii_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
44.3 ms44.3 ms
tsort_wide_dag[100000]
src/uu/tsort/benches/tsort_bench.rs
0%
135.2 ms135.2 ms
sort_numeric
src/uu/sort/benches/sort_locale_bench.rs
0%
23 ms23 ms
rm_force_files
src/uu/rm/benches/rm_bench.rs
0%
2.1 ms2.1 ms
uniq_case_insensitive[10000]
src/uu/uniq/benches/uniq_bench.rs
0%
1.7 ms1.7 ms
ls_recursive_long_all_wide_tree[(15000, 1500)]
src/uu/ls/benches/ls_bench.rs
0%
148.7 ms148.7 ms
split_lines
src/uu/split/benches/split_bench.rs
0%
6 ms6 ms
ls_recursive_long_all_mixed_tree
src/uu/ls/benches/ls_bench.rs
0%
4 ms4 ms
b64_decode_ignore_garbage_synthetic
src/uu/base64/benches/base64_bench.rs
0%
149.3 µs149.3 µs
sort_reverse_mixed
src/uu/sort/benches/sort_locale_bench.rs
0%
38.3 ms38.3 ms
mv_multiple_to_dir
src/uu/mv/benches/mv_bench.rs
0%
13.1 ms13.1 ms
b64_decode_synthetic
src/uu/base64/benches/base64_bench.rs
0%
148.5 µs148.5 µs
sort_mixed_utf8_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
38.9 ms38.9 ms
sort_german_locale
src/uu/sort/benches/sort_locale_bench.rs
0%
39 ms39 ms
du_deep_tree[(100, 3)]
src/uu/du/benches/du_bench.rs
0%
1.1 ms1.1 ms
tsort_complex_dag[50000]
src/uu/tsort/benches/tsort_bench.rs
0%
83.7 ms83.7 ms
cp_recursive_balanced_tree[(5, 4, 10)]
src/uu/cp/benches/cp_bench.rs
0%
71.7 ms71.7 ms
cp_recursive_deep_tree[(120, 4)]
src/uu/cp/benches/cp_bench.rs
0%
13.3 ms13.3 ms
du_all_balanced_tree[(4, 3, 10)]
src/uu/du/benches/du_bench.rs
0%
1.6 ms1.6 ms
sort_long_line[160000]
src/uu/sort/benches/sort_bench.rs
0%
1.9 ms1.9 ms
sort_unique_mixed
src/uu/sort/benches/sort_locale_bench.rs
0%
39.2 ms39.2 ms
sort_dictionary_order[500000]
src/uu/sort/benches/sort_bench.rs
0%
1.1 s1.1 s
du_all_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
0%
18.2 ms18.2 ms
sort_mixed_data[500000]
src/uu/sort/benches/sort_bench.rs
0%
327.2 ms328 ms
du_wide_tree[(5000, 500)]
src/uu/du/benches/du_bench.rs
0%
11.3 ms11.3 ms
du_summarize_balanced_tree[(5, 4, 10)]
src/uu/du/benches/du_bench.rs
0%
8.5 ms8.5 ms
Commits
Click on a commit to change the comparison range
Base
main
130bbf5
-0.01%
mkdir: fix stack overflow with deeply nested directories
Replaced recursive parent directory creation with iterative approach to prevent stack overflow when creating directories with 200+ nesting levels.
The previous recursive implementation consumed one stack frame per directory level, causing crashes on systems with limited stack size. The new implementation collects parent directories into a vector and creates them iteratively, using constant stack space regardless of depth.
All existing functionality preserved: verbose output, permissions, SELinux context, and ACLs.
Includes regression test for 350-level directory nesting.
365711a
27 days ago
by naoNao89
+0.01%
mkdir: implement all review feedback
- Fix critical "." component handling bug in recursive directory creation
- Optimize path processing to avoid O(C²) complexity
- Implement matches! macro pattern for idiomatic Rust
- Convert test to use PathBuf instead of String
- Move Windows-specific comment to correct function location
- Add comprehensive test coverage for "." and ".." path components
- Add test cases for special characters in paths (quotes)
- Remove redundant test comments per code review feedback
2d9373e
19 days ago
by naoNao89
0%
mkdir: add comprehensive edge case test suite
- Add test for control characters (newline, tab, backspace)
- Add test for maximum path length with graceful handling
- Add test for Windows reserved device names (CON, PRN, AUX, COM1, LPT1)
- Add test for trailing spaces and leading dots
- Add test for concurrent creation patterns
- Add test for case sensitivity across filesystems
- Add test for network paths (UNC-style)
- Add test for environment variable expansion (no expansion)
- Handle Windows compatibility for quotes in paths
344d9ae
18 days ago
by naoNao89
0%
mkdir: remove redundant comments in test_mkdir_environment_expansion
Removed obvious comments that just state what the code is clearly doing:
- '// Set an environment variable' before std::env::set_var
- '// Clean up' before std::env::remove_var
The code is self-explanatory and these comments add no value.
5e7c655
18 days ago
by naoNao89
+0.01%
chore(mkdir): fix assert statement formatting in Windows test
Fix rustfmt formatting violation in test_mkdir_control_characters.
The multi-line assert statement with OR condition was not properly
formatted according to the project's rustfmt configuration.
This resolves a CI formatting check failure.
eb2aee5
18 days ago
by naoNao89
-0.02%
chore(mkdir): fix misleading comment about backspace character
Correct inaccurate comment in test_mkdir_control_characters.
The test was actually checking space characters in directory names,
not backspace characters as the comment incorrectly stated.
This addresses reviewer feedback about the confusing comment.
9ddbca6
18 days ago
by naoNao89
+0.01%
fix(mkdir): remove Windows error message assertion in quote test
Windows test was failing because the error message for invalid directory
names with quotes doesn't contain the expected strings. Different Windows
versions and locales use different error messages.
The test now focuses on the core behavior:
- Unix: Should succeed and create directories with quotes
- Windows: Should fail and not create directories with quotes
This makes the test more robust across different Windows environments
while still verifying the platform-specific behavior.
17e031a
18 days ago
by naoNao89
0%
test(mkdir): add concurrent test case for mkdir -p
Add concurrent test based on Rust's std::fs::create_dir_all() pattern:
- 100 iterations, 8 threads, 40 levels nesting
- Tests that mkdir -p is safe to parallelize
- Uses Rust's thread joining pattern
- Addresses reviewer request for concurrent testing
948550c
17 days ago
by naoNao89
+0.01%
fix(mkdir): fix concurrent test to use proper paths
- Use at.plus() to get full path to test fixtures directory
- Use std::fs::create_dir_all directly instead of system mkdir
- Remove unused PathBuf import
- Fixes CI failure where test couldn't find created directories
ae1022a
17 days ago
by naoNao89
+0.02%
fix(mkdir): test actual uutils mkdir binary in concurrent test
- Use TestScenario.bin_path to get the actual uutils binary
- Execute real mkdir -p command instead of std::fs::create_dir_all
- This tests the actual coreutils implementation as requested by reviewer
- Reduce iterations to 10 for faster test execution while maintaining coverage
- Fixes feedback that test was only testing std lib implementation
d25ff03
17 days ago
by naoNao89
-0.03%
fix(mkdir): replace panic! with assert! in concurrent test
- Fix clippy manual_assert warning
- Use assert! instead of if !success { panic! }
- Format assert! call according to rustfmt requirements
- Maintains same error message and behavior
- Passes clippy pedantic checks