Subject: [PATCH v3 0/4] t: replace incorrect test_must_fail usage (part 5)

From: Denton Liu <[email-masked]>
Date: Thu, 11 Jun 2020 13:41:46 -0400

Hi all,

Sorry for taking so long with the reroll. I've taken Peff's suggestion
and hopefully this approach is a lot more understandable. Unfortunately,
we introduce a few evals in test_submodule_switch_common() in the
process but I think that the end result looks pretty clean.

The overall scope of these patches is to replace inappropriate uses of
test_must_fail. IOW, we should only allow test_must_fail to run on `git`
and `test-tool`. Ultimately, we will conclude by making test_must_fail
error out on non-git commands. An advance view of the final series can
be found here[1].

This is the fifth part. It focuses on lib-submodule-update.sh and tests
that make use of it.

The first part can be found here[2]. The second part can be found
here[3]. The third part can be found here[4]. The fourth part can be
found here[5].

Changes since v1.2:

* In "lib-submodule-update: pass OVERWRITING_FAIL", use if-then return
  to reduce the amount of code churn

Changes since v2:

* Replace the OVERWRITING_FAIL approach with callback functions as
  suggested by Peff[6]

[1]: (may be rebased at any time) https://github.com/Denton-L/git/tree/ready/cleanup-test-must-fail2
[2]: https://lore.kernel.org/git/[email-masked]/
[3]: https://lore.kernel.org/git/[email-masked]/
[4]: https://lore.kernel.org/git/[email-masked]/
[5]: https://lore.kernel.org/git/[email-masked]/
[6]: https://lore.kernel.org/git/[email-masked]/

Denton Liu (4):
  lib-submodule-update: add space after function name
  lib-submodule-update: consolidate --recurse-submodules
  lib-submodule-update: prepend "git" to $command
  lib-submodule-update: use callbacks in test_submodule_switch_common()

 t/lib-submodule-update.sh        | 115 +++++++++++++++++++++++--------
 t/t1013-read-tree-submodule.sh   |   4 +-
 t/t2013-checkout-submodule.sh    |   4 +-
 t/t3426-rebase-submodule.sh      |  10 ++-
 t/t3512-cherry-pick-submodule.sh |   2 +-
 t/t3513-revert-submodule.sh      |  10 +--
 t/t3906-stash-submodule.sh       |  10 +--
 t/t4137-apply-submodule.sh       |  12 ++--
 t/t4255-am-submodule.sh          |  12 ++--
 t/t5572-pull-submodule.sh        |  28 ++------
 t/t6041-bisect-submodule.sh      |  10 +--
 t/t7112-reset-submodule.sh       |   6 +-
 t/t7613-merge-submodule.sh       |   8 +--
 13 files changed, 132 insertions(+), 99 deletions(-)

Range-diff against v2:
1:  ba2f642e0f = 1:  ba2f642e0f lib-submodule-update: add space after function name
2:  16d0a3eb9a = 2:  16d0a3eb9a lib-submodule-update: consolidate --recurse-submodules
3:  578bab6f1a ! 3:  09446be5b9 lib-submodule-update: prepend "git" to $command
    @@ t/lib-submodule-update.sh: test_submodule_content () {
      
     -# Internal function; use test_submodule_switch() or
     -# test_submodule_forced_switch() instead.
    -+# Internal function; use test_submodule_switch_func(), test_submodule_switch_func(),
    ++# Internal function; use test_submodule_switch_func(), test_submodule_switch(),
     +# or test_submodule_forced_switch() instead.
      test_submodule_switch_common () {
      	command="$1"
4:  48598e3f98 < -:  ---------- lib-submodule-update: pass OVERWRITING_FAIL
-:  ---------- > 4:  74e6086da4 lib-submodule-update: use callbacks in test_submodule_switch_common()
-- 
2.27.0.132.g321788e831