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

Re: [PATCH 3/6] t5516 (fetch-push): introduce mk_test_with_name()

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Mar 20, 2013, 20:00 UTC
Message-ID
<20130320200010.GR3655@google.com>
In-Reply-To
<20130320185844.GB30165@sigill.intra.peff.net>
Jeff King wrote:
Show 7 quoted lines
>                                                                    I
> tend to read the tests in a top-down manner: a test is interesting
> (usually because it fails), and then I want to see what it is doing, so
> I look at any functions it calls, and so forth.
>
> What I usually find _much_ harder to debug is when there is hidden state
> leftover from other tests.

Thanks for articulating this. I agree that keeping track of state is the hardest part of working with git's tests.

To clarify my earlier comment, I was reading the test script from the point of view of someone who wants to add an additional test, rather than someone debugging an existing one. That person has a difficult task: she needs to understand

 * What do the existing tests in the script do?  This information
   is important in deciding whether the new test will be redundant.
 * How do I work with the particular dialect used in the script,
   including helpers?  A new test should fit in with the style of its
   surroundings to avoid contributing to an unmaintainable mess.
 * What is the intended scope of the test script?  Does my new test
   belong in this script?
 * What is the logical progression of the script?  What story does this
   script tell?  Where should I insert my test to maintain a logical
   ordering?
 * What state that later tests rely on do I need to avoid clobbering?

Generally the best way to help such a person is to make the script very simple. In particular, using standard helpers instead of custom functions when appropriate and documenting helpers used to give new readers a quick introduction to the dialect can help a lot.

Previous: Junio C HamanoNext: Ramkumar Ramachandra
Message 15 of 33 in “Support triangular workflows”
  1. 0/6 Support triangular workflowsRamkumar Ramachandra, Mar 20, 2013
  2. 1/6 remote.c: simplify a bit of code using git_config_string()Ramkumar Ramachandra, Mar 20, 2013
  3. Jonathan NiederMar 20, 2013
  4. Ramkumar RamachandraMar 20, 2013
  5. 2/6 t5516 (fetch-push): update test descriptionRamkumar Ramachandra, Mar 20, 2013
  6. Jonathan NiederMar 20, 2013
  7. Ramkumar RamachandraMar 20, 2013
  8. Jonathan NiederMar 20, 2013
  9. 3/6 t5516 (fetch-push): introduce mk_test_with_name()Ramkumar Ramachandra, Mar 20, 2013
  10. Jonathan NiederMar 20, 2013
  11. Ramkumar RamachandraMar 20, 2013
  12. Jonathan NiederMar 20, 2013
  13. Jeff KingMar 20, 2013
  14. Junio C HamanoMar 20, 2013
  15. Jonathan NiederMar 20, 2013
  16. 4/6 remote.c: introduce a way to have different remotes for fetch/pushRamkumar Ramachandra, Mar 20, 2013
  17. Jonathan NiederMar 20, 2013
  18. Junio C HamanoMar 20, 2013
  19. Ramkumar RamachandraMar 20, 2013
  20. Junio C HamanoMar 20, 2013
  21. 5/6 remote.c: introduce remote.pushdefaultRamkumar Ramachandra, Mar 20, 2013
  22. Jonathan NiederMar 20, 2013
  23. Junio C HamanoMar 20, 2013
  24. Ramkumar RamachandraMar 20, 2013
  25. 6/6 remote.c: introduce branch.<name>.pushremoteRamkumar Ramachandra, Mar 20, 2013
  26. Tay Ray ChuanMar 20, 2013
  27. Ramkumar RamachandraMar 20, 2013
  28. Tay Ray ChuanMar 20, 2013
  29. Ramkumar RamachandraMar 22, 2013
  30. Philip OakleyMar 20, 2013
  31. Ramkumar RamachandraMar 22, 2013
  32. Junio C HamanoMar 22, 2013
  33. Ramkumar RamachandraMar 23, 2013

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.