Tests: Respect TEST_TMPDIR, TMPDIR, TMP environmental variables

Use GetExistingTempDirectories() (which uses GetTempDirectories() which respects
TEST_TMPDIR, TMPDIR, TMP environmental variables) for FLAGS_test_tmpdir variable
used in some tests.

Fixes: #793
This commit is contained in:
Arfrever Frehtes Taifersar Arahesis 2022-02-19 00:00:00 +00:00 committed by Arfrever Frehtes Taifersar Arahesis
parent b38ed9d08a
commit 612a7d28c1
2 changed files with 11 additions and 8 deletions

View File

@ -1819,7 +1819,7 @@ GLOG_EXPORT const std::vector<std::string>& GetLoggingDirectories();
void TestOnly_ClearLoggingDirectoriesList(); void TestOnly_ClearLoggingDirectoriesList();
// Returns a set of existing temporary directories, which will be a // Returns a set of existing temporary directories, which will be a
// subset of the directories returned by GetLogginDirectories(). // subset of the directories returned by GetLoggingDirectories().
// Thread-safe. // Thread-safe.
GLOG_EXPORT void GetExistingTempDirectories( GLOG_EXPORT void GetExistingTempDirectories(
std::vector<std::string>* list); std::vector<std::string>* list);

View File

@ -76,13 +76,16 @@ _END_GOOGLE_NAMESPACE_
#define GLOG_EXPORT #define GLOG_EXPORT
static inline string GetTempDir() { static inline string GetTempDir() {
#ifndef GLOG_OS_WINDOWS vector<string> temp_directories_list;
return "/tmp"; google::GetExistingTempDirectories(&temp_directories_list);
#else
char tmp[MAX_PATH]; if (temp_directories_list.empty()) {
GetTempPathA(MAX_PATH, tmp); fprintf(stderr, "No temporary directory found\n");
return tmp; exit(EXIT_FAILURE);
#endif }
// Use first directory from list of existing temporary directories.
return temp_directories_list.front();
} }
#if defined(GLOG_OS_WINDOWS) && defined(_MSC_VER) && !defined(TEST_SRC_DIR) #if defined(GLOG_OS_WINDOWS) && defined(_MSC_VER) && !defined(TEST_SRC_DIR)