git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Move test-* to t/helper/ subdirectory

From
Junio C Hamano <gitster@pobox.com>
Date
May 2, 2016, 17:34 UTC
Message-ID
<xmqqk2jcuzx7.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20160501060009.GA30748@lanh>
Duy Nguyen <pclouds@gmail.com> writes:
> I may have rushed to judgement. wrap-for-bin.sh has always been the
> dependency for bin-wrappers/*. If we force that file to change, then
> bin-wrappers/* will be recreated when switching branches. So how about
> this?

I do not think you are "force updating wrap-for-bin" in any way in the patch, though. You are building it in such a way that it does not have to get updated within the revision that contains e6e7530 (assuming that this will be queued directly on top it and merged to everywhere e6e7530 is contained).

The new case/esac looks somewhat bad (its knowing that where test-* lives, test-* is the only thing that is special, etc. troubles me at the same time that case/esac is funnily formated).

Where does "@@PATH@@" come from and who rewrites it? Is that a misspelt "@@PROG@@"?

Show 55 quoted lines
> -- 8< --
> Subject: [PATCH] wrap-for-bin.sh: handle t/helper/ paths internally
>
> Commit e6e7530 (test helpers: move test-* to t/helper/ subdirectory -
> 2016-04-13) moves test-* to t/helper. However because bin-wrappers/*
> only depend on wrap-for-bin.sh, when switching between a branch that has
> this commit and one that does not, bin-wrappers/* may not be regenerated
> and point to the old/outdated test programs. Fix it by force updating
> wrap-for-bin.sh so that it will be regenerated anyway.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  Makefile        |  2 +-
>  wrap-for-bin.sh | 12 ++++++++++--
>  2 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index dd178ee..38dcdf7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2204,7 +2204,7 @@ bin-wrappers/%: wrap-for-bin.sh
>  	@mkdir -p bin-wrappers
>  	$(QUIET_GEN)sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
>  	     -e 's|@@BUILD_DIR@@|$(shell pwd)|' \
> -	     -e 's|@@PROG@@|$(patsubst test-%,t/helper/test-%,$(@F))|' < $< > $@ && \
> +	     -e 's|@@PROG@@|$(@F)|' < $< > $@ && \
>  	chmod +x $@
>  
>  # GNU make supports exporting all variables by "export" without parameters.
> diff --git a/wrap-for-bin.sh b/wrap-for-bin.sh
> index db0ec6a..bb334ed 100644
> --- a/wrap-for-bin.sh
> +++ b/wrap-for-bin.sh
> @@ -18,11 +18,19 @@ GITPERLLIB='@@BUILD_DIR@@/perl/blib/lib'"${GITPERLLIB:+:$GITPERLLIB}"
>  GIT_TEXTDOMAINDIR='@@BUILD_DIR@@/po/build/locale'
>  PATH='@@BUILD_DIR@@/bin-wrappers:'"$PATH"
>  export GIT_EXEC_PATH GITPERLLIB PATH GIT_TEXTDOMAINDIR
> +case "@@PATH@@" in
> +    test-*)
> +	PROG="${GIT_EXEC_PATH}/t/helper/@@PROG@@"
> +	;;
> +    *)
> +	PROG="${GIT_EXEC_PATH}/@@PROG@@"
> +	;;
> +esac
>  
>  if test -n "$GIT_TEST_GDB"
>  then
>  	unset GIT_TEST_GDB
> -	exec gdb --args "${GIT_EXEC_PATH}/@@PROG@@" "$@"
> +	exec gdb --args "$PROG" "$@"
>  else
> -	exec "${GIT_EXEC_PATH}/@@PROG@@" "$@"
> +	exec "$PROG" "$@"
>  fi
Previous: Duy NguyenNext: Duy Nguyen
Message 11 of 16 in “Move test-* to t/helper/ subdirectory”
  1. Move test-* to t/helper/ subdirectoryNguyễn Thái Ngọc Duy, Apr 13, 2016
  2. Junio C HamanoApr 15, 2016
  3. Junio C HamanoApr 15, 2016
  4. Duy NguyenApr 16, 2016
  5. Junio C HamanoApr 26, 2016
  6. Duy NguyenApr 27, 2016
  7. Duy NguyenApr 27, 2016
  8. Junio C HamanoApr 27, 2016
  9. Duy NguyenMay 1, 2016
  10. Duy NguyenMay 1, 2016
  11. Junio C HamanoMay 2, 2016
  12. Duy NguyenMay 3, 2016
  13. Duy NguyenMay 8, 2016
  14. Junio C HamanoMay 9, 2016
  15. Duy NguyenMay 10, 2016
  16. Junio C HamanoMay 10, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.