blob: c22033d950574c83ba54fee9f9fffaa45eb66c47 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/test/scoped_libc_timezone_override.h"
#include "base/check.h"
#include "base/environment.h"
namespace base::test {
namespace {
constexpr char kTZ[] = "TZ";
} // namespace
ScopedLibcTimezoneOverride::ScopedLibcTimezoneOverride(
const std::string& timezone) {
auto env = base::Environment::Create();
old_value_ = env->GetVar(kTZ);
CHECK(env->SetVar(kTZ, timezone));
tzset();
}
ScopedLibcTimezoneOverride::~ScopedLibcTimezoneOverride() {
auto env = base::Environment::Create();
if (old_value_.has_value()) {
CHECK(env->SetVar(kTZ, *old_value_));
} else {
CHECK(env->UnSetVar(kTZ));
}
tzset();
}
} // namespace base::test