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
5ad9992c
authored
Mar 31, 2015
by
Tobias Fuchs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dataflow_cpp: added explicit exception handling, improved unit tests
parent
81ce63c8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
4 deletions
+20
-4
dataflow_cpp/test/dataflow_cpp_test_simple.cc
+13
-4
tasks_cpp/src/queue.cc
+7
-0
No files found.
dataflow_cpp/test/dataflow_cpp_test_simple.cc
View file @
5ad9992c
...
@@ -36,6 +36,9 @@
...
@@ -36,6 +36,9 @@
#include <embb/dataflow/dataflow.h>
#include <embb/dataflow/dataflow.h>
#define NUM_SLICES 8
#define TEST_COUNT 12
typedef
embb
::
dataflow
::
Network
<
8
>
MyNetwork
;
typedef
embb
::
dataflow
::
Network
<
8
>
MyNetwork
;
typedef
MyNetwork
::
ConstantSource
<
int
>
MyConstantSource
;
typedef
MyNetwork
::
ConstantSource
<
int
>
MyConstantSource
;
typedef
MyNetwork
::
Source
<
int
>
MySource
;
typedef
MyNetwork
::
Source
<
int
>
MySource
;
...
@@ -49,8 +52,6 @@ typedef MyNetwork::Sink< int > MySink;
...
@@ -49,8 +52,6 @@ typedef MyNetwork::Sink< int > MySink;
typedef
MyNetwork
::
Switch
<
int
>
MySwitch
;
typedef
MyNetwork
::
Switch
<
int
>
MySwitch
;
typedef
MyNetwork
::
Select
<
int
>
MySelect
;
typedef
MyNetwork
::
Select
<
int
>
MySelect
;
#define TEST_COUNT 12
embb
::
base
::
Atomic
<
int
>
source_counter
;
embb
::
base
::
Atomic
<
int
>
source_counter
;
int
source_array
[
TEST_COUNT
];
int
source_array
[
TEST_COUNT
];
...
@@ -148,13 +149,16 @@ SimpleTest::SimpleTest() {
...
@@ -148,13 +149,16 @@ SimpleTest::SimpleTest() {
void
SimpleTest
::
TestBasic
()
{
void
SimpleTest
::
TestBasic
()
{
// All available cores
// All available cores
embb
::
base
::
CoreSet
core_set
(
true
);
embb
::
base
::
CoreSet
core_set
(
true
);
int
num_cores
=
core_set
.
Count
();
embb
::
tasks
::
Node
::
Initialize
(
embb
::
tasks
::
Node
::
Initialize
(
MTAPI_DOMAIN_ID
,
MTAPI_DOMAIN_ID
,
MTAPI_NODE_ID
,
MTAPI_NODE_ID
,
core_set
,
core_set
,
1024
,
// max tasks (default: 1024)
1024
,
// max tasks (default: 1024)
128
,
// max groups (default: 128)
128
,
// max groups (default: 128)
128
,
// max queues (default: 16)
// Currently needs to be initialized
// with (max_queues + 1), see defect embb449
num_cores
+
1
,
// max queues (default: 16)
1024
,
// queue capacity (default: 1024)
1024
,
// queue capacity (default: 1024)
4
// num priorities (default: 4)
4
// num priorities (default: 4)
);
);
...
@@ -204,7 +208,12 @@ void SimpleTest::TestBasic() {
...
@@ -204,7 +208,12 @@ void SimpleTest::TestBasic() {
network
.
AddSource
(
constant
);
network
.
AddSource
(
constant
);
network
.
AddSource
(
source
);
network
.
AddSource
(
source
);
network
();
try
{
network
();
}
catch
(
embb
::
base
::
ErrorException
&
e
)
{
std
::
cout
<<
e
.
What
()
<<
std
::
endl
;
break
;
}
PT_EXPECT
(
asink
.
Check
());
PT_EXPECT
(
asink
.
Check
());
}
}
...
...
tasks_cpp/src/queue.cc
View file @
5ad9992c
...
@@ -29,6 +29,8 @@
...
@@ -29,6 +29,8 @@
#include <embb/base/exceptions.h>
#include <embb/base/exceptions.h>
#include <embb/tasks/tasks.h>
#include <embb/tasks/tasks.h>
#include <iostream>
namespace
embb
{
namespace
embb
{
namespace
tasks
{
namespace
tasks
{
...
@@ -54,12 +56,17 @@ Queue::Queue(mtapi_uint_t priority, bool ordered) {
...
@@ -54,12 +56,17 @@ Queue::Queue(mtapi_uint_t priority, bool ordered) {
mtapi_job_hndl_t
job
=
mtapi_job_get
(
TASKS_CPP_JOB
,
domain_id
,
&
status
);
mtapi_job_hndl_t
job
=
mtapi_job_get
(
TASKS_CPP_JOB
,
domain_id
,
&
status
);
assert
(
MTAPI_SUCCESS
==
status
);
assert
(
MTAPI_SUCCESS
==
status
);
handle_
=
mtapi_queue_create
(
MTAPI_QUEUE_ID_NONE
,
job
,
&
attr
,
&
status
);
handle_
=
mtapi_queue_create
(
MTAPI_QUEUE_ID_NONE
,
job
,
&
attr
,
&
status
);
// Handle MTAPI error status in appropriate exceptions
if
(
status
==
MTAPI_SUCCESS
)
{
if
(
status
==
MTAPI_SUCCESS
)
{
return
;
return
;
}
else
if
(
status
==
MTAPI_ERR_QUEUE_LIMIT
)
{
}
else
if
(
status
==
MTAPI_ERR_QUEUE_LIMIT
)
{
EMBB_THROW
(
embb
::
base
::
ErrorException
,
EMBB_THROW
(
embb
::
base
::
ErrorException
,
"mtapi::Queue could not be constructed, "
"mtapi::Queue could not be constructed, "
"maximum number of queues exceeded"
);
"maximum number of queues exceeded"
);
}
else
if
(
status
==
MTAPI_ERR_JOB_INVALID
)
{
EMBB_THROW
(
embb
::
base
::
ErrorException
,
"mtapi::Queue could not be constructed, "
"invalid job"
);
}
else
{
}
else
{
EMBB_THROW
(
embb
::
base
::
ErrorException
,
EMBB_THROW
(
embb
::
base
::
ErrorException
,
"mtapi::Queue could not be constructed"
);
"mtapi::Queue could not be constructed"
);
...
...
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