1 // Copyright 2023 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/test/scoped_block_tests_writing_to_special_dirs.h" 6 7 #include <ostream> 8 #include <utility> 9 10 #include "base/check.h" 11 12 namespace base { 13 ScopedBlockTestsWritingToSpecialDirs(std::vector<int> dirs_to_block,FileWriteBlockedForTestingFunctionPtr failure_callback)14ScopedBlockTestsWritingToSpecialDirs::ScopedBlockTestsWritingToSpecialDirs( 15 std::vector<int> dirs_to_block, 16 FileWriteBlockedForTestingFunctionPtr failure_callback) { 17 CHECK(failure_callback) << "Can't use NULL failure callback"; 18 auto& special_dir_write_blocker = BlockTestsWritingToSpecialDirs::Get(); 19 CHECK(!special_dir_write_blocker.has_value()) 20 << "ScopedBlockTestsWritingToSpecialDirs can't be nested."; 21 22 special_dir_write_blocker.emplace(std::move(dirs_to_block), failure_callback); 23 } 24 ~ScopedBlockTestsWritingToSpecialDirs()25ScopedBlockTestsWritingToSpecialDirs::~ScopedBlockTestsWritingToSpecialDirs() { 26 BlockTestsWritingToSpecialDirs::Get().reset(); 27 } 28 29 } // namespace base 30