aboutsummaryrefslogtreecommitdiff
path: root/cc/util
diff options
context:
space:
mode:
authorambrosin <ambrosin@google.com>2023-02-01 07:08:02 -0800
committerCopybara-Service <copybara-worker@google.com>2023-02-01 07:09:24 -0800
commit443888844deaa846f65b8c49e48dd4044de2d01b (patch)
tree0eb7b3813856d98543f074f4e46d0357eb65e699 /cc/util
parentf1267db697e6c176aa4bdc2417ed3ed8ae714252 (diff)
downloadtink-443888844deaa846f65b8c49e48dd4044de2d01b.tar.gz
Look for `TEMP` and `TMP` env variables when returning the tmp dir path in tests
These env variables are set on Windows. PiperOrigin-RevId: 506306582
Diffstat (limited to 'cc/util')
-rw-r--r--cc/util/test_util.cc19
1 files changed, 11 insertions, 8 deletions
diff --git a/cc/util/test_util.cc b/cc/util/test_util.cc
index 5413bba5b..2e58daeda 100644
--- a/cc/util/test_util.cc
+++ b/cc/util/test_util.cc
@@ -124,15 +124,18 @@ std::string HexEncode(absl::string_view bytes) {
}
std::string TmpDir() {
- // The Bazel 'test' command sets TEST_TMPDIR.
- const char* env = getenv("TEST_TMPDIR");
- if (env && env[0] != '\0') {
- return env;
- }
- env = getenv("TMPDIR");
- if (env && env[0] != '\0') {
- return env;
+ // Try the following environment variables in order:
+ // - TEST_TMPDIR: Set by `bazel test`.
+ // - TMPDIR: Set by some Tink tests.
+ // - TEMP, TMP: Set on Windows; they contain the tmp dir's path.
+ for (const std::string& tmp_env_variable :
+ {"TEST_TMPDIR", "TMPDIR", "TEMP", "TMP"}) {
+ const char* env = getenv(tmp_env_variable.c_str());
+ if (env && env[0] != '\0') {
+ return env;
+ }
}
+ // Tmp dir on Linux/macOS.
return "/tmp";
}