// 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/task/sequence_manager/work_tracker.h" #include <optional> #include "base/test/bind.h" #include "base/test/test_timeouts.h" #include "base/threading/platform_thread.h" #include "base/threading/thread.h" #include "testing/gtest/include/gtest/gtest.h" namespace base::sequence_manager::internal { // Verify that no sync work authorization is granted unless allowed by // `SetRunTaskSynchronouslyAllowed()`. TEST(SequenceManagerWorkTrackerTest, SetRunTaskSynchronouslyAllowed) { … } // Verify that `SetRunTaskSynchronouslyAllowed(false)` blocks until there is no // valid sync work authorization. TEST(SequenceManagerWorkTrackerTest, SetRunTaskSynchronouslyAllowedBlocks) { … } // Verify that after `WillRequestReloadImmediateWorkQueue()`, // `WillReloadImmediateWorkQueues()` and `OnIdle()` must be called in sequence // for a sync work authorization to be granted. TEST(SequenceManagerWorkTrackerTest, WillRequestReloadImmediateWorkQueue) { … } // Verify that after `OnBeginWork()`, `OnIdle()` must be called for a sync // work authorization to be granted. TEST(SequenceManagerWorkTrackerTest, OnBeginWork) { … } // Verify that its not possible to simultaneously acquire two sync work // authorizations. TEST(SequenceManagerWorkTrackerTest, TwoSyncWorkAuthorizations) { … } // Verify that `OnBeginWork()` blocks until there is no valid sync work // authorization. TEST(SequenceManagerWorkTrackerTest, OnBeginWorkBlocks) { … } } // namespace base::sequence_manager::internal