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

Re: [PATCH] tests: turn on test-lint-shell-syntax by default

From
Torsten Bögershausen <tboegi@web.de>
Date
Jan 15, 2013, 20:12 UTC
Message-ID
<50F5B83E.9060800@web.de>
In-Reply-To
<7v4nikiu81.fsf@alter.siamese.dyndns.org>
On 13.01.13 23:38, Junio C Hamano wrote:
Show 32 quoted lines
> Jonathan Nieder <jrnieder@gmail.com> writes:
> 
>> Hi,
>>
>> Torsten Bögershausen wrote:
>>
>>> -	/^\s*[^#]\s*which\s/ and err 'which is not portable (please use type)';
>>> +	/^\s*[^#]\s*which\s+[-a-zA-Z0-9]+$/ and err 'which is not portable (please use type)';
>>
>> Hmm.  Neither the old version nor the new one matches what seem to
>> be typical uses of 'which', based on a quick code search:
>>
>> 	if which sl >/dev/null 2>&1
>> 	then
>> 		sl -l
>> 		...
>> 	fi
>>
>> or
>>
>> 	if test -x "$(which sl 2>/dev/null)"
>> 	then
>> 		sl -l
>> 		...
>> 	fi
> 
> Yes, these two misuses are what we want it to trigger on, so the
> test is very easy to trigger and produce a false positive, but does
> not trigger on what we really want to catch.
> 
> That does not sound like a good benefit/cost ratio to me.
> 

Thanks for comments, I think writing a regexp for which is difficult. What do we think about something like this for fishing for which:

--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -644,6 +644,10 @@ yes () {
                :
        done
 }
+which () {
+       echo >&2 "which is not portable (please use type)"
+       exit 1
+}


This will happen in runtime, which might be good enough ?


@Matt:
>The "[^#]" appears to ensure that there's at least one character
>before the which and that it's not a pound sign.  Why is this done?
This is simply wrong.
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 19 in “tests: turn on test-lint-shell-syntax by default”
  1. tests: turn on test-lint-shell-syntax by defaultTorsten Bögershausen, Jan 12, 2013
  2. Junio C HamanoJan 12, 2013
  3. Torsten BögershausenJan 13, 2013
  4. Matt KraaiJan 13, 2013
  5. Jonathan NiederJan 13, 2013
  6. Junio C HamanoJan 13, 2013
  7. Torsten BögershausenJan 15, 2013
  8. Junio C HamanoJan 15, 2013
  9. Torsten BögershausenJan 26, 2013
  10. Junio C HamanoJan 26, 2013
  11. Torsten BögershausenJan 27, 2013
  12. Jonathan NiederJan 27, 2013
  13. Torsten BögershausenJan 27, 2013
  14. Junio C HamanoJan 27, 2013
  15. Junio C HamanoJan 27, 2013
  16. Torsten BögershausenFeb 5, 2013
  17. Junio C HamanoFeb 5, 2013
  18. Junio C HamanoFeb 5, 2013
  19. Junio C HamanoJan 27, 2013

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.