Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
FORMUS3IC_LAS3
/
embb
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
0e72ebd6
authored
9 years ago
by
Sachin Basil John
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
formatting cleaning
parent
8c8de084
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
79 additions
and
80 deletions
+79
-80
tasks_cpp/test/tasks_cpp_test_task.cc
+79
-80
No files found.
tasks_cpp/test/tasks_cpp_test_task.cc
View file @
0e72ebd6
...
...
@@ -37,97 +37,96 @@
#define TASK_TEST_ID 23
static
void
testTaskAction
(
char
const
*
msg
,
std
::
string
*
output
,
embb
::
tasks
::
TaskContext
&
/*context*/
)
{
*
output
=
msg
;
char
const
*
msg
,
std
::
string
*
output
,
embb
::
tasks
::
TaskContext
&
/*context*/
)
{
*
output
=
msg
;
}
static
void
testRecursiveTaskAction
(
int
*
value
,
embb
::
tasks
::
TaskContext
&
/*context*/
)
{
embb
::
tasks
::
Node
&
node
=
embb
::
tasks
::
Node
::
GetInstance
();
*
value
=
*
value
+
1
;
if
(
*
value
<
1000
)
{
embb
::
tasks
::
Task
task
=
node
.
Spawn
(
embb
::
base
::
Bind
(
testRecursiveTaskAction
,
value
,
embb
::
base
::
Placeholder
::
_1
));
task
.
Wait
(
MTAPI_INFINITE
);
}
PT_EXPECT
(
*
value
==
1000
);
int
*
value
,
embb
::
tasks
::
TaskContext
&
/*context*/
)
{
embb
::
tasks
::
Node
&
node
=
embb
::
tasks
::
Node
::
GetInstance
();
*
value
=
*
value
+
1
;
if
(
*
value
<
1000
)
{
embb
::
tasks
::
Task
task
=
node
.
Spawn
(
embb
::
base
::
Bind
(
testRecursiveTaskAction
,
value
,
embb
::
base
::
Placeholder
::
_1
));
task
.
Wait
(
MTAPI_INFINITE
);
}
PT_EXPECT
(
*
value
==
1000
);
}
static
void
testErrorTaskAction
(
embb
::
tasks
::
TaskContext
&
context
)
{
context
.
SetStatus
(
MTAPI_ERR_ACTION_FAILED
);
context
.
SetStatus
(
MTAPI_ERR_ACTION_FAILED
);
}
static
void
testDoSomethingElse
()
{
}
static
void
testDoSomethingElse
()
{
}
TaskTest
::
TaskTest
()
{
CreateUnit
(
"tasks_cpp task test"
).
Add
(
&
TaskTest
::
TestBasic
,
this
);
CreateUnit
(
"tasks_cpp task test"
).
Add
(
&
TaskTest
::
TestBasic
,
this
);
}
void
TaskTest
::
TestBasic
()
{
embb
::
tasks
::
Node
::
Initialize
(
THIS_DOMAIN_ID
,
THIS_NODE_ID
);
embb
::
tasks
::
Node
&
node
=
embb
::
tasks
::
Node
::
GetInstance
();
embb
::
tasks
::
ExecutionPolicy
policy
(
false
);
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
0u
);
PT_EXPECT_EQ
(
policy
.
GetPriority
(),
0u
);
policy
.
AddWorker
(
0u
);
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
1u
);
if
(
policy
.
GetCoreCount
()
>
1
)
{
policy
.
AddWorker
(
1u
);
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
3u
);
}
policy
.
RemoveWorker
(
0u
);
PT_EXPECT_EQ
(
policy
.
IsSetWorker
(
0
),
false
);
if
(
policy
.
GetCoreCount
()
>
1
)
{
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
2u
);
PT_EXPECT_EQ
(
policy
.
IsSetWorker
(
1
),
true
);
}
std
::
string
test
;
embb
::
tasks
::
Task
task
=
node
.
Spawn
(
embb
::
base
::
Bind
(
testTaskAction
,
"simple"
,
&
test
,
embb
::
base
::
Placeholder
::
_1
));
testDoSomethingElse
();
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
test
==
"simple"
);
std
::
string
test1
,
test2
,
test3
;
task
=
node
.
First
(
embb
::
base
::
Bind
(
testTaskAction
,
"first"
,
&
test1
,
embb
::
base
::
Placeholder
::
_1
)).
Then
(
embb
::
base
::
Bind
(
testTaskAction
,
"second"
,
&
test2
,
embb
::
base
::
Placeholder
::
_1
)).
Then
(
embb
::
base
::
Bind
(
testTaskAction
,
"third"
,
&
test3
,
embb
::
base
::
Placeholder
::
_1
)).
Spawn
();
testDoSomethingElse
();
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
test1
==
"first"
);
PT_EXPECT
(
test2
==
"second"
);
PT_EXPECT
(
test3
==
"third"
);
int
value
=
0
;
task
=
node
.
Spawn
(
embb
::
base
::
Bind
(
testRecursiveTaskAction
,
&
value
,
embb
::
base
::
Placeholder
::
_1
));
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
value
==
1000
);
mtapi_status_t
status
;
task
=
node
.
Spawn
(
testErrorTaskAction
);
testDoSomethingElse
();
status
=
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
MTAPI_ERR_ACTION_FAILED
==
status
);
embb
::
tasks
::
Node
::
Finalize
();
PT_EXPECT
(
embb_get_bytes_allocated
()
==
0
);
embb
::
tasks
::
Node
::
Initialize
(
THIS_DOMAIN_ID
,
THIS_NODE_ID
);
embb
::
tasks
::
Node
&
node
=
embb
::
tasks
::
Node
::
GetInstance
();
embb
::
tasks
::
ExecutionPolicy
policy
(
false
);
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
0u
);
PT_EXPECT_EQ
(
policy
.
GetPriority
(),
0u
);
policy
.
AddWorker
(
0u
);
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
1u
);
if
(
policy
.
GetCoreCount
()
>
1
)
{
policy
.
AddWorker
(
1u
);
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
3u
);
}
policy
.
RemoveWorker
(
0u
);
PT_EXPECT_EQ
(
policy
.
IsSetWorker
(
0
),
false
);
if
(
policy
.
GetCoreCount
()
>
1
)
{
PT_EXPECT_EQ
(
policy
.
GetAffinity
(),
2u
);
PT_EXPECT_EQ
(
policy
.
IsSetWorker
(
1
),
true
);
}
std
::
string
test
;
embb
::
tasks
::
Task
task
=
node
.
Spawn
(
embb
::
base
::
Bind
(
testTaskAction
,
"simple"
,
&
test
,
embb
::
base
::
Placeholder
::
_1
));
testDoSomethingElse
();
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
test
==
"simple"
);
std
::
string
test1
,
test2
,
test3
;
task
=
node
.
First
(
embb
::
base
::
Bind
(
testTaskAction
,
"first"
,
&
test1
,
embb
::
base
::
Placeholder
::
_1
)).
Then
(
embb
::
base
::
Bind
(
testTaskAction
,
"second"
,
&
test2
,
embb
::
base
::
Placeholder
::
_1
)).
Then
(
embb
::
base
::
Bind
(
testTaskAction
,
"third"
,
&
test3
,
embb
::
base
::
Placeholder
::
_1
)).
Spawn
();
testDoSomethingElse
();
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
test1
==
"first"
);
PT_EXPECT
(
test2
==
"second"
);
PT_EXPECT
(
test3
==
"third"
);
int
value
=
0
;
task
=
node
.
Spawn
(
embb
::
base
::
Bind
(
testRecursiveTaskAction
,
&
value
,
embb
::
base
::
Placeholder
::
_1
));
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
value
==
1000
);
mtapi_status_t
status
;
task
=
node
.
Spawn
(
testErrorTaskAction
);
testDoSomethingElse
();
status
=
task
.
Wait
(
MTAPI_INFINITE
);
PT_EXPECT
(
MTAPI_ERR_ACTION_FAILED
==
status
);
embb
::
tasks
::
Node
::
Finalize
();
PT_EXPECT
(
embb_get_bytes_allocated
()
==
0
);
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment