1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
base / test / scoped_block_tests_writing_to_special_dirs.cc [blame]
// Copyright 2023 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_block_tests_writing_to_special_dirs.h"
#include <ostream>
#include <utility>
#include "base/check.h"
namespace base {
ScopedBlockTestsWritingToSpecialDirs::ScopedBlockTestsWritingToSpecialDirs(
std::vector<int> dirs_to_block,
FileWriteBlockedForTestingFunctionPtr failure_callback) {
CHECK(failure_callback) << "Can't use NULL failure callback";
auto& special_dir_write_blocker = BlockTestsWritingToSpecialDirs::Get();
CHECK(!special_dir_write_blocker.has_value())
<< "ScopedBlockTestsWritingToSpecialDirs can't be nested.";
special_dir_write_blocker.emplace(std::move(dirs_to_block), failure_callback);
}
ScopedBlockTestsWritingToSpecialDirs::~ScopedBlockTestsWritingToSpecialDirs() {
BlockTestsWritingToSpecialDirs::Get().reset();
}
} // namespace base