On Thu, Apr 27, 2023 at 11:40 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Calvin Wan <calvinwan@xxxxxxxxxx> writes: > > > ... Unit tests additionally provide stability to the > > codebase and can simplify debugging through isolation. Turning parts of > > Git into libraries[1] gives us the ability to run unit tests on the > > libraries and to write unit tests in C. Writing unit tests in pure C, > > rather than with our current shell/test-tool helper setup, simplifies > > test setup, simplifies passing data around (no shell-isms required), and > > reduces testing runtime by not spawning a separate process for every > > test invocation. > > Good goal, except that unit tests are not panacea---our ultimate > obligation is to give a stable behaviour to the end users and > end-to-end testing is still needed. We would benefit from having > tests at both levels. Ah I seem to have misworded this section a bit. I didn't mean to say that writing unit tests in C would replace our current shell/test-tool setup. I meant to make the comparison between writing unit tests in C vs writing unit tests with our current shell/test-tool setup. And I agree that we would benefit from having tests at both levels.