Blender
V2.93
intern
cycles
test
util_task_test.cpp
Go to the documentation of this file.
1
/*
2
* Copyright 2011-2016 Blender Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#include "testing/testing.h"
18
19
#include "
util/util_task.h
"
20
21
CCL_NAMESPACE_BEGIN
22
23
namespace
{
24
25
void
task_run
()
26
{
27
}
28
29
}
// namespace
30
31
TEST
(util_task, basic)
32
{
33
TaskScheduler::init
(0);
34
TaskPool
pool
;
35
for
(
int
i = 0; i < 100; ++i) {
36
pool
.
push
(
function_bind
(
task_run
));
37
}
38
TaskPool::Summary
summary;
39
pool
.
wait_work
(&summary);
40
TaskScheduler::exit
();
41
EXPECT_EQ
(summary.
num_tasks_handled
, 100);
42
}
43
44
TEST
(util_task, multiple_times)
45
{
46
for
(
int
N
= 0;
N
< 1000; ++
N
) {
47
TaskScheduler::init
(0);
48
TaskPool
pool
;
49
for
(
int
i = 0; i < 100; ++i) {
50
pool
.
push
(
function_bind
(
task_run
));
51
}
52
TaskPool::Summary
summary;
53
pool
.
wait_work
(&summary);
54
TaskScheduler::exit
();
55
EXPECT_EQ
(summary.
num_tasks_handled
, 100);
56
}
57
}
58
59
CCL_NAMESPACE_END
EXPECT_EQ
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
TaskScheduler::exit
static void exit()
Definition:
util_task.cpp:96
TaskScheduler::init
static void init(int num_threads=0)
Definition:
util_task.cpp:75
function_bind
#define function_bind
Definition:
depsgraph_type.h:71
CCL_NAMESPACE_END
#define CCL_NAMESPACE_END
Definition:
kernel_compat_cuda.h:23
CCL_NAMESPACE_BEGIN
Definition:
blender_python.cpp:54
CCL_NAMESPACE_BEGIN::task_run
void task_run()
Definition:
util_task_test.cpp:25
blender::compositor::pool
TaskPool * pool
Definition:
COM_WorkScheduler.cc:85
N
params N
Definition:
osl_closures.cpp:106
TaskPool::Summary
Definition:
util_task.h:43
TaskPool::Summary::num_tasks_handled
int num_tasks_handled
Definition:
util_task.h:48
TaskPool
Definition:
task_pool.cc:163
TaskPool::push
void push(TaskRunFunction &&task)
Definition:
util_task.cpp:36
TaskPool::wait_work
void wait_work(Summary *stats=NULL)
Definition:
util_task.cpp:42
util_task.h
TEST
TEST(util_task, basic)
Definition:
util_task_test.cpp:31
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1