From d96f526196ac4cebfdd318473816f6d4b9d76707 Mon Sep 17 00:00:00 2001 From: Ben Langmuir Date: Fri, 9 Sep 2022 15:56:08 -0700 Subject: [PATCH] [clang][test] Disallow using the default module cache path in lit tests Make the default module cache path invalid when running lit tests so that tests are forced to provide a cache path. This avoids accidentally escaping to the system default location, and would have caught the failure recently found in ClangScanDeps/multiple-commands.c. Differential Revision: https://reviews.llvm.org/D133622 --- clang/test/Driver/modules-cache-path.m | 2 +- clang/test/Modules/driver.c | 2 +- llvm/utils/lit/lit/llvm/config.py | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/clang/test/Driver/modules-cache-path.m b/clang/test/Driver/modules-cache-path.m index 1da27d2..f700a97 100644 --- a/clang/test/Driver/modules-cache-path.m +++ b/clang/test/Driver/modules-cache-path.m @@ -1,4 +1,4 @@ -// RUN: %clang -fmodules -### %s 2>&1 | FileCheck %s -check-prefix=CHECK-DEFAULT +// RUN: env -u CLANG_MODULE_CACHE_PATH %clang -fmodules -### %s 2>&1 | FileCheck %s -check-prefix=CHECK-DEFAULT // CHECK-DEFAULT: -fmodules-cache-path={{.*}}clang{{[/\\]+}}ModuleCache // RUN: env CLANG_MODULE_CACHE_PATH=/dev/null \ diff --git a/clang/test/Modules/driver.c b/clang/test/Modules/driver.c index 34fc163..8ffa23b 100644 --- a/clang/test/Modules/driver.c +++ b/clang/test/Modules/driver.c @@ -1,4 +1,4 @@ -// RUN: %clang -fmodules -fimplicit-module-maps %s -### 2>&1 | FileCheck -check-prefix CHECK-NO_MODULE_CACHE %s +// RUN: env -u CLANG_MODULE_CACHE_PATH %clang -fmodules -fimplicit-module-maps %s -### 2>&1 | FileCheck -check-prefix CHECK-NO_MODULE_CACHE %s // RUN: %clang -fmodules -fimplicit-module-maps -fmodules-cache-path=blarg %s -### 2>&1 | FileCheck -check-prefix CHECK-WITH_MODULE_CACHE %s // CHECK-NO_MODULE_CACHE: {{clang.*"-fmodules-cache-path=.*ModuleCache"}} diff --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py index 591b993..6149f4d 100644 --- a/llvm/utils/lit/lit/llvm/config.py +++ b/llvm/utils/lit/lit/llvm/config.py @@ -495,6 +495,10 @@ class LLVMConfig(object): self.clear_environment(possibly_dangerous_env_vars) + # Make the default module cache path invalid so that tests are forced to + # provide a cache path if they use implicit modules. + self.with_environment('CLANG_MODULE_CACHE_PATH', '/dev/null') + # Tweak the PATH to include the tools dir and the scripts dir. # Put Clang first to avoid LLVM from overriding out-of-tree clang # builds. -- 2.7.4