Jonathan Tan <jonathanta...@google.com> writes:

> Factor out the commonalities from test_submodule_switch() and
> test_submodule_forced_switch() in lib-submodule-update.sh, and document
> their usage.
>
> This also makes explicit (through the KNOWN_FAILURE_FORCED_SWITCH_TESTS
> variable) the fact that, currently, all functionality tested using
> test_submodule_forced_switch() do not correctly handle the situation in
> which a submodule is replaced with an ordinary directory.
>
> Signed-off-by: Jonathan Tan <jonathanta...@google.com>
> ---
> I find tests that use lib-submodule-update.sh difficult to understand
> due to the lack of clarity of what test_submodule_switch() and others do
> with their argument - I hope this will make things easier for future
> readers.
> ---
>  t/lib-submodule-update.sh | 250 
> +++++++++-------------------------------------
>  1 file changed, 46 insertions(+), 204 deletions(-)

I suspect that the benefit of this is a lot larger than "document" a
test helper function or two ;-)  "document & clean-up", perhaps?

> -     # ... unless there is an untracked file in its place.
> -     test_expect_success "$command: added submodule doesn't remove untracked 
> unignored file with same name" '
> -             prolog &&
> -             reset_work_tree_to no_submodule &&
> -             (
> -                     cd submodule_update &&
> -                     git branch -t add_sub1 origin/add_sub1 &&
> -                     >sub1 &&
> -                     test_must_fail $command add_sub1 &&
> -                     test_superproject_content origin/no_submodule &&
> -                     test_must_be_empty sub1
> -             )
> -     '

This is not included in the _common thing, but is added back to the
updated _switch and _forced_switch, both of which call the _common
thing, at the end.

> @@ -538,59 +529,53 @@ test_submodule_switch () {
>                       test_submodule_content sub1 origin/add_sub1
>               )
>       '
> -     # Updating a submodule from an invalid sha1 doesn't update the
> -     # submodule's work tree, subsequent update will succeed
> -     test_expect_$RESULT "$command: modified submodule does not update 
> submodule work tree from invalid commit" '
> -             prolog &&
> -             reset_work_tree_to invalid_sub1 &&
> -             (
> -                     cd submodule_update &&
> -                     git branch -t valid_sub1 origin/valid_sub1 &&
> -                     $command valid_sub1 &&
> -                     test_superproject_content origin/valid_sub1 &&
> -                     test_dir_is_empty sub1 &&
> -                     git submodule update --init --recursive &&
> -                     test_submodule_content sub1 origin/valid_sub1
> -             )
> -     '

This piece seems to have been lost from the updated code; _common
does not inherit this test, and _switch does not add it back after
calling _common.  Its copy does appear in _forced_switch, though.


I didn't compare the before-and-after with fine toothed comb, but
a cursory look didn't find anything glaringly questionable other
than the above.


Reply via email to