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

Re: [PATCH] t0005: ksh93 portability workaround

From
Jeff King <peff@peff.net>
Date
May 31, 2016, 23:03 UTC
Message-ID
<20160531230301.GB4585@sigill.intra.peff.net>
In-Reply-To
<xmqqinxt3kwq.fsf@gitster.mtv.corp.google.com>
On Tue, May 31, 2016 at 03:47:01PM -0700, Junio C Hamano wrote:
Show 14 quoted lines
> The test has two things ksh93 does not happy about:
> 
>  * It thinks "(( command1; command2 ) | command3)" is a perfectly
>    sane way to write a pipeline.  ksh93, unlike other POSIX shells,
>    does not like the two open parentheses next to each other for
>    whatever reason it has.
> 
>  * It adds 256, unlike 128 that are used by other POSIX shells, to
>    the signal number that caused the process to die when coming up
>    with the exit status.
> 
> What is interesting is that we knew about the latter issue and had a
> workaround in the test-sigchain test when verifying that SIGTERM
> works OK, but we didn't have corresponding workaround for SIGPIPE.
Hmm. We discussed these back in:
  http://thread.gmane.org/gmane.comp.version-control.git/268657

but I thought we decided not to do anything about them (according to that thread, I found a bunch of other ksh93 oddities, but maybe we've since fixed them?).

Show 9 quoted lines
> +died_with_sigpipe () {
> +	case "$1" in
> +	141 | 269)
> +		# POSIX w/ SIGPIPE=13 gives 141
> +		# ksh w/ SIGPIPE=13 gives 269
> +		true ;;
> +	*)	false ;;
> +	esac
> +}
This is OK, but I like the patch I posted in
  http://article.gmane.org/gmane.comp.version-control.git/268666

better, as it contains the shell logic in a single place (though I am not sure how these tests fare on Windows, where I think every signal just looks like "3").

-Peff
Previous: Eric SunshineNext: Junio C Hamano
Message 3 of 6 in “t0005: ksh93 portability workaround”
  1. t0005: ksh93 portability workaroundJunio C Hamano, May 31, 2016
  2. Eric SunshineMay 31, 2016
  3. Jeff KingMay 31, 2016
  4. Junio C HamanoMay 31, 2016
  5. t/lib-git-daemon: ksh portability workaroundJunio C Hamano, May 31, 2016
  6. Jeff KingMay 31, 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.