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

Re: [PATCH 5/5] t/t5520: test --[no-]autostash with pull.rebase=true

From
Matthieu Moy <matthieu.moy@grenoble-inp.fr>
Date
Apr 4, 2016, 16:52 UTC
Message-ID
<vpq4mbhmi3g.fsf@anie.imag.fr>
In-Reply-To
<CA+DCAeRqY7-qZt-upa5=nY8OkUL4Q76ogk5nrF_WAaiFiWOy1A@mail.gmail.com>
Mehul Jain <mehul.jain2029@gmail.com> writes:
Show 21 quoted lines
> On Mon, Apr 4, 2016 at 12:58 AM, Eric Sunshine <sunshine@sunshineco.com> wrote:
>> On Fri, Apr 1, 2016 at 6:27 AM, Mehul Jain <mehul.jain2029@gmail.com> wrote:
>>> In test_autostash() there's a line
>>>
>>>     echo test_cmp_rev HEAD^ copy &&
>>>
>>> Originally it should have been
>>>
>>>     test_cmp_rev HEAD^ copy &&
>>>
>>> but this raise following error while testing
>>>
>>>     ./t5520-pull.sh: 684: eval: diff -u: not found
>>
>> This is caused by the custom IFS=',\t=' which is still in effect when
>> test_cmp_rev() is invoked. You need to restore IFS within the loop
>> itself.
>
> Thanks for pointing it out. I made a mistake by not considering
> the consequences of setting IFS=',\t='. I tried it out again and
> this time all tests passed perfectly.

I think it would be much simpler to drop the loop, and write instead something like (untested):

test_autostash () {
	expect="$1"
        cmd="$2"
        config_variable="$3"
        value="$4"
        test_expect_success "$cmd, $config_variable=$value" '
            if [ "$value" = "" ]; then
                test_unconfig $config_variable
            else
                test_config $config_variable $value
            fi &&
            git reset --hard before-rebase &&
            echo dirty >new_file &&
            git add new_file &&
            if [ $expect = "ok" ]; then
                git pull '$cmd' . copy &&
                test_cmp_rev HEAD^ copy &&
                test "$(cat new_file)" = dirty &&
                test "$(cat file)" = "modified again"
            else
                test_must_fail git pull '$cmd' . copy 2>err &&
                test_i18ngrep "uncommitted changes." err
            fi
        '
}

test_autostash ok --rebase rebase.autostash=true test_autostash ok '--rebase --autostash' rebase.autostash=true test_autostash ok '--rebase --autostash' rebase.autostash=false test_autostash ok '--rebase --autostash' rebase.autostash= test_autostash err '--rebase --no-autostash' rebase.autostash=true test_autostash err '--rebase --no-autostash' rebase.autostash=false test_autostash err '--rebase --no-autostash' rebase.autostash= test_autostash ok --autostash pull.rebase=true test_autostash err --no-autostash pull.rebase=true

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Previous: Mehul JainNext: Mehul Jain
Message 18 of 22 in “modify tests for --[no-]autostash option”
  1. 0/5 modify tests for --[no-]autostash optionMehul Jain, Mar 29, 2016
  2. 1/5 t/t5520: change rebase.autoStash to rebase.autostashMehul Jain, Mar 29, 2016
  3. Eric SunshineMar 29, 2016
  4. 2/5 t/t5520: explicitly unset rebase.autostashMehul Jain, Mar 29, 2016
  5. Eric SunshineMar 29, 2016
  6. 3/5 t/t5520: use test_i18ngrep instead of test_cmpMehul Jain, Mar 29, 2016
  7. Eric SunshineMar 29, 2016
  8. 4/5 t/t5520: modify tests to reduce common codeMehul Jain, Mar 29, 2016
  9. Junio C HamanoMar 29, 2016
  10. Eric SunshineMar 29, 2016
  11. 5/5 t/t5520: test --[no-]autostash with pull.rebase=trueMehul Jain, Mar 29, 2016
  12. Eric SunshineMar 29, 2016
  13. Mehul JainMar 30, 2016
  14. Eric SunshineMar 30, 2016
  15. Mehul JainApr 1, 2016
  16. Eric SunshineApr 3, 2016
  17. Mehul JainApr 4, 2016
  18. Matthieu MoyApr 4, 2016
  19. Mehul JainApr 4, 2016
  20. Eric SunshineApr 4, 2016
  21. Matthieu MoyApr 4, 2016
  22. Matthieu MoyApr 4, 2016

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.