Subject: [PATCH v3 0/2] test-lib-functions: fix test_subcommand_inexact

From: "Derrick Stolee via GitGitGadget" <[email-masked]>
Date: Fri, 25 Mar 2022 19:02:45 +0000

Junio discovered in [1] that test_subcommand_inexact is more flexible than
initially intended.

[1] https://lore.kernel.org/git/[email-masked]/

The intention was that we do not need to specify the remaining arguments for
a subcommand, but instead the current behavior is to allow the given
arguments to appear as any subsequence within the command (except that the
first "git" instance must be the first argument).

By changing the test that needed the helper, we can avoid the helper in the
first place. Modify the test and remove the helper.

Changes in v3
=============

 * Significant edits to the test in t7700 based on Junio and Taylor's
   feedback.

 * Patch 2 now deletes the helper as it is not used anywhere.

Thanks, -Stolee

Derrick Stolee (2):
  t7700: check post-condition in kept-pack test
  test-lib-functions: remove test_subcommand_inexact

 t/t7700-repack.sh       | 57 ++++++++++++++++++++++++++++++++++++++---
 t/test-lib-functions.sh | 34 ------------------------
 2 files changed, 54 insertions(+), 37 deletions(-)

base-commit: a68dfadae5e95c7f255cf38c9efdcbc2e36d1931
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1185%2Fderrickstolee%2Ftest-subcommand-fix-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1185/derrickstolee/test-subcommand-fix-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/1185

Range-diff vs v2:

 1:  f2f8d12929b ! 1:  fb2c550512e t7700: check post-condition in kept-pack test
     @@ t/t7700-repack.sh: test_expect_success '--write-midx with preferred bitmap tips'
       	)
       '
       
     -+get_sorted_objects_from_packs () {
     -+	git show-index <$(cat) >raw &&
     -+	cut -d" " -f2 raw | sort
     ++# The first argument is expected to be a filename
     ++# and that file should contain the name of a .idx
     ++# file. Send the list of objects in that .idx file
     ++# into stdout.
     ++get_sorted_objects_from_pack () {
     ++	git show-index <$(cat "$1") >raw &&
     ++	cut -d" " -f2 raw
      +}
      +
       test_expect_success '--write-midx -b packs non-kept objects' '
     @@ t/t7700-repack.sh: test_expect_success '--write-midx with preferred bitmap tips'
      +		test_commit base &&
      +		git repack -ad &&
      +		find $objdir/pack -name "*.idx" >before &&
     -+		>$objdir/pack/$(basename $(cat before) .idx).keep &&
     ++		test_line_count = 1 before &&
     ++		before_name=$(cat before) &&
     ++		>${before_name%.idx}.keep &&
      +
      +		# Create a non-kept pack-file
      +		test_commit other &&
     @@ t/t7700-repack.sh: test_expect_success '--write-midx with preferred bitmap tips'
      +		find $objdir/pack -name "*.idx" | sort >after &&
      +		test_line_count = 2 after &&
      +		find $objdir/pack -name "*.keep" >kept &&
     -+		test_line_count = 1 kept &&
     ++		kept_name=$(cat kept) &&
     ++		echo ${kept_name%.keep}.idx >kept-idx &&
     ++		test_cmp before kept-idx &&
      +
      +		# Get object list from the kept pack.
     -+		get_sorted_objects_from_packs \
     -+			<before \
     -+			>old.objects &&
     ++		get_sorted_objects_from_pack before >old.objects &&
      +
      +		# Get object list from the one non-kept pack-file
      +		comm -13 before after >new-pack &&
     -+		get_sorted_objects_from_packs \
     -+			<new-pack \
     -+			>new.objects &&
     ++		test_line_count = 1 new-pack &&
     ++		get_sorted_objects_from_pack new-pack >new.objects &&
      +
      +		# None of the objects in the new pack should
      +		# exist within the kept pack.
 2:  ed67b748971 < -:  ----------- test-lib-functions: fix test_subcommand_inexact
 -:  ----------- > 2:  f5a96a121a5 test-lib-functions: remove test_subcommand_inexact

-- 
gitgitgadget