Commit Graph
32 Commits
Author SHA1 Message Date
David Peter b5a6860d96 Support list of exit codes in --ignore-failure 2025-11-18 09:19:27 +01:00
David Peter 6556b2bd46 Initial work on tracking memory usage 2024-12-29 12:18:55 +01:00
David Peter 99d24b7a2e Multiple output policies 2024-11-11 22:24:25 +01:00
David Carlier 2899deb8fd apply clippy advices on executor/commands lifetimes. 2024-11-11 08:47:33 +01:00
David Peter 83f04cdd31 Add iteration information to failure error message 2024-11-10 22:26:13 +01:00
Hamir Mahal ef1263279d style: simplify string interpolation 2024-06-01 11:07:23 +02:00
Pedro Witzel ae9b0bbdfd cfg: adding more pre-processing for windows-only parser 2023-10-05 09:25:07 +02:00
Pedro Witzel c2f99e5f94 fmt: apply cargo fmt suggestions 2023-10-05 09:25:07 +02:00
Pedro Witzel bece2eacf0 bug: quoting failure on windows-platform (#296) 2023-10-05 09:25:07 +02:00
David Peter e88fa27c07 Change order of input/outut 2023-03-15 09:33:49 +01:00
Steve Nease d32b90ee5c Add the rest of the suggestions from code review 2023-03-15 09:33:49 +01:00
Steve Nease 0e3bad1391 ran cargo fmt 2023-03-15 09:33:49 +01:00
Steve Nease e38acdb683 Added --stdin-data argument
This argument accepts a path to a file. The data contained in the file will be passed to the command via stdin.

Closes sharkdp/hyperfine#541
2023-03-15 09:33:49 +01:00
FilipAndersson f00acf962e Fixes #568 2022-10-29 14:58:57 +02:00
Tavian Barnes 277807cb5a Implement --output={null,pipe,<FILE>}
Fixes #377.
2022-05-17 22:30:45 +02:00
David Peter d9418e0731 Use raw executor by default, skip intermediate shell
This adds a new "raw executor" (next to the "shell executor") that
allows hyperfine to execute commands directly without any intermediate
shell.

The command line is split into tokens (using the `shell-words` crate),
and according to POSIX rules. The first token is taken as the executable,
and the rest as arguments.

The new executor is enabled by default. In order to select the shell
executor, users will have to pass `--shell=default`.

This allows us to reduce measurement noise and to benchmark very quick
commands. It also decreases the time to run benchmarks, as we don't need
the calibration phase.

Also, it allows one to make sure that the executed command is not
implemented as a shell builtin. For example `hyperfine true`
and `hyperfine --shell=default true` return different times due
to the fact that `bash` executes `true` as a NOP.

Co-authored: Ciprian Dorin Craciun <ciprian@volution.ro>
2022-02-22 22:51:09 +01:00
David Peter 308bf5cd26 Extract common functionality 2022-02-22 13:24:05 +01:00
David Peter f19223ba9d Simplify 2022-02-22 13:24:05 +01:00
David Peter 55f0ef6637 Move wall clock timer into execute_and_measure 2022-02-22 13:24:05 +01:00
David Peter e001530f61 Change argument order 2022-02-22 13:24:05 +01:00
David Peter 9b8f2a9ee2 Move Stdio extraction to enum 2022-02-22 13:24:05 +01:00
David Peter e1da8ba00f Further simplify execute_and_measure 2022-02-22 13:24:05 +01:00
David Peter 0ffc6d7cc0 Move to timer module 2022-02-22 13:24:05 +01:00
David Peter 1f3943e7d1 Move custom functionality to executor 2022-02-22 13:24:05 +01:00
David Peter f822455d99 Rename functions 2022-02-22 13:24:05 +01:00
David Peter 7c929f7e48 Rename to run_command_and_measure 2022-02-22 13:24:05 +01:00
David Peter 826449bc8f Rename to get_command_line 2022-02-22 13:24:05 +01:00
David Peter defafdf707 Refactor timer module 2022-02-22 10:51:06 +01:00
David Peter f029a46ff9 Fix clippy warnings 2022-02-22 10:13:06 +01:00
David Peter cb6f2f7c4e Remove comment 2022-02-22 09:15:40 +01:00
David Peter 6887835f34 Proper shell overhead computation 2022-02-22 09:07:40 +01:00
David Peter 6f51232a8a Add debug/mock mode 2022-02-22 09:07:40 +01:00