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

Re: [PATCH 1/2] test-lib: show missing prereq summary

From
Fabian Stelzer <fs@gigacodes.de>
Date
Nov 16, 2021, 14:19 UTC
Message-ID
<20211116141938.gbaufny5o2boptvh@fs>
In-Reply-To
<211115.865ysts45o.gmgdl@evledraar.gmail.com>
On 15.11.2021 18:44, Ævar Arnfjörð Bjarmason wrote:
Show 17 quoted lines
>
>On Mon, Nov 15 2021, Fabian Stelzer wrote:
>
>> +if test -n "$missing_prereq"
>> +then
>> +	unique_missing_prereq=$(
>> +		echo $missing_prereq |
>> +		tr -s "," "\n" |
>> +		grep -v '^$' |
>> +		sort -u |
>> +		paste -s -d ',')
>
>What is paste? Some out-of-tree debugging utility?
>
>I think you might find a better way to do this shown in my
>"ab/generate-command-list" topic, currently in seen. It removed most of
>the same sort of tr|grep|sort etc. chain in generate-cmdlist.sh.

I've looked at the generate-command-list code and TBH i still think this is a better solution. If I read your change correctly you've removed the sort and unique completely since it was not necessary for the use-case. In this case i think it is. Since we call tr with `-s` the grep -v might not be strictly necessary though. Also in this case these commands are only called once at the end of the test run and not in any kind of loop like in the cmdlist code so i think this variant is much easier to read and debug with a negligible performance impact.

I tried writing a sh only variant and this is what i came up with. Not sure if this could be much more simplified. It looses the sort though.

input="PCRE,JGIT2,JGIT2,,PCRE,JGIT2,PCRE,PCRE2,!PCRE,!WINDOWS,GPG,GPGSSH,PCRE,!GPG,GPG,JGIT2"
unique=
save_IFS=$IFS
IFS=,
for prereq in $input
do
	case "$prereq" in
	'')
		# Skip empty entries
		;;
	*)
		case ",$unique," in
		*,$prereq,*)
			# Skip over duplicates
			;;
		*)
			if test -z "$unique"
			then
				unique="$prereq"
			else
				unique="$unique,$prereq"
			fi
			;;
		esac
	esac
done
IFS=$save_IFS
echo $unique
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 11 in “test-lib: improve missing prereq handling”
  1. 0/2 test-lib: improve missing prereq handlingFabian Stelzer, Nov 15, 2021
  2. 1/2 test-lib: show missing prereq summaryFabian Stelzer, Nov 15, 2021
  3. Ævar Arnfjörð BjarmasonNov 15, 2021
  4. Junio C HamanoNov 15, 2021
  5. Fabian StelzerNov 15, 2021
  6. Junio C HamanoNov 15, 2021
  7. Fabian StelzerNov 16, 2021
  8. Junio C HamanoNov 17, 2021
  9. Fabian StelzerNov 17, 2021
  10. 2/2 test-lib: introduce required prereq for test runsFabian Stelzer, Nov 15, 2021
  11. Junio C HamanoNov 16, 2021

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.