[libcxx] [test] Explicitly check that some env vars are ignored in the temp_dir_path test

This was suggested in the review of D98139.

Differential Revision: https://reviews.llvm.org/D98696
This commit is contained in:
Martin Storsjö 2021-03-16 13:19:11 +02:00
parent d09adfd399
commit c9fc1a979c
1 changed files with 23 additions and 0 deletions

View File

@ -64,6 +64,14 @@ TEST_CASE(basic_tests)
{"TMP", env.create_dir("dir2")},
{"TEMP", env.create_dir("dir3")},
{"TEMPDIR", env.create_dir("dir4")}
#endif
};
TestCase ignored_cases[] = {
#ifdef _WIN32
{"TMPDIR", env.create_dir("dir5")},
{"TEMPDIR", env.create_dir("dir6")},
#else
{"USERPROFILE", env.create_dir("dir5")},
#endif
};
for (auto& TC : cases) {
@ -114,6 +122,7 @@ TEST_CASE(basic_tests)
UnsetEnv(TC.name);
}
// No env variables are defined
path fallback;
{
std::error_code ec = GetTestEC();
path ret = temp_directory_path(ec);
@ -123,6 +132,20 @@ TEST_CASE(basic_tests)
TEST_CHECK(ret == "/tmp");
#endif
TEST_CHECK(is_directory(ret));
fallback = ret;
}
for (auto& TC : ignored_cases) {
// Check that certain variables are ignored
PutEnv(TC.name, TC.p);
std::error_code ec = GetTestEC();
path ret = temp_directory_path(ec);
TEST_CHECK(!ec);
// Check that we return the same as above when no vars were defined.
TEST_CHECK(ret == fallback);
// Finally erase this env variable
UnsetEnv(TC.name);
}
}