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

Re: [PATCH] test suite: add a check that all test numbers are unique

From
Jeff King <peff@peff.net>
Date
Aug 21, 2009, 12:53 UTC
Message-ID
<20090821125324.GA6280@coredump.intra.peff.net>
In-Reply-To
<4A8E68AF.8040001@viscovery.net>
On Fri, Aug 21, 2009 at 11:28:15AM +0200, Johannes Sixt wrote:
> The test runs only if 'make all' is used. Its purpose is to alert our
> valued integrator if different branches are merged that happen to
> introduce the same test number.

I think this is probably useful. In addition to the t7406 you posted a patch for, it looks like t4037 has a duplicate in next.

As for the implementation:
Show 29 quoted lines
> +++ b/t/check_unique_numbers.sh
> @@ -0,0 +1,27 @@
> +#!/bin/sh
> +
> +# checks whether test case numbers are unique;
> +# returns non-zero if any duplicates were found
> +
> +check_numbers () {
> +	last= dup=
> +	while read name
> +	do
> +		case $name in
> +		t[0-9][0-9][0-9][0-9]-*.sh)
> +			number=${name%%-*}
> +			if test "$number" = "$last"; then
> +				dup="$dup $number"
> +			fi
> +			last=$number
> +			;;
> +		esac
> +	done
> +	test -z "$dup" || {
> +		echo >&2 "error: duplicate test numbers:" $dup
> +		return 1
> +	}
> +}
> +
> +ls -1 |	# no wildcard to avoid overflow of command line
> +check_numbers
Why not the much shorter:
tests() {
  ls | sed -n 's/^\(t[0-9][0-9][0-9][0-9]\)-.*\.sh$/\1/p'
}
dups=`tests | uniq -d`
instead of the long shell loop?
-Peff
Previous: Johannes SixtNext: Johannes Sixt
Message 2 of 4 in “test suite: add a check that all test numbers are unique”
  1. test suite: add a check that all test numbers are uniqueJohannes Sixt, Aug 21, 2009
  2. Jeff KingAug 21, 2009
  3. test suite: add a check that all test numbers are uniqueJohannes Sixt, Aug 21, 2009
  4. Jeff KingAug 21, 2009

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.