sharkdp/hyperfine

${HYPERFINE_ITERATION} is not visible in prepare or conclude commands

Open

#781 opened on Dec 3, 2024

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Rust (28,110 stars) (479 forks)batch import
feature-requestgood first issue

Description

I thought I could use the ${HYPERFINE_ITERATION} env variable that is exposed (mentioned as a solution in https://github.com/sharkdp/hyperfine/issues/778) ; however this is only accessible in the main command of the iteration, not the prepare or conclude steps for each iteration.

So for example if I want to prepare , test and cleanup a series of files, I would do something like this (with echo for illustrative purposes) :

 ~/hyperfine --runs 5 --prepare 'echo touch file${HYPERFINE_ITERATION}.dat' \
                  'echo testing file${HYPERFINE_ITERATION}.dat' \
                  --conclude 'echo rm file${HYPERFINE_ITERATION}.dat' --show-output

However this does not work because the env var is not exposed in all the steps:

Benchmark 1: echo testing file${HYPERFINE_ITERATION}.dat
touch file.dat
testing file0.dat
rm file.dat
touch file.dat
testing file1.dat
rm file.dat
touch file.dat
testing file2.dat
rm file.dat
touch file.dat
testing file3.dat
rm file.dat
touch file.dat
testing file4.dat
rm file.dat
  Time (mean ± σ):      90.7 µs ± 202.8 µs    [User: 116.6 µs, System: 252.7 µs]
  Range (min … max):     0.0 µs … 453.5 µs    5 runs

so it's not possible to prepare and clean up each file.

Contributor guide

${HYPERFINE_ITERATION} is not visible in prepare or conclude commands · sharkdp/hyperfine#781 | Good First Issue