[clang] [Driver] Disable default configs via envvar during testing
authorMichał Górny <mgorny@gentoo.org>
Thu, 29 Sep 2022 20:38:52 +0000 (22:38 +0200)
committerMichał Górny <mgorny@gentoo.org>
Fri, 30 Sep 2022 07:11:50 +0000 (09:11 +0200)
commit924996e0a011eb833a72d2a2cac9b40fa8a42e34
tree1c80ee970596f4b336a210be978a82976ed99a93
parent81fc5f7909a4ef5a8d4b5da2a10f77f7cb01ba63
[clang] [Driver] Disable default configs via envvar during testing

Add support for a CLANG_NO_DEFAULT_CONFIG envvar that works like
the --no-default-config option when set to a non-empty value.  Use it
to disable loading system configuration files during the test suite
runs.

Configuration files can change the driver behavior in extensive ways,
and it is neither really possible nor feasible to account for or undo
the effects of even the most common configuration uses.  Therefore,
the most reasonable option seems to be to ignore configuration files
while running the majority of tests (with the notable exception of tests
for configuration file support).

Due to the diversity of ways that %clang is used in the test suite,
including using it to copy or symlink the clang executable, as well to
call -cc1 and -cc1as modes, it is not feasible to pass the explicit
options to disable config loading either.  Using an environment variable
has the advantage of being easily applied across the test suite
and easily unset for default configuration file loading tests.

Differential Revision: https://reviews.llvm.org/D134905
clang/lib/Driver/Driver.cpp
clang/test/Driver/config-file3.c
clang/test/Driver/env.c
clang/test/Unit/lit.cfg.py
clang/test/lit.cfg.py