Re: [BUG/WIP PATCH] unit-tests: use clean test environment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 03, 2025 at 06:07:29AM -0800, Junio C Hamano wrote:

> Patrick Steinhardt <ps@xxxxxx> writes:
> 
> > Maybe. I guess for unit tests it's a lot less clear cut as most of the
> > tests won't depend on such a controlled environment. So sanitizing the
> > environment would be a good enough first step for me, and if we see
> > demand for making specific information available to lots of tests we
> > could still start to expose those at a later point.
> 
> Fair enough.
> 
> To put it another way, if you write a test and if it gets affected
> by externalities, perhaps you are testing a function that is at too
> high a level that is not a suitable target for unit tested?

I think one problem with this approach is that breakage is likely going
to depend on the user's environment. So something that works just fine
for you, the test author, may introduce a hidden dependency that breaks
for somebody else much later.

Some examples, assuming we just suppress reading Git config:

  - Without an explicit ident, we fall back to constructing one from
    system info. So if a unit test ever creates a commit, it will work
    fine for most people, but not for somebody with a blank GECOS field
    in /etc/passwd. (We do look at that field for reflogs, which current
    unit tests already do, but we are more forgiving there since we
    don't pass IDENT_STRICT).

  - Other programs we call (e.g., imagine gpg or ssh for commit signing
    or verification) may read their own config based on $HOME,
    $XDG_CONFIG_HOME, etc. I don't know if Patrick was including that in
    "sanitizing the environment" or not.

-Peff




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux