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

Re: [PATCH v5 01/14] t: teach test_cmp_rev to accept ! for not-equals

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 12, 2019, 06:52 UTC
Message-ID
<xmqq5zjpfux2.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<3c58df27c4b9f405bfc5c163e36a928a75ce8239.1573517561.git.liu.denton@gmail.com>
Denton Liu <liu.denton@gmail.com> writes:
Show 11 quoted lines
> +# Tests that its two parameters refer to the same revision, or if '!' is
> +# provided first, that its other two parameters refer to different
> +# revisions.
>  test_cmp_rev () {
> +	local op
> +	op='='
> +	if test $# -ge 1 && test "x$1" = 'x!'
> +	then
> +	    op='!='
> +	    shift
> +	fi

Not that it is all that important, but how about setting up comp_out up here at the same time? I.e.

	local op comp_out
	if ...
	then
		op="!=" comp_out="the same"
		shift
	else
		op="=" comp_out=different
	fi

That way, we can lose 7 lines down there, while spending only one line up here, collecting all the things that conditional on '!' on the command line in one place.

I would have named the message variable "$wrong_result" or something, by the way, i.e. "two revisions point to $wrong_result objects".

Thanks.  Will queue the whole thing.
Show 25 quoted lines
>  	if test $# != 2
>  	then
>  		error "bug in the test script: test_cmp_rev requires two revisions, but got $#"
>  	else
>  		local r1 r2
>  		r1=$(git rev-parse --verify "$1") &&
> -		r2=$(git rev-parse --verify "$2") &&
> -		if test "$r1" != "$r2"
> +		r2=$(git rev-parse --verify "$2") || return 1
> +
> +		if ! test "$r1" "$op" "$r2"
>  		then
> +			local comp_out
> +			if "x$op" = 'x='
> +			then
> +				comp_out='different'
> +			else
> +				comp_out='the same'
> +			fi
>  			cat >&4 <<-EOF
> -			error: two revisions point to different objects:
> +			error: two revisions point to $comp_out objects:
>  			  '$1': $r1
>  			  '$2': $r2
>  			EOF
Previous: Denton LiuNext: Denton Liu
Message 82 of 116 in “t5520: various test cleanup”
  1. 00/12 t5520: various test cleanupDenton Liu, Oct 17, 2019
  2. 01/12 t5520: improve test styleDenton Liu, Oct 17, 2019
  3. 02/12 t5520: use sq for test case namesDenton Liu, Oct 17, 2019
  4. 03/12 t5520: let sed open its own inputDenton Liu, Oct 17, 2019
  5. 05/12 t5520: remove spaces after redirect operatorDenton Liu, Oct 17, 2019
  6. 04/12 t5520: replace test -f with test_path_is_fileDenton Liu, Oct 17, 2019
  7. Eric SunshineOct 17, 2019
  8. 5/12 t5520: replace test -f with test-lib functionsDenton Liu, Oct 17, 2019
  9. Eric SunshineOct 18, 2019
  10. 06/12 t5520: use test_line_count where possibleDenton Liu, Oct 17, 2019
  11. 07/12 t5520: replace test -{n,z} with test-lib functionsDenton Liu, Oct 17, 2019
  12. Eric SunshineOct 17, 2019
  13. 08/12 t5520: use test_cmp_rev where possibleDenton Liu, Oct 17, 2019
  14. Eric SunshineOct 17, 2019
  15. Denton LiuOct 18, 2019
  16. Eric SunshineOct 23, 2019
  17. 09/12 t5520: test single-line files by git with test_cmpDenton Liu, Oct 17, 2019
  18. Eric SunshineOct 17, 2019
  19. 10/12 t5520: don't put git in upstream of pipeDenton Liu, Oct 17, 2019
  20. 11/12 t5520: replace subshell cat comparison with test_cmpDenton Liu, Oct 17, 2019
  21. 12/12 t5520: replace `! git` with `test_must_fail git`Denton Liu, Oct 17, 2019
  22. 00/15 t5520: various test cleanupDenton Liu, Oct 18, 2019
  23. 01/15 t7408: replace `test_must_fail test_path_is_file`Denton Liu, Oct 18, 2019
  24. Johannes SixtOct 19, 2019
  25. 09/15 t5520: replace test -{n,z} with test-lib functionsDenton Liu, Oct 18, 2019
  26. 11/15 t5520: test single-line files by git with test_cmpDenton Liu, Oct 18, 2019
  27. 06/15 t5520: replace test -f with test-lib functionsDenton Liu, Oct 18, 2019
  28. 12/15 t5520: don't put git in upstream of pipeDenton Liu, Oct 18, 2019
  29. 14/15 t5520: remove redundant lines in test casesDenton Liu, Oct 18, 2019
  30. 15/15 t5520: replace `! git` with `test_must_fail git`Denton Liu, Oct 18, 2019
  31. 13/15 t5520: replace subshell cat comparison with test_cmpDenton Liu, Oct 18, 2019
  32. 10/15 t5520: use test_cmp_rev where possibleDenton Liu, Oct 18, 2019
  33. 08/15 t5520: use test_line_count where possibleDenton Liu, Oct 18, 2019
  34. 07/15 t5520: remove spaces after redirect operatorDenton Liu, Oct 18, 2019
  35. 05/15 t5520: let sed open its own inputDenton Liu, Oct 18, 2019
  36. 04/15 t5520: use sq for test case namesDenton Liu, Oct 18, 2019
  37. 03/15 t5520: improve test styleDenton Liu, Oct 18, 2019
  38. 02/15 t: teach test_cmp_rev to accept ! for not-equalsDenton Liu, Oct 18, 2019
  39. SZEDER GáborOct 18, 2019
  40. Denton LiuOct 18, 2019
  41. 00/14 t5520: various test cleanupDenton Liu, Oct 22, 2019
  42. 01/14 t: teach test_cmp_rev to accept ! for not-equalsDenton Liu, Oct 22, 2019
  43. 02/14 t5520: improve test styleDenton Liu, Oct 22, 2019
  44. 03/14 t5520: use sq for test case namesDenton Liu, Oct 22, 2019
  45. 04/14 t5520: let sed open its own inputDenton Liu, Oct 22, 2019
  46. 05/14 t5520: replace test -f with test-lib functionsDenton Liu, Oct 22, 2019
  47. 06/14 t5520: remove spaces after redirect operatorDenton Liu, Oct 22, 2019
  48. 07/14 t5520: use test_line_count where possibleDenton Liu, Oct 22, 2019
  49. 08/14 t5520: replace test -{n,z} with test-lib functionsDenton Liu, Oct 22, 2019
  50. 09/14 t5520: use test_cmp_rev where possibleDenton Liu, Oct 22, 2019
  51. 10/14 t5520: test single-line files by git with test_cmpDenton Liu, Oct 22, 2019
  52. 11/14 t5520: don't put git in upstream of pipeDenton Liu, Oct 22, 2019
  53. 12/14 t5520: replace subshell cat comparison with test_cmpDenton Liu, Oct 22, 2019
  54. 13/14 t5520: remove redundant lines in test casesDenton Liu, Oct 22, 2019
  55. 14/14 t5520: replace `! git` with `test_must_fail git`Denton Liu, Oct 22, 2019
  56. Denton LiuOct 24, 2019
  57. Junio C HamanoOct 25, 2019
  58. Denton LiuNov 4, 2019
  59. Junio C HamanoNov 6, 2019
  60. 00/14 t5520: various test cleanupDenton Liu, Nov 7, 2019
  61. 01/14 t: teach test_cmp_rev to accept ! for not-equalsDenton Liu, Nov 7, 2019
  62. Junio C HamanoNov 8, 2019
  63. Denton LiuNov 8, 2019
  64. Junio C HamanoNov 8, 2019
  65. Denton LiuNov 8, 2019
  66. Junio C HamanoNov 10, 2019
  67. 02/14 t5520: improve test styleDenton Liu, Nov 7, 2019
  68. 03/14 t5520: use sq for test case namesDenton Liu, Nov 7, 2019
  69. 04/14 t5520: let sed open its own inputDenton Liu, Nov 7, 2019
  70. 05/14 t5520: replace test -f with test-lib functionsDenton Liu, Nov 7, 2019
  71. 06/14 t5520: remove spaces after redirect operatorDenton Liu, Nov 7, 2019
  72. 07/14 t5520: use test_line_count where possibleDenton Liu, Nov 7, 2019
  73. 08/14 t5520: replace test -{n,z} with test-lib functionsDenton Liu, Nov 7, 2019
  74. 09/14 t5520: use test_cmp_rev where possibleDenton Liu, Nov 7, 2019
  75. 10/14 t5520: test single-line files by git with test_cmpDenton Liu, Nov 7, 2019
  76. 11/14 t5520: don't put git in upstream of pipeDenton Liu, Nov 7, 2019
  77. 12/14 t5520: replace subshell cat comparison with test_cmpDenton Liu, Nov 7, 2019
  78. 13/14 t5520: remove redundant lines in test casesDenton Liu, Nov 7, 2019
  79. 14/14 t5520: replace `! git` with `test_must_fail git`Denton Liu, Nov 7, 2019
  80. 00/14 t5520: various test cleanupDenton Liu, Nov 12, 2019
  81. 01/14 t: teach test_cmp_rev to accept ! for not-equalsDenton Liu, Nov 12, 2019
  82. Junio C HamanoNov 12, 2019
  83. fixup! t: teach test_cmp_rev to accept ! for not-equalsDenton Liu, Nov 12, 2019
  84. 02/14 t5520: improve test styleDenton Liu, Nov 12, 2019
  85. 03/14 t5520: use sq for test case namesDenton Liu, Nov 12, 2019
  86. 04/14 t5520: let sed open its own inputDenton Liu, Nov 12, 2019
  87. 05/14 t5520: replace test -f with test-lib functionsDenton Liu, Nov 12, 2019
  88. 06/14 t5520: remove spaces after redirect operatorDenton Liu, Nov 12, 2019
  89. 07/14 t5520: use test_line_count where possibleDenton Liu, Nov 12, 2019
  90. 08/14 t5520: replace test -{n,z} with test-lib functionsDenton Liu, Nov 12, 2019
  91. 09/14 t5520: use test_cmp_rev where possibleDenton Liu, Nov 12, 2019
  92. 10/14 t5520: test single-line files by git with test_cmpDenton Liu, Nov 12, 2019
  93. Junio C HamanoNov 12, 2019
  94. Denton LiuNov 12, 2019
  95. 11/14 t5520: don't put git in upstream of pipeDenton Liu, Nov 12, 2019
  96. 12/14 t5520: replace subshell cat comparison with test_cmpDenton Liu, Nov 12, 2019
  97. 13/14 t5520: remove redundant lines in test casesDenton Liu, Nov 12, 2019
  98. 14/14 t5520: replace `! git` with `test_must_fail git`Denton Liu, Nov 12, 2019
  99. 00/14 t5520: various test cleanupDenton Liu, Nov 12, 2019
  100. 01/14 t: teach test_cmp_rev to accept ! for not-equalsDenton Liu, Nov 12, 2019
  101. Junio C HamanoNov 13, 2019
  102. Denton LiuNov 14, 2019
  103. 02/14 t5520: improve test styleDenton Liu, Nov 12, 2019
  104. 03/14 t5520: use sq for test case namesDenton Liu, Nov 12, 2019
  105. 04/14 t5520: let sed open its own inputDenton Liu, Nov 12, 2019
  106. 05/14 t5520: replace test -f with test-lib functionsDenton Liu, Nov 12, 2019
  107. 06/14 t5520: remove spaces after redirect operatorDenton Liu, Nov 12, 2019
  108. 07/14 t5520: use test_line_count where possibleDenton Liu, Nov 12, 2019
  109. 08/14 t5520: replace test -{n,z} with test-lib functionsDenton Liu, Nov 12, 2019
  110. 09/14 t5520: use test_cmp_rev where possibleDenton Liu, Nov 12, 2019
  111. 10/14 t5520: test single-line files by git with test_cmpDenton Liu, Nov 12, 2019
  112. 11/14 t5520: don't put git in upstream of pipeDenton Liu, Nov 12, 2019
  113. 12/14 t5520: replace $(cat ...) comparison with test_cmpDenton Liu, Nov 12, 2019
  114. 13/14 t5520: remove redundant lines in test casesDenton Liu, Nov 12, 2019
  115. 14/14 t5520: replace `! git` with `test_must_fail git`Denton Liu, Nov 12, 2019
  116. Junio C HamanoNov 13, 2019

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.