// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef TESTING_UTIL_TASK_UTIL_H_ #define TESTING_UTIL_TASK_UTIL_H_ #include #include "gtest/gtest.h" #include "platform/api/time.h" #include "util/osp_logging.h" namespace openscreen { template void WaitForCondition(Cond condition, Clock::duration delay = std::chrono::milliseconds(250), int max_attempts = 8) { int attempts = 1; do { OSP_LOG_INFO << "--- Checking condition, attempt " << attempts << "/" << max_attempts; if (condition()) { break; } std::this_thread::sleep_for(delay); } while (attempts++ < max_attempts); ASSERT_TRUE(condition()); } } // namespace openscreen #endif // TESTING_UTIL_TASK_UTIL_H_