On Wed, Mar 28, 2018 at 4:08 PM, Stefan Beller <[email protected]> wrote:
> On Wed, Mar 28, 2018 at 11:57 AM, Eric Sunshine <[email protected]>
> wrote:
>>> +test_expect_success 'moving the submodule does not break the superproject'
>>> '
>>> + (
>>> + cd addtest2 &&
>>> +
>>> + mv repo repo.bak &&
>>> + git submodule status >actual &&
>>> + grep -e "^-" -e repo actual &&
>>> +
>>> + mv repo.bak repo
>>
>> Should this "move back" be encapsulated in a test_when_finished?
>
> I thought about that, but decided against it for some reason as I was debating
> where to put the test_when_finished. I mostly saw those at the very beginning
> of a test and wondered if it can be called from within a subshell.
> (I'd not want to put it at the beginning but rather adjacent to the move.)
It looks like test_when_finished() shouldn't be used in a subshell.
However, wouldn't the following be reasonable?
mv addtest2/repo addtest2/repo.bak &&
test_when_finished "mv addtest2/repo.bak addtest2/repo" &&
(
cd addtest2 &&
git submodule status >actual &&
grep -e "^-" -e repo actual
)
Or, even simpler:
mv addtest2/repo addtest2/repo.bak &&
test_when_finished "mv addtest2/repo.bak addtest2/repo" &&
git -C addtest2 submodule status >actual &&
grep -e "^-" -e repo actual