Lines Matching full:base
5 #include "base/functional/callback_helpers.h"
10 #include "base/functional/bind.h"
11 #include "base/functional/callback.h"
12 #include "base/test/gtest_util.h"
35 static_assert(TestConversionAndAssignment<decltype(base::NullCallback()), \
38 TestConversionAndAssignment<decltype(base::NullCallbackAs<Sig>()), \
40 static_assert(TestConversionAndAssignment<decltype(base::DoNothing()), \
43 TestConversionAndAssignment<decltype(base::DoNothingAs<Sig>()), \
46 decltype(base::DoNothingWithBoundArgs(BoundArg)), \
50 !TestConversionAndAssignment<decltype(base::NullCallbackAs<BadSig>()), \
53 !TestConversionAndAssignment<decltype(base::DoNothingAs<BadSig>()), \
56 decltype(base::DoNothingWithBoundArgs(BadArg())), \
60 static_assert(TestConversionAndAssignment<decltype(base::NullCallback()), \
63 TestConversionAndAssignment<decltype(base::NullCallbackAs<Sig>()), \
69 static_assert(!TestConversionAndAssignment<decltype(base::DoNothing()), \
72 !TestConversionAndAssignment<decltype(base::DoNothingAs<Sig>()), \
75 decltype(base::DoNothingWithBoundArgs(BoundArg)), \
79 !TestConversionAndAssignment<decltype(base::NullCallbackAs<BadSig>()), \
82 !TestConversionAndAssignment<decltype(base::DoNothingAs<BadSig>()), \
85 decltype(base::DoNothingWithBoundArgs(BadArg())), \
88 VOID_RETURN_CALLBACK_TAG_TEST(base::OnceCallback, void(), void(char), );
89 VOID_RETURN_CALLBACK_TAG_TEST(base::OnceCallback, void(int), void(char), 8);
90 NON_VOID_RETURN_CALLBACK_TAG_TEST(base::OnceCallback, int(int), char(int), 8);
92 VOID_RETURN_CALLBACK_TAG_TEST(base::RepeatingCallback, void(), void(char), );
93 VOID_RETURN_CALLBACK_TAG_TEST(base::RepeatingCallback,
97 NON_VOID_RETURN_CALLBACK_TAG_TEST(base::RepeatingCallback,
106 // Check that base::{Once,Repeating}Closures and references to them are in TEST()
107 // considered base::{Once,Repeating}Callbacks. in TEST()
108 static_assert(base::IsBaseCallback<base::OnceClosure>); in TEST()
109 static_assert(base::IsBaseCallback<base::RepeatingClosure>); in TEST()
110 static_assert(base::IsBaseCallback<base::OnceClosure&&>); in TEST()
111 static_assert(base::IsBaseCallback<const base::RepeatingClosure&>); in TEST()
113 // Check that base::{Once, Repeating}Callbacks with a given RunType and in TEST()
114 // references to them are considered base::{Once, Repeating}Callbacks. in TEST()
115 static_assert(base::IsBaseCallback<base::OnceCallback<int(int)>>); in TEST()
116 static_assert(base::IsBaseCallback<base::RepeatingCallback<int(int)>>); in TEST()
117 static_assert(base::IsBaseCallback<base::OnceCallback<int(int)>&&>); in TEST()
118 static_assert(base::IsBaseCallback<const base::RepeatingCallback<int(int)>&>); in TEST()
120 // Check that POD types are not considered base::{Once, Repeating}Callbacks. in TEST()
121 static_assert(!base::IsBaseCallback<bool>); in TEST()
122 static_assert(!base::IsBaseCallback<int>); in TEST()
123 static_assert(!base::IsBaseCallback<double>); in TEST()
126 // base::{Once, Repeating}Callback. in TEST()
127 static_assert(!base::IsBaseCallback<std::function<void()>>); in TEST()
128 static_assert(!base::IsBaseCallback<const std::function<void()>&>); in TEST()
129 static_assert(!base::IsBaseCallback<std::function<void()>&&>); in TEST()
145 base::ScopedClosureRunner runner1; in TEST()
148 base::ScopedClosureRunner runner2{base::DoNothing()}; in TEST()
155 base::ScopedClosureRunner runner(base::BindOnce(&Increment, &run_count)); in TEST()
163 base::OnceClosure c; in TEST()
165 base::ScopedClosureRunner runner(base::BindOnce(&Increment, &run_count)); in TEST()
178 base::ScopedClosureRunner runner; in TEST()
179 runner.ReplaceClosure(base::BindOnce(&Increment, &run_count_1)); in TEST()
180 runner.ReplaceClosure(base::BindOnce(&Increment, &run_count_2)); in TEST()
191 base::ScopedClosureRunner runner(base::BindOnce(&Increment, &run_count_3)); in TEST()
200 base::ScopedClosureRunner runner; in TEST()
207 std::unique_ptr<base::ScopedClosureRunner> runner( in TEST()
208 new base::ScopedClosureRunner(base::BindOnce(&Increment, &run_count))); in TEST()
209 base::ScopedClosureRunner runner2(std::move(*runner)); in TEST()
220 base::ScopedClosureRunner runner(base::BindOnce(&Increment, &run_count_1)); in TEST()
222 base::ScopedClosureRunner runner2( in TEST()
223 base::BindOnce(&Increment, &run_count_2)); in TEST()
236 base::OnceCallback<void(int*)> cb = base::NullCallback(); in TEST()
239 auto split = base::SplitOnceCallback(std::move(cb)); in TEST()
242 std::pair<base::OnceCallback<void(int*)>, in TEST()
243 base::OnceCallback<void(int*)>>>, in TEST()
251 base::OnceCallback<void(int*)> cb = in TEST()
252 base::BindOnce([](int* count) { ++*count; }); in TEST()
254 auto split = base::SplitOnceCallback(std::move(cb)); in TEST()
257 std::pair<base::OnceCallback<void(int*)>, in TEST()
258 base::OnceCallback<void(int*)>>>, in TEST()
272 base::OnceCallback<void(int*)> cb = in TEST()
273 base::BindOnce([](int* count) { ++*count; }); in TEST()
275 auto split = base::SplitOnceCallback(std::move(cb)); in TEST()
278 std::pair<base::OnceCallback<void(int*)>, in TEST()
279 base::OnceCallback<void(int*)>>>, in TEST()
291 base::OnceCallback<void(int*)> cb = in TEST()
292 base::BindOnce([](int* count) { ++*count; }); in TEST()
294 auto split = base::SplitOnceCallback(std::move(cb)); in TEST()
295 base::OnceCallback<void(int*)> cb1 = std::move(split.first); in TEST()
296 split = base::SplitOnceCallback(std::move(split.second)); in TEST()
297 base::OnceCallback<void(int*)> cb2 = std::move(split.first); in TEST()
298 base::OnceCallback<void(int*)> cb3 = std::move(split.second); in TEST()
309 base::OnceCallback<void(int*)> cb = in TEST()
310 base::BindOnce([](int* count) { ++*count; }); in TEST()
312 auto split = base::SplitOnceCallback(std::move(cb)); in TEST()
313 base::OnceCallback<void(int*)> cb1 = std::move(split.first); in TEST()
314 split = base::SplitOnceCallback(std::move(split.second)); in TEST()
315 base::OnceCallback<void(int*)> cb2 = std::move(split.first); in TEST()
316 base::OnceCallback<void(int*)> cb3 = std::move(split.second); in TEST()
327 base::RepeatingClosure repeating_closure = in TEST()
328 base::BindRepeating(&Increment, &count); in TEST()
329 base::OnceClosure once_closure = base::BindOnce(&Increment, &count); in TEST()
331 base::RepeatingCallback<void(int)> repeating_int_cb = in TEST()
332 base::IgnoreArgs<int>(repeating_closure); in TEST()
339 base::OnceCallback<void(int)> once_int_cb = in TEST()
340 base::IgnoreArgs<int>(std::move(once_closure)); in TEST()
346 auto repeating_callback = base::BindRepeating(&Increment); in TEST()
347 auto repeating_cb_with_extra_arg = base::IgnoreArgs<bool>(repeating_callback); in TEST()
352 auto once_callback = base::BindOnce(&Increment); in TEST()
354 base::IgnoreArgs<char, bool>(repeating_callback); in TEST()
360 base::RepeatingCallback<void(int)> repeating_int_cb = in TEST()
361 base::IgnoreArgs<int>(base::RepeatingClosure()); in TEST()
364 base::OnceCallback<void(int)> once_int_cb = in TEST()
365 base::IgnoreArgs<int>(base::OnceClosure()); in TEST()
371 base::RepeatingCallback<int(void)> repeating_no_param_cb = in TEST()
372 base::BindRepeating(&IncrementAndReturn, &count); in TEST()
373 base::OnceCallback<int(void)> once_no_param_cb = in TEST()
374 base::BindOnce(&IncrementAndReturn, &count); in TEST()
376 base::RepeatingCallback<int(int)> repeating_int_cb = in TEST()
377 base::IgnoreArgs<int>(repeating_no_param_cb); in TEST()
384 base::OnceCallback<int(int)> once_int_cb = in TEST()
385 base::IgnoreArgs<int>(std::move(once_no_param_cb)); in TEST()
391 auto repeating_cb = base::BindRepeating(&IncrementAndReturn); in TEST()
392 auto repeating_cb_with_extra_arg = base::IgnoreArgs<bool>(repeating_cb); in TEST()
397 auto once_cb = base::BindOnce(&IncrementAndReturn); in TEST()
399 base::IgnoreArgs<char, bool>(std::move(once_cb)); in TEST()
407 base::ForwardRepeatingCallbacks({base::BindRepeating(&IncrementWithRef), in TEST()
408 base::BindRepeating(&IncrementWithRef)}); in TEST()
419 auto string_factory = base::ReturnValueOnce(std::string("test")); in TEST()
421 base::OnceCallback<std::string(void)>>); in TEST()
425 auto unique_ptr_factory = base::ReturnValueOnce(std::make_unique<int>(42)); in TEST()
427 base::OnceCallback<std::unique_ptr<int>(void)>>); in TEST()