38class env_var_restorer {
40 std::string var_name_;
42 arene::base::optional<std::string> old_val_;
49 explicit env_var_restorer(std::string var_name)
50 : var_name_(std::move(var_name)) {
52 if (
char const*
const old_val{getenv(var_name_.c_str())}) {
53 old_val_.emplace(old_val);
62 std::ignore = setenv(var_name_.c_str(), old_val_->c_str(), 1);
65 std::ignore = unsetenv(var_name_.c_str());
70 env_var_restorer(env_var_restorer
const&) =
delete;
72 env_var_restorer(env_var_restorer&&) =
delete;
74 auto operator=(env_var_restorer
const&) -> env_var_restorer& =
delete;
76 auto operator=(env_var_restorer&&) -> env_var_restorer& =
delete;
97 if (
char const*
const test_tmpdir{getenv(
"TEST_TMPDIR")}) {
99 detail::env_var_restorer
const restorer{
"TMPDIR"};
103 std::ignore = unsetenv(
"TMPDIR");
106 return arene::base::filesystem::temporary_directory{arene::base::filesystem::path_string{test_tmpdir}};
109 return arene::base::filesystem::temporary_directory{};
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10