blob: b658a094cf6cdeab88c14b940cf5307f481b2d56 [file] [log] [blame]
From 7fe475756b26080fe0bb02e8e317662ccc9a01f1 Mon Sep 17 00:00:00 2001
From: Colin Cross <ccross@android.com>
Date: Thu, 15 Sep 2022 23:58:57 +0000
Subject: [PATCH] Set HOME for tests that use module cache path
Getting the default module cache path calls llvm::sys::path::cache_directory,
which calls home_directory, which checks the HOME environment variable
before falling back to getpwuid. When compiling against musl libc,
which does not support NSS, and running on a machine that doesn't have
the current user in /etc/passwd due to NSS, no home directory can
be found. Set the HOME environment variable in the tests to avoid
depending on getpwuid.
Reviewed By: pirama, srhines
Differential Revision: https://reviews.llvm.org/D132984
---
clang/test/Driver/modules-cache-path.m | 2 +-
clang/test/Modules/driver.c | 2 +-
clang/test/Unit/lit.cfg.py | 3 +++
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/clang/test/Driver/modules-cache-path.m b/clang/test/Driver/modules-cache-path.m
index 1da27d214363..302a8bb1e3b9 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 HOME=%t.home %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 34fc163a5ccd..abd2e7040475 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 HOME=%t.home %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/clang/test/Unit/lit.cfg.py b/clang/test/Unit/lit.cfg.py
index 6fddb32f8dd7..60a1e79e9330 100644
--- a/clang/test/Unit/lit.cfg.py
+++ b/clang/test/Unit/lit.cfg.py
@@ -30,6 +30,9 @@ if 'TMP' in os.environ:
if 'TEMP' in os.environ:
config.environment['TEMP'] = os.environ['TEMP']
+if 'HOME' in os.environ:
+ config.environment['HOME'] = os.environ['HOME']
+
# Propagate sanitizer options.
for var in [
'ASAN_SYMBOLIZER_PATH',
--
2.37.3.968.ga6b4b080e4-goog