Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
rptaylor opened this issue Dec 3, 2024 · 2 comments
Open
Labels
Milestone

Comments

@rptaylor
Copy link

rptaylor commented Dec 3, 2024

I thought I could use the ${HYPERFINE_ITERATION} env variable that is exposed (mentioned as a solution in #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.

@rptaylor
Copy link
Author

rptaylor commented Dec 3, 2024

I can work around it by changing the directory structure and using a recursive cleanup command (instead of conclude) but this might not be practical in some situations. For example if there is limited storage space on the test system, each data file would need to be cleaned up before the next one can be written.

@sharkdp
Copy link
Owner

sharkdp commented Dec 21, 2024

Thank you, this should be easy to fix, I think.

@sharkdp sharkdp added this to the hyperfine 2.0 milestone Dec 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants