Message ID | pull.1044.git.1632239172735.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 18a21483d914d7b5f3a503fd9febfd4e87ad654c |
Headers | show |
Series | t/perf/run: fix bin-wrappers computation | expand |
On Tue, Sep 21, 2021 at 03:46:12PM +0000, Derrick Stolee via GitGitGadget wrote: > This is critical to successfully computing performance of commands that > execute subcommands. The bin-wrappers ensure that the --exec-path is set > correctly. Just sanity-checking everything you said: with this bug, we'll set mydir_abs_wrappers to "/bin-wrappers", then realize that directory doesn't exist, and fall back to GIT_TEST_INSTALLED=$mydir_abs. Putting 'set -x' at the top of t/perf/run, we can see the relevant section: + mydir=build/73cd7d9420bb7d75207e8149521db375c789a81c + cd build/73cd7d9420bb7d75207e8149521db375c789a81c + pwd + mydir_abs=/home/ttaylorr/src/git/t/perf/build/73cd7d9420bb7d75207e8149521db375c789a81c + mydir_abs_wrappers=/bin-wrappers + test -d /bin-wrappers + GIT_TEST_INSTALLED=/home/ttaylorr/src/git/t/perf/build/73cd7d9420bb7d75207e8149521db375c789a81c + export GIT_TEST_INSTALLED OK. But the real problem is in t/test-lib.sh where we read "$GIT_TEST_INSTALLED". There we ask for the `--exec-path`, which appears to be wrong, at least in my setup. Printing out the $GIT_EXEC_PATH and $GIT_TEST_INSTALLED, I get: /home/ttaylorr/local/git/ds.sparse-checkout/libexec/git-core, /home/ttaylorr/src/git/t/perf/build/73cd7d9420bb7d75207e8149521db375c789a81c where the former is the branch I happen to have checked out, and the latter is the revision that I asked to run performance tests on via t/perf/run. So I think we'll run the right top-level Git command since the latter path ends up first in our $PATH, but the exec path is definitely wrong. > diff --git a/t/perf/run b/t/perf/run > index d19dec258a2..55219aa4056 100755 > --- a/t/perf/run > +++ b/t/perf/run > @@ -74,7 +74,7 @@ set_git_test_installed () { > mydir=$1 > > mydir_abs=$(cd $mydir && pwd) > - mydir_abs_wrappers="$mydir_abs_wrappers/bin-wrappers" > + mydir_abs_wrappers="$mydir_abs/bin-wrappers" This fix looks obviously right to me (and gives me the expected output from above when I apply it locally). Thanks, Taylor
On 9/21/2021 1:50 PM, Taylor Blau wrote: > On Tue, Sep 21, 2021 at 03:46:12PM +0000, Derrick Stolee via GitGitGadget wrote: >> This is critical to successfully computing performance of commands that >> execute subcommands. The bin-wrappers ensure that the --exec-path is set >> correctly. > > Just sanity-checking everything you said: with this bug, we'll set > mydir_abs_wrappers to "/bin-wrappers", then realize that directory > doesn't exist, and fall back to GIT_TEST_INSTALLED=$mydir_abs. Putting > 'set -x' at the top of t/perf/run, we can see the relevant section: > > + mydir=build/73cd7d9420bb7d75207e8149521db375c789a81c > + cd build/73cd7d9420bb7d75207e8149521db375c789a81c > + pwd > + mydir_abs=/home/ttaylorr/src/git/t/perf/build/73cd7d9420bb7d75207e8149521db375c789a81c > + mydir_abs_wrappers=/bin-wrappers > + test -d /bin-wrappers > + GIT_TEST_INSTALLED=/home/ttaylorr/src/git/t/perf/build/73cd7d9420bb7d75207e8149521db375c789a81c > + export GIT_TEST_INSTALLED > > OK. But the real problem is in t/test-lib.sh where we read > "$GIT_TEST_INSTALLED". There we ask for the `--exec-path`, which appears > to be wrong, at least in my setup. Printing out the $GIT_EXEC_PATH and > $GIT_TEST_INSTALLED, I get: > > /home/ttaylorr/local/git/ds.sparse-checkout/libexec/git-core, > /home/ttaylorr/src/git/t/perf/build/73cd7d9420bb7d75207e8149521db375c789a81c > > where the former is the branch I happen to have checked out, and the > latter is the revision that I asked to run performance tests on via > t/perf/run. > > So I think we'll run the right top-level Git command since the latter > path ends up first in our $PATH, but the exec path is definitely wrong. Thanks for digging into this more. This issue with GIT_EXEC_PATH explains some strangeness I was seeing. Perhaps there is something more robust to be done around GIT_EXEC_PATH, but the current fix satisfies my needs. >> diff --git a/t/perf/run b/t/perf/run >> index d19dec258a2..55219aa4056 100755 >> --- a/t/perf/run >> +++ b/t/perf/run >> @@ -74,7 +74,7 @@ set_git_test_installed () { >> mydir=$1 >> >> mydir_abs=$(cd $mydir && pwd) >> - mydir_abs_wrappers="$mydir_abs_wrappers/bin-wrappers" >> + mydir_abs_wrappers="$mydir_abs/bin-wrappers" > > This fix looks obviously right to me (and gives me the expected output > from above when I apply it locally). Thanks, -Stolee
diff --git a/t/perf/run b/t/perf/run index d19dec258a2..55219aa4056 100755 --- a/t/perf/run +++ b/t/perf/run @@ -74,7 +74,7 @@ set_git_test_installed () { mydir=$1 mydir_abs=$(cd $mydir && pwd) - mydir_abs_wrappers="$mydir_abs_wrappers/bin-wrappers" + mydir_abs_wrappers="$mydir_abs/bin-wrappers" if test -d "$mydir_abs_wrappers" then GIT_TEST_INSTALLED=$mydir_abs_wrappers