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();
// 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.
GLOG_EXPORT void GetExistingTempDirectories(
std::vector<std::string>* list);

View File

@ -76,13 +76,16 @@ _END_GOOGLE_NAMESPACE_
#define GLOG_EXPORT
static inline string GetTempDir() {
#ifndef GLOG_OS_WINDOWS
return "/tmp";
#else
char tmp[MAX_PATH];
GetTempPathA(MAX_PATH, tmp);
return tmp;
#endif
vector<string> temp_directories_list;
google::GetExistingTempDirectories(&temp_directories_list);
if (temp_directories_list.empty()) {
fprintf(stderr, "No temporary directory found\n");
exit(EXIT_FAILURE);
}
// 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)