Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
4e95d084
Commit
4e95d084
authored
Jan 19, 2018
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix behavior of result<unit>, close #652
parent
c607aee9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
71 additions
and
0 deletions
+71
-0
libcaf_core/caf/result.hpp
libcaf_core/caf/result.hpp
+8
-0
libcaf_core/test/unit.cpp
libcaf_core/test/unit.cpp
+63
-0
No files found.
libcaf_core/caf/result.hpp
View file @
4e95d084
...
@@ -155,6 +155,14 @@ public:
...
@@ -155,6 +155,14 @@ public:
error
err
;
error
err
;
};
};
template
<
>
struct
result
<
unit_t
>
:
result
<
void
>
{
using
super
=
result
<
void
>
;
using
super
::
super
;
};
template
<
class
T
>
template
<
class
T
>
struct
is_result
:
std
::
false_type
{};
struct
is_result
:
std
::
false_type
{};
...
...
libcaf_core/test/unit.cpp
0 → 100644
View file @
4e95d084
/******************************************************************************
* ____ _ _____ *
* / ___| / \ | ___| C++ *
* | | / _ \ | |_ Actor *
* | |___ / ___ \| _| Framework *
* \____/_/ \_|_| *
* *
* Copyright 2011-2018 Dominik Charousset *
* *
* Distributed under the terms and conditions of the BSD 3-Clause License or *
* (at your option) under the terms and conditions of the Boost Software *
* License 1.0. See accompanying files LICENSE and LICENSE_ALTERNATIVE. *
* *
* If you did not receive a copy of the license files, see *
* http://opensource.org/licenses/BSD-3-Clause and *
* http://www.boost.org/LICENSE_1_0.txt. *
******************************************************************************/
#define CAF_SUITE unit
#include "caf/test/unit_test.hpp"
#include "caf/actor_system.hpp"
#include "caf/actor_system_config.hpp"
#include "caf/atom.hpp"
#include "caf/event_based_actor.hpp"
#include "caf/scoped_actor.hpp"
#include "caf/unit.hpp"
using
namespace
caf
;
using
unit_res_atom
=
atom_constant
<
atom
(
"unitRes"
)
>
;
using
void_res_atom
=
atom_constant
<
atom
(
"voidRes"
)
>
;
using
unit_raw_atom
=
atom_constant
<
atom
(
"unitRaw"
)
>
;
using
void_raw_atom
=
atom_constant
<
atom
(
"voidRaw"
)
>
;
behavior
testee
(
event_based_actor
*
)
{
return
{
[]
(
unit_res_atom
)
->
result
<
unit_t
>
{
return
unit
;
},
[]
(
void_res_atom
)
->
result
<
void
>
{
return
{};
},
[]
(
unit_raw_atom
)
->
unit_t
{
return
unit
;
},
[]
(
void_raw_atom
)
->
void
{
}
};
}
CAF_TEST
(
unit_results
)
{
actor_system_config
cfg
;
actor_system
sys
{
cfg
};
scoped_actor
self
{
sys
};
auto
aut
=
sys
.
spawn
(
testee
);
atom_value
as
[]
=
{
unit_res_atom
::
value
,
void_res_atom
::
value
,
unit_raw_atom
::
value
,
void_raw_atom
::
value
};
for
(
auto
a
:
as
)
{
self
->
request
(
aut
,
infinite
,
a
).
receive
(
[
&
]
{
CAF_MESSAGE
(
"actor under test correctly replied to "
<<
to_string
(
a
));
},
[
&
]
(
const
error
&
)
{
CAF_FAIL
(
"actor under test failed at input "
<<
to_string
(
a
));
}
);
}
}
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