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

Re: [PATCH v7 1/6] t5323: test cases for git-pack-redundant

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Feb 1, 2019, 06:11 UTC
Message-ID
<CAPig+cS84BOPdrZ+e1Z9ystx6SDyON0MJxVySQyxYE=LYcNRdg@mail.gmail.com>
In-Reply-To
<CANYiYbG5vbV1bqbHu-u19XFy7JTpcopg0s=JWAhJBRNGvP7j3g@mail.gmail.com>
On Fri, Feb 1, 2019 at 12:44 AM Jiang Xin <worldhello.net@gmail.com> wrote:
Show 12 quoted lines
>> Junio C Hamano <gitster@pobox.com> 于2019年2月1日周五 上午5:44写道:
> > Move this outside loop, not for efficiency but for clarity. This
> > helper function creates a single empty tree and bunch of commits
> > that hold the same empty tree, arranged as a single strand of
> > pearls.
>
> Will rewrite as:
>
>     create_commits () {
>             parent=
>             T=$(git write-tree) &&
>             for name in A B C D E F G H I J K L M N O P Q R

Don't forget the && at the end of the 'parent=' line to protect against someone later adding code above that line. So:

    create_commits () {
        parent= &&
        T=$(git write-tree) &&
        ...
Show 20 quoted lines
> Nice chart, will edit test_description as follows:
>
>     test_description='git pack-redundant test
>
>     In order to test git-pack-redundant, we will create a number of
> redundant
>     packs in the repository `master.git`. The relationship between
> packs (P1-P8)
>     and objects (T,A-R) is show in the following chart:
>
>            | T A B C D E F G H I J K L M N O P Q R
>         ---+--------------------------------------
>         P1 | x x x x x x x                       x
>         P2 |     x x x x   x x x
>         P3 |             x     x x x x x
>         P4 |                     x x x x     x
>         P5 |               x x           x x
>         P6 |                             x x   x
>         P7 |                                 x x
>         P8 |   x

test_description should be a meaningful one-liner; it should not contain this other information, but this information should appear as comments in the test script.

>     Another repoisitory `shared.git` has unique objects (X-Z), while
> share others
s/repoisitory/repository/
Show 13 quoted lines
> > > +test_expect_success 'setup master.git' '
> > > +     git init --bare master.git &&
> > > +     cd master.git &&
> > > +     create_commits
> > > +'
> >
> > Everything below will be done inside master.git?  Avoid cd'ing
> > around in random places in the test script, as a failure in any of
> > the steps that does cd would start later tests in an unexpected
> > place, if you can.
>
> The first 10 test cases will run inside master.git, and others will
> run inside shared.git.  Only run cd inside the two `setup` test cases.

That's not what Junio meant. It's okay for tests to 'cd', but each test which does so _must_ ensure that the 'cd' is undone at the end of the test, even if the test fails. The correct way to do this within each test is by using 'cd' in a subhsell, like this:

    test_expect_success 'setup master.git' '
        git init --bare master.git &&
        (
            cd master.git &&
            create_commits
        )
    '
Then, each test which needs to use "master.git" would 'cd' itself, like this:
    test_expect_success 'some test' '
        (
            cd master.git &&
            ...
        )
    '
Show 7 quoted lines
> > > +test_expect_success 'setup shared.git' '
> > > +     cd "$TRASH_DIRECTORY" &&
> > > +     git clone -q --mirror master.git shared.git &&
> >
> > Why "-q"?
>
> To make verbose output cleaner.

What Junio really meant by asking that question was that you should not do this. When something goes wrong with a test, we want as much output as possible to help diagnose the problem, so suppressing output is undesirable. To summarize, don't use -q, --no-progress, or any other such option and don't redirect to /dev/null.

Previous: Jiang XinNext: Jiang Xin
Message 31 of 83 in “pack-redundant: new algorithm to find min packs”
  1. 1/2 pack-redundant: new algorithm to find min packsJiang Xin, Dec 18, 2018
  2. 2/2 pack-redundant: remove unused functionsJiang Xin, Dec 18, 2018
  3. 0/3 pack-redundant: new algorithm to find min packsJiang Xin, Dec 19, 2018
  4. 0/3 pack-redundant: new algorithm to find min packsJiang Xin, Jan 2, 2019
  5. 1/3 t5323: test cases for git-pack-redundantJiang Xin, Jan 2, 2019
  6. SZEDER GáborJan 9, 2019
  7. SZEDER GáborJan 9, 2019
  8. 0/5 pack-redundant: new algorithm to find min packsJiang Xin, Jan 10, 2019
  9. 0/5 pack-redundant: new algorithm to find min packsJiang Xin, Jan 12, 2019
  10. 0/6 pack-redundant: new algorithm to find min packsJiang Xin, Jan 30, 2019
  11. 0/6 pack-redundant: new algorithm to find min packsJiang Xin, Feb 1, 2019
  12. 1/6 t5323: test cases for git-pack-redundantJiang Xin, Feb 1, 2019
  13. Eric SunshineFeb 1, 2019
  14. Junio C HamanoFeb 1, 2019
  15. Eric SunshineFeb 1, 2019
  16. 0/6 pack-redundant: new algorithm to find min packsJiang Xin, Feb 2, 2019
  17. 1/6 t5323: test cases for git-pack-redundantJiang Xin, Feb 2, 2019
  18. 2/6 pack-redundant: delay creation of unique_objectsJiang Xin, Feb 2, 2019
  19. 3/6 pack-redundant: delete redundant codeJiang Xin, Feb 2, 2019
  20. 4/6 pack-redundant: new algorithm to find min packsJiang Xin, Feb 2, 2019
  21. 5/6 pack-redundant: rename pack_list.all_objectsJiang Xin, Feb 2, 2019
  22. 6/6 pack-redundant: consistent sort methodJiang Xin, Feb 2, 2019
  23. 2/6 pack-redundant: delay creation of unique_objectsJiang Xin, Feb 1, 2019
  24. 3/6 pack-redundant: delete redundant codeJiang Xin, Feb 1, 2019
  25. 4/6 pack-redundant: new algorithm to find min packsJiang Xin, Feb 1, 2019
  26. 5/6 pack-redundant: rename pack_list.all_objectsJiang Xin, Feb 1, 2019
  27. 6/6 pack-redundant: consistent sort methodJiang Xin, Feb 1, 2019
  28. 1/6 t5323: test cases for git-pack-redundantJiang Xin, Jan 30, 2019
  29. Junio C HamanoJan 31, 2019
  30. Jiang XinFeb 1, 2019
  31. Eric SunshineFeb 1, 2019
  32. Jiang XinFeb 1, 2019
  33. Jiang XinFeb 1, 2019
  34. Jiang XinFeb 1, 2019
  35. 2/6 pack-redundant: delay creation of unique_objectsJiang Xin, Jan 30, 2019
  36. 3/6 pack-redundant: new algorithm to find min packsJiang Xin, Jan 30, 2019
  37. Junio C HamanoJan 31, 2019
  38. Jiang XinFeb 1, 2019
  39. 4/6 pack-redundant: remove unused functionsJiang Xin, Jan 30, 2019
  40. 1/1 pack-redundant: delete redundant code16657101987@163.com, Jan 30, 2019
  41. 5/6 pack-redundant: rename pack_list.all_objectsJiang Xin, Jan 30, 2019
  42. 6/6 pack-redundant: consistent sort methodJiang Xin, Jan 30, 2019
  43. 1/5 t5323: test cases for git-pack-redundantJiang Xin, Jan 12, 2019
  44. 2/5 pack-redundant: new algorithm to find min packsJiang Xin, Jan 12, 2019
  45. 3/5 pack-redundant: remove unused functionsJiang Xin, Jan 12, 2019
  46. 4/5 pack-redundant: rename pack_list.all_objectsJiang Xin, Jan 12, 2019
  47. 5/5 pack-redundant: consistent sort methodJiang Xin, Jan 12, 2019
  48. 1/5 t5323: test cases for git-pack-redundantJiang Xin, Jan 10, 2019
  49. Junio C HamanoJan 10, 2019
  50. Jiang XinJan 11, 2019
  51. Junio C HamanoJan 11, 2019
  52. 2/5 pack-redundant: new algorithm to find min packsJiang Xin, Jan 10, 2019
  53. SZEDER GáborJan 11, 2019
  54. 3/5 pack-redundant: rename pack_list.all_objectsJiang Xin, Jan 10, 2019
  55. 4/5 pack-redundant: consistent sort methodJiang Xin, Jan 10, 2019
  56. SZEDER GáborJan 10, 2019
  57. 5/5 pack-redundant: remove unused functionsJiang Xin, Jan 10, 2019
  58. Jiang XinJan 10, 2019
  59. Johannes SixtJan 10, 2019
  60. SZEDER GáborJan 10, 2019
  61. Torsten BögershausenJan 10, 2019
  62. Junio C HamanoJan 10, 2019
  63. 1/1 test-lint: sed -E (or -a, -l) are not portabletboegi@web.de, Jan 15, 2019
  64. Eric SunshineJan 15, 2019
  65. Ævar Arnfjörð BjarmasonJan 16, 2019
  66. 1/1 test-lint: Only use only sed [-n] [-e command] [-f command_file]tboegi@web.de, Jan 20, 2019
  67. Junio C HamanoJan 22, 2019
  68. Torsten BögershausenJan 22, 2019
  69. Eric SunshineJan 22, 2019
  70. Torsten BögershausenJan 23, 2019
  71. Junio C HamanoJan 23, 2019
  72. Torsten BögershausenJan 25, 2019
  73. Junio C HamanoJan 27, 2019
  74. 2/3 pack-redundant: new algorithm to find min packsJiang Xin, Jan 2, 2019
  75. 3/3 pack-redundant: remove unused functionsJiang Xin, Jan 2, 2019
  76. 1/1 pack-redundant: remove unused functions16657101987@163.com, Jan 8, 2019
  77. 0/1 pack-redundant: remove unused functions16657101987@163.com, Jan 8, 2019
  78. Junio C HamanoJan 8, 2019
  79. 16657101987@163.comJan 9, 2019
  80. 0/1 pack-redundant: remove unused functions16657101987@163.com, Jan 8, 2019
  81. 1/3 t5322: test cases for git-pack-redundantJiang Xin, Dec 19, 2018
  82. 2/3 pack-redundant: new algorithm to find min packsJiang Xin, Dec 19, 2018
  83. 3/3 pack-redundant: remove unused functionsJiang Xin, Dec 19, 2018

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.