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

Re: [RFC PATCH v3 1/1] unit tests: Add a project plan document

From
Glen Choo <chooglen@google.com>
Date
Jul 6, 2023, 18:24 UTC
Message-ID
<kl6l1qhkrj83.fsf@chooglen-macbookpro.roam.corp.google.com>
In-Reply-To
<owlywmzk7nnb.fsf@fine.c.googlers.com>
Linus Arver <linusa@google.com> writes:
Show 12 quoted lines
> Josh Steadmon <steadmon@google.com> writes:
>
> Sorry, one more thing worth considering is the ability to add tests
> inline with production code (where the test code can be removed in
> production builds). There are a number of benefits to this and, I think
> it is a useful feature to have. I saw this feature being advertised for
> a C++ testing framework called doctest [1], but I assume it is also
> possible in C. Could you include it as another (nice to have?) feature
> under the "Developer experience" category? (Or, reject it if this
> "inlined tests" style is not possible in C?)
>
> [1] https://github.com/doctest/doctest
I suspect it's possible in C, but it's not that desirable for Git.
- Inline tests are, by nature, non-production 'noise' in the source
  file, and can hamper readability of the file. This will probably be
  exaggerated in Git because our interfaces weren't designed with unit
  tests in mind, so tests may be extremley noisy to set up.
- The described inline approach seems to be to build the same executable
  but with different flags. But for libification, we'd want to verify
  that we can build a separate executable with only a subset of files. A
  natural way to do that is to have unit tests in a separate file and
  for that to depend on only the subset we want.
Previous: Linus ArverNext: Junio C Hamano
Message 24 of 32 in “Add an external testing library for unit tests”
  1. 0/4 Add an external testing library for unit testssteadmon@google.com, May 17, 2023
  2. 1/4 common-main: split common_exit() into a new filesteadmon@google.com, May 17, 2023
  3. Junio C HamanoMay 18, 2023
  4. Splitting common-main (Was: Re: [PATCH RFC v2 1/4] common-main: split common_exit() into a new file)Josh Steadmon, Jul 14, 2023
  5. Junio C HamanoJul 15, 2023
  6. Jeff HostetlerAug 14, 2023
  7. 2/4 unit tests: Add a project plan documentsteadmon@google.com, May 17, 2023
  8. Phillip WoodMay 18, 2023
  9. Glen ChooMay 18, 2023
  10. Josh SteadmonMay 24, 2023
  11. Phillip WoodJun 1, 2023
  12. 3/4 Add C TAP harnesssteadmon@google.com, May 17, 2023
  13. Phillip WoodMay 18, 2023
  14. Josh SteadmonMay 18, 2023
  15. 4/4 unit test: add basic example and build rulessteadmon@google.com, May 17, 2023
  16. Phillip WoodMay 18, 2023
  17. 0/1 Add a project document for adding unit testsJosh Steadmon, Jun 9, 2023
  18. 1/1 unit tests: Add a project plan documentJosh Steadmon, Jun 9, 2023
  19. Junio C HamanoJun 13, 2023
  20. Josh SteadmonJun 30, 2023
  21. Linus ArverJun 29, 2023
  22. Josh SteadmonJun 29, 2023
  23. Linus ArverJun 30, 2023
  24. Glen ChooJul 6, 2023
  25. Junio C HamanoJul 6, 2023
  26. Glen ChooJul 6, 2023
  27. Josh SteadmonJun 30, 2023
  28. Junio C HamanoJun 29, 2023
  29. Linus ArverJun 30, 2023
  30. Phillip WoodJun 30, 2023
  31. K WanJun 30, 2023
  32. Josh SteadmonJun 30, 2023

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.