Am 23.07.24 um 11:53 schrieb Patrick Steinhardt: > On Tue, Jul 23, 2024 at 11:25:29AM +0200, René Scharfe wrote: >> Am 23.07.24 um 08:36 schrieb Patrick Steinhardt: >>> There is of course some magic involved with how we generate the file. >> >> It requires magic function names and generates code using a different >> language, while for_test is a just single new control flow keyword, >> like the dozen or so we already have. So the magic employed by the >> libgit2 system is both broader and deeper. > > It is broader, that's certainly true. But it feels more self-contained, > less fragile and easier to read to me compared to macros. In which ways can for_test break? >>> But I think that would be quite manageable, and ultimately all that the >>> developer would need to care about is writing a `test_foo_something()` >>> function. Everything else would be handled by our infra. >> >> With for_test all the developer has to do is write a test with a >> description, no extra infrastructure beyond the existing unit test >> framework needed. > > True, but it feels like it is an invitation for writing unidiomatic > code to me. Unidiomatic in this context to me mostly means code that is > not self-contained and thus cannot be run standalone. Partly this is intentional -- I want to do something that the current idiom (the TEST macro) doesn't allow. It's possible that reducing friction will cause more sloppy tests to be created. I hope that the bad parts will stand out more when there's less boilerplate code. René